|
| RESEARCHAUDIO.IO · MEMORY LINE · ROUTE MAP · NOV 12 2026 |
|
ANTHROPIC ENGINEERING · NOV 6 2026 · 8 MIN READ
Claude's Memory Failed in Five Ways. Database Teams Know All Five.
Anthropic gave Claude a memory folder. Then it tested the folder on a benchmark, on Pokémon Red, on a 420M-token company corpus and on legal briefs. The failures in the report are old failures. Database engineers named them a long time ago. In each case, the fix is the same type of job: a job that reads the log.
The line in one minute
● The transcript is the log. It is the one layer that does not drift.
● Notes, wikis and injected context are copies of the log. Copies go stale, get too large and lose writes.
● Anthropic calls the repair job dreaming. Dreaming reads the transcripts and corrects the copies.
|
|
| 01 | STOP 01 · WHAT ANTHROPIC PUBLISHED line: the source |
On November 6, Anthropic published The components of agent memory. Lance Martin wrote it. The post defines agent memory as knowledge that Claude gets from experience and keeps between sessions. Claude keeps it as context that it can read later.
The definition excludes three things: changes to model weights, in-context learning and compaction. The post divides memory into four layers. It names the offline repair pass dreaming. The idea comes from the sleep-time compute paper by Letta and UC Berkeley.
FIG 1 · THE MEMORY LINE. THE TOP STOP LOADS FIRST.
● Injected context Loads into every session. Claude does not search for it. db name: hot config risk: one wrong line goes into every session |
● Representations (wikis) Claude builds them over many dreaming passes. db name: index / materialized view risk: can grow larger than the data |
● Notes Claude writes them during the task. db name: cache risk: written before Claude knows what comes next |
● Transcripts The harness records every event. Claude can search them. db name: append-only log holds: the ground truth for every repair |
The four layers are Anthropic's. The database names are our analogy.
|
| 02 | STOP 02 · A NOTE IS A BET line: mechanism |
The post says that memory is sometimes a prediction. When Claude writes a rule, it predicts that the rule will be relevant again. A cache entry is the same bet. You store a value because you expect a second read.
Anthropic tested this bet on a database task from CL-Bench 1.0. Each question starts in a new session. One memory directory stays between sessions. After each answer, Claude sees the correct solution.
FIG 2 · MEAN REWARD, NO MEMORY VS MEMORY
| model | none | memory | memory score | gain* |
| Opus 5.5 | 0.655 | 0.838 | | +0.183 |
| Sonnet 5.5 | 0.644 | 0.833 | | +0.189 |
| Opus 5 | 0.564 | 0.828 | | +0.264 |
| Opus 4.7 | 0.383 | 0.700 | | +0.317 |
| Sonnet 5 | 0.306 | 0.610 | | +0.304 |
| Sonnet 4.6 | 0.330 | 0.364 | | +0.034 |
*Gain is our arithmetic on the numbers in Anthropic's chart.
The gap is in what each model did with its notes. Sonnet 4.6 wrote guesses and did not test them. Opus 5 was the first model to close the loop. Most of its entries had a rule, the proof for the rule and a list of traps. Sonnet 5 read its memory before it answered 9 of 10 times, with no prompt. Sonnet 4.6 did this less than half of the time.
Steering had two results. A prompt that told Sonnet 4.6 to read memory first and to test its theories increased its score from 0.330 to 0.641. A fixed rule that limited notes to failures had the opposite effect on strong models. It cut the memory gain of Opus 5 by 0.234 and of Opus 4.7 by 0.150.
| Rule from stop 02: Tell a strong model what memory is for. Do not tell it what to write. Give an older model two steps: read memory first, then test each theory. |
|
| 03 | STOP 03 · BUG 1: THE CACHE STORES WHAT THE SCREEN SHOWS line: failure |
Anthropic gave each model a memory folder for Pokémon Red. Then it compared two folders at about step 10,000.
FIG 3 · TWO MEMORY FOLDERS AT ABOUT STEP 10,000
| measure | Sonnet 3.7 | Fable 5 |
| files | 413 | 10 |
| folders | 225 | 2 + global.md |
| characters | 977,930 | 43,406 |
| badges won | 1 | 4 |
Sonnet 3.7 wrote a file for each battle, each item and each character it met. It also recorded money and map position. The game shows those values on the screen every turn. In database terms, it cached data that the source gives back at no cost. Then it spent effort to keep that cache current.
The cost became visible. Near step 10,000, Sonnet 3.7 started its fourth folder of "master" files. In the next 17 steps, it created six files, deleted nine files and made no move in the game.
Fable 5 stored what the screen does not show: the current goal, a plan for gyms and rules that it had tested. After seven Poké Balls failed on a Magikarp, it wrote a rule: after three misses in a row, change the timing. Opus 5.5 used the same method. It kept a small folder with the goal and the next steps, and it beat the game.
| Rule from stop 03: Do not store what a tool or the screen can give back. Store goals, plans and tested rules. No other source holds them. |
|
| 04 | STOP 04 · BUG 2: THE STALE READ line: failure, then repair |
Mt. Moon is a cave. The entrance is on the west side and the exit is on the east side. Near the entrance there is a one-way ledge. The ledge drops the player back onto the earlier route.
Claude used the PokéCenter at the entrance as a landmark. It wrote a note that put the PokéCenter on the east side. That note was wrong. When Claude walked out, it said "Mt Moon is behind me," and it marked the mountain as done. A few actions later, it went over the ledge. Its navigation tool did not show the drop. So Claude decided that it had gone too far west, and it kept the wrong note.
FIG 4 · THREE RUNS, 3,000 ACTIONS EACH
| run | the note | result |
| No memory | none | Did not reach Cerulean City |
| Raw memory | wrong side, never checked | Fell off the ledge 3 times. Went back to Pewter City. Did not reach Cerulean. |
| Memory + dreaming | checked against the transcript, rewritten | Went back into the cave. Reached Cerulean at action 1,935. |
The repair was small. A dreaming pass compared the note with the session transcript. It found the error and rewrote one fact. A cache entry with no invalidation gives the wrong value with full confidence. The fix is also a database fix: reconcile the copy against the log.
Look at row one and row two together. The wrong note did not make Claude better than no note. Both runs failed. The corrected note made the difference.
|
| 05 | STOP 05 · BUGS 3 TO 5: WRITES, SIZE AND LINKS line: failure |
The last three bugs came from wiki builds on the Harvey LAB benchmark. LAB gives Claude a set of documents and asks for a legal brief. A grader checks the brief against a list of criteria.
FIG 5 · FIVE FAILURES, FIVE DATABASE NAMES
| bug (our name) | what happened | fix in the post |
| 1 · cached derived state | Pokémon: 413 files, 1 badge | Store goals, plans and tested rules |
| 2 · stale read | Mt. Moon: 3 falls, no Cerulean | Dreaming checks notes against transcripts |
| 3 · lost update | 4 agents wrote one shared provisions.md. Each write erased lines from the others. Brief kept 41 of 57 facts (72%). | One agent per contract page, terms quoted word for word: 57 of 57 |
| 4 · index larger than the data | 10 documents, 115 KB, became a 68-page wiki of 203 KB: 1.77x the source | No fix reported |
| 5 · dangling reference | 9 links from 6 pages pointed to a page that did not exist | Second pass repointed all 9 and added 3 pages, one an index |
Bug 3 has the best lesson. The first instructions did not say that contract terms were the key part of the wiki. So Anthropic ran a loop. Claude studied its failures, proposed a change to its instructions and rebuilt the wiki. Claude found the fix itself: one writer per contract, and exact quotes in place of summaries. A database team calls this one writer per partition.
Bug 4 has no fix in the post. The post compares it to the Borges story about a map as large as the empire it shows. The wiki was so detailed that it summarized nothing. Bug 5 shows a limit of in-session notes. One session sees one context. A second pass sees all the pages, so it can find links that one session cannot.
|
| 06 | STOP 06 · WHEN A WIKI PAYS FOR ITSELF line: cost |
Anthropic used internal documents from Stainless, a company that it acquired in May: about 350,000 files and about 420M tokens. It wrote 25 questions. Opus 5 agents built a wiki over 128 sessions. A shared log kept the sessions in step.
FIG 6 · GRADED CRITERIA MET, 2 SESSIONS VS 128 SESSIONS
| setup | 2 sessions | 128 sessions |
| wiki + search tool | 54% | 61% |
| search tool, no wiki | 53% | 53% |
| wiki, no search | 13% | 48% |
| wiki pages / links | 103 / 766 | 222 / 12,893 |
| dreaming tokens spent | 2M | 128M |
Search plus the wiki also used about 20,000 fewer tokens per question. Our arithmetic: at 128M dreaming tokens, the build pays back after about 6,400 questions on token count. That estimate ignores the accuracy gain and price differences between input and output tokens.
The task type matters. On 24 merger questions that needed facts from several documents, judgment or math, Claude scored 87% with the wiki and 73% with search alone. On one LAB task, most criteria came from one document. There, the wiki showed no clear gain.
| Rule from stop 06: Build a wiki when answers cross documents. Keep the search tool. A wiki without search was worse than search without a wiki. |
|
| 07 | STOP 07 · KEEP THE TOP STOP SMALL line: cost |
Dreaming can move notes up to the injected layer. The harness then loads them at the start of each session. Claude does not need to search for them. It does not need to know they exist.
The post gives three costs. Injected notes use tokens in every session. A wrong note goes into every session. And a longer instruction file decreases adherence, as the Claude Code memory docs say. Claude Code auto memory loads the first 200 lines or 25 KB of MEMORY.md. That header is an index: it tells Claude what it knows and where to find it. Dreaming moves details down and leaves a link.
|
| 08 | STOP 08 · CHANGES FOR YOUR AGENT line: holds |
| 1 | Keep full transcripts and make them searchable. They are your log. |
| 2 | Tell the model what memory is for. With a strong model, do not add fixed rules about what to write. |
| 3 | Do not store values that a tool or the screen can return again. |
| 4 | Give each fact one writer. Quote source terms word for word. |
| 5 | Run a repair pass that checks notes against transcripts. Point it at facts that change. |
| 6 | After each wiki build, check for links to missing pages. Compare wiki size with source size. |
| 7 | Put a limit on the injected layer. Use it as an index, not as storage. |
| 8 | Measure tokens per question with the wiki and without it. |
The post leaves two questions open. First, when to write: a note during the task takes focus away from the task, but a dreaming note is not available at once. Second, how often to dream: each pass costs compute, so Anthropic suggests a focus on facts that are likely to change. The dreaming cookbook and the knowledge wiki quickstart are the place to test both.
| End of the line: the log is the memory. Every other layer is a copy, and every copy needs a repair job. |
|
|
|
| researchaudio.io · route map · gains and the payback estimate are our arithmetic on Anthropic's numbers · database names are our analogy |
|
|