Agent Memory

Migrating existing memory

Bringing memory from existing agents and consumer AI products into the format.

Because the format was designed as a superset of shipping memory systems, most migrations are small. This page covers the two directions: memory that already lives in files (agent harnesses), and memory that lives inside a product (consumer assistants).

Layouts that already conform

If your agent's memory is one of these, there is nothing to do — the directory is already a valid memory root:

  • OpenClaw (~/.openclaw/workspace): MEMORY.md, USER.md, and DREAMS.md are root files; memory/YYYY-MM-DD.md daily notes are a progressively disclosed directory.
  • Hermes Agent (~/.hermes/memories): USER.md and HUMAN.md are root files. No directories yet; the format leaves room to grow into them.
  • Codex (~/.codex/memories): MEMORY.md and memory_summary.md at the root, with rollout_summaries/ and other detail deferred in directories, already git-tracked.
  • Claude Code (~/.claude/projects/<project>/memory): MEMORY.md is a root index and sibling topic files are read on demand. Optional per-file frontmatter matches the spec's optional frontmatter.

For these, adopting the spec means at most adding a .memoryspec marker and, where useful, indexes for directories that lack them.

Migrating a Letta Code agent

Letta Code's earlier layout kept in-context memory in a nested system/ tree, with each file individually injected into the prompt. The new layout is a flat root: files at the top of the memory directory are in context, everything else is deferred behind directories.

The migration is a flattening:

  1. Promote each system/ file to a root file. Nesting inside system/ collapses into file names: system/human/prefs.md becomes human_prefs.md.
  2. Budget check: the old layout let the in-context tree grow without a visible cost signal. If the flattened root exceeds the recommended budget, this is the moment to demote detail — move the long tail of each topic into a directory and leave a summary at the root.
  3. Index: write a root MEMORY.md describing the remaining directories (reference/, skills/, projects, notes) so disclosure works from the first session.
  4. Mark: add .memoryspec with the version.

Because Letta Code memory is git-tracked, the whole migration is one commit, and reverting it is one revert. Letta Code agents can run the migration on their own memory using a migration skill, which is how this migration is intended to be exercised: by the agents themselves, with the user reviewing the diff.

Migration is also the right time to apply the spec's judgment rules rather than translating mechanically: content that exists because the project demands it belongs in AGENTS.md; step-by-step procedures belong in skills; what remains — experience, identity, relationships — is memory.

Migrating consumer product memory

Consumer assistants keep memory inside the product, but all of them can be exported into memory files:

  • ChatGPT: Settings → Personalization → Memory shows saved memories ("Manage memories"). Copy them out (or ask ChatGPT to list all its memories about you verbatim) and save them as a root file such as human.md, or as topical files if there are many.
  • Claude: ask Claude to summarize what it remembers about you from its memory, then save the result the same way.
  • Gemini: Saved Info lists remembered facts; copy them into a root file.

The exported material is typically a few hundred lines of facts and preferences about one person, which is exactly what a root human.md is for. Once it lives in a memory directory, any conforming harness can pick it up, and the agent can maintain and extend it from there.

Verifying a migration

  • Every file the agent needs constantly is at the root, and the root is within budget.
  • Every directory the agent should know about appears in the root listing, and directories with subdirectories have indexes.
  • No index entry points at a path that no longer exists.
  • The agent can answer "what do you know about me?" from a fresh session at least as well as before the migration.