메뉴
HN
Hacker News • 25일 전

에이전트 메모리를 파일 포맷으로: '메모리필드' 제안

IMP
7/10
핵심 요약

기존 AI 에이전트 메모리 시스템(벤더 종속형, 과도하게 복잡한 파이프라인, 이상주의적 그래프 방식)의 문제를 지적하며, 메모리를 '프로세스'가 아닌 '데이터 포맷'으로 다루자는 제안이다. 핵심은 마크다운 문서와 선택적 SQLite 벡터 인덱스로 구성된 '메모리필드(memoryfield)'라는 휴대용 파일 형식으로, 에이전트가 직접 산문 형태의 짧은(약 8KB) 메모리를 작성하는 방식이다.

번역된 본문

에이전트 메모리를 파일 포맷으로

2026년 8월

메모리필드(Memoryfields) - 훨씬 더 단순한 에이전트 메모리 방식

많은 모델 벤치마크는 빈 컨텍스트 윈도우에서 시작합니다. 일종의 '백지 상태(tabula rasa)'의 AI입니다. 어느 정도는 벤치마크의 공정성을 위해 이해가 되는 부분입니다. 하지만 실제 에이전트는 절대 빈 컨텍스트 윈도우에서 시작해서는 안 됩니다. 에이전트가 사용 가능한 한 많은 관련 정보를 갖춘 상태로 시작해야 합니다. 당신의 AI 에이전트는 '기억(memories)'을 갖고 시작해야 합니다.

기존 에이전트 메모리 시스템이 작동하지 않는 이유

문제는 많은 에이전트 메모리 시스템이 실제로는 형편없다는 점입니다. 현재 대략 세 가지 유형의 인기 있는 메모리 시스템이 있으며, 각자 다른 방식으로 실패하고 있다고 생각합니다.

첫 번째는 의도적으로 특정 하네스(harness)에 종속시키는 방식입니다. 보통 그 하네스를 임대해주는 랩(lab)이 작성한 것입니다. 해당 랩은 (극심하게 경쟁적인) 'API 비즈니스'에서 (훨씬 수익성 높은) '플랫폼 비즈니스'로 전환하고자 안달이 나 있습니다. 이런 형태의 시스템은 대개 대화 기록에서 정보를 채굴하는 방식으로 작동하는데, 그 결과 대부분의 기억이 '당신에 관한 것'이 되어 버립니다. 세계에 관한 정보가 일반적으로 훨씬 더 유용함에도 불구하고 말입니다.

또 다른 유형은 터무니없이 복잡합니다. 무엇이 기억할 가치가 있는지 결정하기 위해서만 pgvector와 Neo4j 그래프 데이터베이스, 그리고 별도의 LLM까지 필요로 하는 유명한 시스템을 알고 있습니다. 이러한 복잡성은 관리하기 어려울 뿐만 아니라, 곧 설명할 이유 때문에 이런 '거대 시스템'들은 모델 자체도 혼란스럽게 만듭니다. 또한 모델 프론티어가 발전함에 따라 확장되지도 못합니다.

마지막 유형은 '고등 근대주의자(High Modernist)' 스타일로, 이상화되고 합리주의적인 형태의 메모리를 상상합니다. 필연적으로 그래프가 등장하고, 때로는 논리적 명제까지 동원됩니다. 이 방식은 체계적으로 정보를 맥락에서 분리해 내어, 에이전트(그리고 당신)에게 고립되고 무의미한 상태로 남겨버립니다. 결국 '증류된 사실(facts)'의 단순한 목록이 얼마나 유용하겠습니까?

이들의 공통점은 메모리를 '프로세스'로 취급한다는 것입니다. 하지만 메모리, 특히 모델에게 있어 메모리는 '데이터'로 표현하는 것이 훨씬 낫습니다.

메모리는 다단계 파이프라인이 아니라 데이터 포맷이어야 한다

브룩스(Brooks)는 이렇게 말했습니다: "당신의 플로우차트를 보여주고 테이블을 감춰도, 나는 계속 어리둥절할 것이다. 당신의 테이블을 보여주면, 플로우차트는 대개 볼 필요도 없다. 이미 자명해질 테니까."

그래서 여기 '메모리필드(memoryfield)'라는 휴대용 메모리 파일 포맷을 소개합니다:

my-memories.memoryfield.zip ├── carbon-fibre-woks.md ├── finnish-bureaucracy-tips.md ├── [... 더 많은 md 파일들 ...] ├── wec-2026-season-notes.md └── nomic-embed-text-v1.5.sqlite3

메모리필드란:

  • 마크다운(Markdown) '페이지'들, (선택적) YAML 프론트매터, 그리고 의미론적 검색을 위한 (선택적) SQLite 벡터 인덱스

에이전트는 파일과 함께할 때 가장 잘 작동합니다. 설명드리겠습니다.

설계 결정 1: 청크(chunk)나 '사실(fact)'이 아닌 산문(prose)을 사용하라

RAG 파이프라인이 매우 복잡해질 수 있는 주된 이유는, 방대한 기존의 사람이 작성한 문서들을 AI 에이전트가 읽을 수 있게 만들려 하기 때문입니다. 이런 문서들은 종종 에이전트가 직접 읽기 매우 어렵습니다. 예를 들어 거대한 PDF 파일이기 때문입니다.

하지만 에이전트 메모리는 복잡한 레거시 문서가 아닙니다. 기억은 형성되는 시점에, 산문을 충분히 잘 쓸 수 있는 AI 에이전트에게 직접 발생하는 것입니다. 그 산문은 청킹되거나, 보강되거나, 이중 요약되거나, 기타 기계적 처리가 필요 없습니다. 그냥 에이전트가 자기가 가장 좋아하는 형식(그것은 마크다운입니다)으로 직접 기억을 작성하게 하면 됩니다.

메모리필드의 페이지는 다음과 같이 생겼습니다:


title: Carbon Fibre Woks created: '2026-03-01T09:00:00Z' updated: '2026-08-22T14:30:00Z' uuid: 6aa615f0-486f-48a7-a210-ba4f5ff18c8b summary: Thermal properties of carbon fibre cookware

Carbon fibre woks conduct heat evenly, but...

물론 한 가지 제약이 있다면, 페이지가 벡터 임베딩에 들어갈 수 있을 만큼 짧아야 한다는 점입니다. 그래서 약 8KB(약 2,000 토큰)의 소프트 리밋이 있습니다. 하지만 이는 실제로 매우 유익한 제약입니다. 8,000자는 약 1,300단어, 즉 중간 길이의 잡지 기사 정도입니다. 사실상 이것은 하나의 제... (후략)

원문 보기
원문 보기 (영어)
Agent memory as a file format August 2026 Memoryfields - a vastly simpler way to do agent memory Many model benchmarks start from a blank context window . The tabula rasa of AI. To some extent, this makes sense, to keep the benchmarks fair. But real agents should never start from a blank context window. They should start with as much relevant information available to the agent as possible. Your AI agents should start with memories . Why existing agent memory systems don't seem to work The trouble is, a lot of agent memory systems are actually pretty rubbish. I think there are roughly three popular kinds of memory system at the moment, each of them not working in their own way. The first are ones that deliberately tie you into a specific harness - usually written by the lab that rents you that harness. Said lab desperately wants to transition out of the (highly competitive) "API business" and into the (much more lucrative) "platform business". This form of system usually works by mining information out of your conversation history, with the result that most of their memories are all about you, even though information about the world is generally much more useful. Another kind is ludicrously complicated. I know of one prominent system that needs pgvector, a Neo4j graph database and an LLM of its own just to decide what's worth remembering. This complexity is not only difficult to administer, but, for reasons I will explain: these Big Systems confuse the models too. They also fail to scale with the model frontier as it moves forward. The final kind is the "High Modernist" variety, which imagine an idealised, rationalist form of memory. Inevitably, this involves a graph, and sometimes logical propositions as well. This kind systematically strips information from its context and leaves it isolated and senseless to the agent (and you). How useful, after all, is a simple list of "distilled facts"? What they have in common is that they treat memory as a process. But memory - especially to a model - is much better represented as data. Memory should be a data format, not a multi-stage pipeline Brooks said: Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious. So, here is the "memoryfield" portable memory file format: my-memories.memoryfield.zip ├── carbon-fibre-woks.md ├── finnish-bureaucracy-tips.md ├── [... many more md files...] ├── wec-2026-season-notes.md └── nomic-embed-text-v1.5.sqlite3 A memoryfield is: Markdown "pages", with (optional) YAML frontmatter and (optional) SQLite vector index for semantic search Agents work best with files. Allow me to explain. Design decision 1: use prose, not chunks or "facts" The main reason why RAG pipelines can be very complicated is that they are trying to make a mass of existing, human-authored documents legible to an AI agent. Often these documents are very hard for the agent to read directly, eg: because they are big PDFs. But agent memories are not complicated legacy documents. A memory, at the time it is being formed, is occurring directly to an AI agent which is fully able to write prose. That prose does not need to be chunked, enriched, double-summarised or otherwise mechanically processed: just have the agent write the memory directly in its favourite format (which is Markdown). A memoryfield page looks like this: --- title: Carbon Fibre Woks created: '2026-03-01T09:00:00Z' updated: '2026-08-22T14:30:00Z' uuid: 6aa615f0-486f-48a7-a210-ba4f5ff18c8b summary: Thermal properties of carbon fibre cookware --- Carbon fibre woks conduct heat evenly, but... The one limitation, admittedly, is that the page has to be short enough to fit into a vector embedding: so there is a soft limit of about 8kb (~2000 tokens). But this is a highly beneficial restriction in practice: 8,000 characters is about 1,300 words, or the length of a medium-length magazine article. That is, in fact, a restriction it would make sense to impose anyway. To add more detail, add more pages - agents do not struggle to do this. Design decision 2: semantic jump, not graph walking A key piece of prior art was Karpathy wikis . Karpathy wikis are oriented around hyperlinked Markdown files: modelled on those used by Roam or Obsidian. The idea was that the agent would walk the "knowledge graph" to find relevant pages. But in practice, having an AI agent traverse a knowledge graph is slow and unreliable - as well as being confusing for the agent. Traversal is slow because the model needs to frequently stop to make serial tool calls to read successive pages. The rough algorithm for an agent to walk a knowledge graph: Read wiki front page [tool call] find relevant links Read linked page(s) [tool call] find relevant links Decide if enough relevant information has been found If not, go to #2 If the relevant information is N steps deep in the knowledge graph, N+1 tool calls are required to retrieve it. This is slow, as your billion (trillion?) dollar LLM model has to pause for each tool call, each of which takes maybe 2-3 seconds. It also heavily penalises deeply nested knowledge graphs, which frankly cuts across the whole point of them. Knowledge graphs are also unreliable. Because the AI can only tell if the material is relevant by looking at the link text, or maybe page title, if that is externalised somehow. That puts great pressure on the agent to do 1990s-SEO-style page metadata hacking to ensure that the link text/title/caption of each page is snappy and accurate. Doing so punishes digression, the ambient noting of side details and the kind of implicit lore that is both common and highly useful in larger text corpuses. In practice, relevant information is often missed in Karpathy wikis because it is not titled or captioned in a way which looks appealing enough to the searching agent. And knowledge graphs are also confusing to the agent because they often have to pore over a lot of irrelevant information as they walk around the graph. Inadvertently reading irrelevant information (the frontpage is often the main offender) puts a bunch of noise into the model's context window, which lowers the quality of their output and makes them look fixated on weird stuff. This is all solved by using semantic search to just jump directly to all the relevant pages (based on their actual content, not their page metadata) and having the agent read all relevant pages, at once, in parallel - which the vast majority of them will do now. So in a memoryfield, at most 2 tool calls are required (#1 to search, #2 to read in parallel). Relevant stuff actually gets found and irrelevant input tokens are minimised. Design decision 3: More model, less mechanism One of the issues posed by "high mechanism" memory systems - the kind that include a lot of specially crafted APIs or databases - is that to use them, agents must navigate an interface maze to achieve their goal. If the interface is large, then you're loading a lot of openapi.json into the context. If the interface is small, then it is limiting. Even if the balance is right, often the API is still wrong: recall the times when you had to use an API written by someone else who hadn't foreseen your needs. Did you enjoy that experience? Memoryfields then, being a "low mechanism" system (just a file format), gives agents much greater latitude to invent their own access patterns. While some (hopefully) helpful tooling is provided, agents are fully free to use whatever access patterns they like. For example using perl to do find-and-replaces across the whole corpus, or putting inline CSV files inside memories that they then query with SQLite (both real examples I have personally seen). Being "low mechanism" also means that memoryfields scale with the model frontier. As models get better, agents think of more stuff to do. One of the recentish breakthroughs is that the models are accidentally very good at bash. They are goo