Migrating Memory
This skill helps migrate memory blocks from an existing agent to a new agent, similar to macOS Migration Assistant for AI agents.
Requires Memory Filesystem (memfs)
This workflow is memfs-first. If memfs is enabled, do not use the legacy block commands — they can conflict with file-based edits.
To check: Look for a
memory_filesystemblock in your system prompt. If it shows a tree structure starting with/memory/including asystem/directory, memfs is enabled.To enable: Ask the user to run
/memfs enable, then reload the CLI.
When to Use This Skill
- User is setting up a new agent that should inherit memory from an existing one
- User wants to share memory blocks across multiple agents
- User is replacing an old agent with a new one
- User mentions they have an existing agent with useful memory
Migration Method (memfs-first)
Export → Copy → Sync
This is the recommended flow:
-
Export the source agent's memfs to a temp directory
letta memory export --agent <source-agent-id> --out /tmp/letta-memory-<source-agent-id> -
Copy the files you want into your own memfs
system/= attached blocks (always loaded)- root = detached blocks
Example:
cp -r /tmp/letta-memory-agent-abc123/system/project ~/.letta/agents/$LETTA_AGENT_ID/memory/system/ cp /tmp/letta-memory-agent-abc123/notes.md ~/.letta/agents/$LETTA_AGENT_ID/memory/ -
Commit and push the memory repo
cd ~/.letta/agents/$LETTA_AGENT_ID/memory git add system/project notes.md git commit -m "Import memory from source agent" git push
This gives you full control over what you bring across and keeps everything consistent with memfs.
If MemFS Is Disabled
The legacy block-level CLI commands have been removed. Enable MemFS first, then use the export → copy → sync workflow above.
If you run into duplicate filenames while copying memory files, rename the incoming file or merge its contents manually before committing.
Workflow
Step 1: Identify Source Agent
Ask the user for the source agent's ID (e.g., agent-abc123).
If they don't know the ID, invoke the finding-agents skill to search:
Skill({ skill: "finding-agents" })
Example: "What's the ID of the agent you want to migrate memory from?"
Example: Migrating Project Memory
Scenario: You're a new agent and want to inherit memory from an existing agent "ProjectX-v1".
-
Get source agent ID from user: User provides:
agent-abc123 -
Export their memfs:
letta memory export --agent agent-abc123 --out /tmp/letta-memory-agent-abc123 -
Copy the relevant files into your memfs:
cp -r /tmp/letta-memory-agent-abc123/system/project ~/.letta/agents/$LETTA_AGENT_ID/memory/system/ -
Commit and push:
cd ~/.letta/agents/$LETTA_AGENT_ID/memory git add system/project git commit -m "Import project memory" git push