Anthropic's engineering report defines agent memory as text surviving between sessions, structured in four layers: raw transcripts, self-written notes, organized representations like wikis, and a small injected context block loaded every session. On the Continual Learning Bench (CL-Bench) 1.0, memory lifted all recent Claude models; Opus 5.5 rose from 0.655 to 0.838, while older Opus 4.7 gained most, jumping from 0.383 to 0.700. Sonnet 4.6 required refined usage instructions to reach 0.641. In a Pokémon Red test, an offline "dreaming" pass corrected a hallucinated note about a PokéCenter location, enabling the agent to reach Cerulean City at action 1,935 after previously looping indefinitely. A wiki built over 350,000 Stainless files (420M tokens) using 128 Opus 5 sessions improved synthesis-task accuracy to 87% versus 73% for search alone, with search+wiki achieving 61% overall versus 53% and saving ~20,000 tokens per query. Injected context must stay small and verified; Claude Code loads only the first 200 lines or 25 KB of MEMORY.md. Dreaming runs asynchronously over 1-100 transcripts to deduplicate, correct notes against transcripts, and rebuild indexes. A 100-line Python demo implements all layers: regex-based dreaming corrected a stale port note (5432→5433), removed a duplicate, and compressed 77 transcript words to 28 injected words. Failure modes include stale notes poisoning every session, wiki bloat (1.77x source size), concurrent writer conflicts, and diminishing returns on single-document tasks. CL-Bench is Anthropic-internal; wiki evaluation used 25 private questions; Dreams API pricing and optimal scheduling remain open.

Read original