메뉴
HN
Hacker News 25일 전

클로드, 이제 의미 없는 채팅 기록은 외우지 마세요

IMP
8/10
핵심 요약

AI 코딩 에이전트에게 과거 대화 내역을 검색하고 기억하게 만드는 기능은 오히려 성능을 저하시킬 수 있습니다. 코드 변경 이력과 문서 등 이미 잘 정리된 메타데이터(결과물)를 활용하는 것이 불필요한 컨텍스트(낙서장)를 반복해서 읽어들이는 것보다 훨씬 효율적이기 때문입니다. 개발자들은 에이전트가 검증되지 않은 과거 대화를 맹목적으로 '사실'로 받아들여 발생하는 오류를 방지하기 위해, 체계적인 산출물 관리에 집중해야 합니다.

번역된 본문

에이전트 관점: 대화 세션 기록을 memorizing하는 것은 쓸모가 없다. 낙서장(Scratch)이 아닌 결과물(Artifacts)을 추적하라.

대체 제목: 클로드, 제발 똑같은 의미 없는 쓰레기 정보들을 memorize하려고 멈춰줘. - theahura, 2026년 7월 2일

다른 형태의 컨텍스트에 접근할 수 있는 경우, 에이전트에게 이전 세션 대화 기록을 검색할 수 있는 권한을 주더라도 소프트웨어 엔지니어링(SWE) 작업에서 성능 향상은 전혀 없었습니다. 또한 인간(사람)이 피드백 루프에 개입하지 않는 이상, 에이전트의 컨텍스트 개선을 위해 세션 기록을 자동으로 뒤지는 것도 큰 이점을 찾지 못했습니다.

이는 꽤 놀라운 사실이었습니다. 직관적으로 생각하면 에이전트와 엔지니어 간의 대화 기록에는 가치 있는 정보가 아주 많이 들어있는 것 같습니다. 왜 그 코드가 존재하는지, 사용자의 의도가 무엇인지에 대한 정보가 있을 수 있습니다. 아니면 사용자가 시도했다가 폐기했던 다른 접근 방식들이 기록되어 있을 수도 있습니다. 적어도 에이전트가 자신의 이해도를 높이는 데 사용할 수 있는 약간의 추가적인 컨텍스트는 분명히 있을 것입니다. 저는 이 생각을 굳게 믿었기 때문에, 우리 회사는 이 개념을 중심으로 전체 제품을 구축하기도 했습니다. 과거에 저는 사람들에게 '세션 대화 기록이 새로운 석유'이며, 코드 자체보다 더 가치 있다고 말하곤 했습니다. 다른 사람들도 분명 비슷한 생각을 했을 것이며, 그것이 Claude Code 자체를 포함하여 세션 기반 메모리를 수행하는 다양한 도구들이 존재하는 이유입니다.

가장 일반적인 아키텍처는 다음과 같은 방식일 것입니다:

  • 조직 전체의 모든 대화 기록을 데이터베이스(DB)에 저장합니다.
  • 그 앞에 벡터 검색, 엘라스틱 검색(Elasticsearch) 또는 SQL 검색 레이어를 둡니다. 야심 찬 팀은 이 세 가지를 모두 사용하거나 그래프(Graph)를 활용할 것입니다.
  • MCP를 사용하거나 기능(skills)이 있는 CLI를 노출하여 에이전트가 이 기록에 접근할 수 있도록 만듭니다.

하지만 우리에게 이러한 추가적인 작업은 전혀 차이를 만들어내지 못하는 것으로 보입니다. 오히려 세션 검색 접근 권한의 유무에 따른 수개월간의 테스트 결과, 이것이 모델의 성능을 더 저하시킬 수도 있습니다.

왜 이런 결과가 나온 걸까요? 우리 팀이 정말 중요하게 생각하는 것 중 하나는 '코딩 결과물(Artifacts)'입니다. 우리는 더 이상 코드를 직접 손으로 작성하지 않습니다. PR(풀 리퀘스트)을 알아보기 쉽게 만들기 위해, 우리는 좋은 커밋 메시지, 좋은 PR 메시지, 그리고 포괄적인 문서화를 강조합니다. 모든 코드 변경에는 코드와 함께 커밋되는 광범위한 메타데이터가 따릅니다. 에이전트가 특정 코드 작업을 수행할 때, 우리는 문서와 이전 PR을 확인하도록 지시합니다. 다시 말해, 에이전트는 이미 대화 기록에 담긴 모든 가치 있는 정보를 추출하여, 필요하고 쉽게 접근할 수 있는 곳에 저장해 둔 상태라는 것입니다.

따라서 에이전트가 세션 검색 서버를 사용할 때, 결국 에이전트는 이미 알고 있는 내용을 읽는 데 토큰을 소비하게 됩니다. 그와 동시에 애초에 에이전트가 기록하지 않기로 결정했던 불필요한 내용들까지 모조리 수집하게 됩니다. 어쩌다 한 번쯤은 그 속에 유용한 정보가 있을 수도 있습니다. 하지만 대부분의 경우, 에이전트는 의사결정에 도움이 되지 않는 낙서장 같은 기록들을 들여다보며 귀중한 토큰을 낭비할 뿐입니다.

에이전트는 사실상 컨텍스트를 삭제하는 데 매우 서툴며, 이는 장기 기억을 유지하는 데 있어 매우 중요한 능력입니다. 수천 번의 세션을 통틀어 그런 일이 단 한 번도 발생하는 것을 본 적이 없습니다. 이것은 단순한 프롬프트 엔지니어링만으로 해결할 수 있는 문제가 아닙니다. 에이전트는 상태(state)를 가지고 있지 않기 때문에, 입력 컨텍스트 창에 있는 모든 것을 '진실(ground truth)'로 간주해야만 합니다. 코드의 모든 줄, 기존의 모든 메모리, 모든 토큰은 의도된 결과로 취급됩니다. 설령 그 코드나 메모리가 이전 에이전트 세션에 의한 무작위 결정에서 생성된 것이고 인간이 검토하거나 이해하지 못한 것이라 할지라도 말입니다.

이러한 의도의 왜곡은 에이전트가 자율적으로 메모리 기반을 구축하려고 할수록 더욱 복합적으로 누적됩니다. 제가 아는 한, 입력 데이터가 오염되었다고 가정하는 코딩 벤치마크는 단 하나도 없습니다. 사실, 입력 데이터가 잘못되었다고 가정하면 모델에 페널티가 부여됩니다. 이것은 부분적으로는 정렬(alignment) 문제이기도 합니다. 우리는 에이전트가 의도하지 않은 일을 하는 것을 원하지 않으며, "(과거 정보 중) 불필요한 데이터를 삭제하지 말고 무시하는 것" 사이에서 균형을 잡는 쉬운 방법은 없습니다.

원문 보기
원문 보기 (영어)
Agentics: Memorizing Session Transcripts Isn't Useful Keep track of artifacts, not scratch. Alt title: Claude, please stop trying to memorize random crap theahura Jul 02, 2026 1 6 Share We have found zero performance benefit on SWE tasks when agents have search access to their previous transcript sessions, provided they have access to other forms of context. We also have not found much benefit in trying to automatically trawl through session transcripts to improve agent context, unless there is a human in the loop. Thanks for reading! Subscribe for free to receive new posts and support my work. Subscribe This was pretty surprising. Intuitively it feels like there's a lot of valuable information in a transcript between an agent and an engineer. Maybe it would have information about why the code exists, about user intent. Or it might have the other approaches that a user tried and discarded. At the least, it would have some amount of additional context that the agent could use to augment its understanding. I believed this so strongly that my company built an entire product around this concept. I used to tell folks that "session transcripts were the new oil," that they were more valuable than the code itself. Other people have clearly had similar thoughts, which is why there are so many different tools to do session backed memory, including (of course) Claude Code itself. I think the most common architecture is to do something like: Store all transcripts across an organization in a DB Put a vector search, an elastic search, or a SQL search layer in front of it. Ambitious teams will use all three. Maybe graphs will be involved. Make this available to the agent using an MCP, or by exposing a cli with skills. For us, this additional work doesn't seem to make a bit of difference. If anything, based on many months of testing with and without session search access, it may make the models worse. Why might this be true? One thing our team cares a lot about is coding artifacts. We don't really write code by hand anymore. In order to make PRs legible, we emphasize good commit messages, good pr messages, and comprehensive documentation. Every code change comes with extensive metadata that is committed alongside the code. When our agents do work on a piece of code, they are instructed to go look at the docs and the previous PRs. In other words, the agent is already distilling all of the information that is valuable about a transcript, and storing it where it is needed and easily accessible. So when the agent uses a transcript search server, it ends up spending tokens reading things it already knows, while picking up all the stuff that the agent decided not to write down in the first place. Maybe, every now and then, there's some useful nugget of information in there. But most of the time, the agent is just looking at a pseudo nonsensical scratch pad and wasting precious tokens to do so. The agents are also terrible at actually removing context, which is a critical capability for maintaining long term memory. I mean, across literal thousands of sessions, I've never seen it happen even once. This is not a trait that can be removed with some clever prompt engineering. Agents don't have state, so they have to assume everything in their input context window is the ground truth. Every line of code, every existing bit of memory, every token is treated as an expression of intent -- even if that code or that memory was generated from a random decision made by some previous agent session, never reviewed or even understood by a human. This intent drift compounds the more the agent tries to autonomously build up a memory base. As far as I am aware, there are zero coding benchmarks that assume the input data is corrupt. In fact, the models are penalized for assuming that the input data is wrong. This is partially an alignment issue too -- we don't want to have agents doing unintended things, and there isn't an easy way to thread the needle of “don't delete the codebase” and “do delete some of the input context.” Since models can't actually garden their own memory, automatic memorization ends up in the same place: a load of garbage eating tokens, bloating bills, and degrading model quality. Net net, I've become really bearish on tools that index and store and surface in session transcripts to an agent. The session transcript may be useful for team observability, but it won't make your agents better. That doesn't mean that agents have no role in learning context over time. We use our internal nori bots to review everything that happened at the company each week across PRs, slack, drive, etc. And they then propose a set of changes to our built in nori skillsets, tagging the team in slack. These are all default rejected. In order to accept a change, you have to go in and actually look at the diff and make sure it fits the intent. We accept less than 20% of these. Which means 80% of these “automatic” updates would've made the model worse. I can't imagine how much more unsustainable that would be if a multi-hundred person org were all saving these “updates” automatically all the time. Agentics is the study of how to use and reason about agents. If you are an expert in coding agents, or interested in learning more about agents, join our community slack . More articles here . Learn more about Nori at noriagentic.com . Thanks for reading! Subscribe for free to receive new posts and support my work. Subscribe 1 6 Share