Memory
Memory stores curated facts, procedures, and episodes across sessions. Progressive disclosure keeps context small while preserving depth.
Mental model
Memory is a structured, searchable store of facts, procedures, and episodes that the agent writes during sessions and reads back in future sessions. It is not a verbatim transcript store and not a vector database. Each memory record has a kind, a subject, and a body; the agent reasons about what to remember, what to update, and what to forget.
The reader should picture memory as the agent's operational notebook: one page per fact or procedure, indexed by subject, continuously curated. Sessions populate and update it; sessions also consult it before starting work.
Why progressive disclosure
A naive agent dumps every past message into the next context, which burns tokens, blows through the context window, and degrades quality. Memory avoids this by storing curated records and loading only the subject list at the start of a session — full bodies are fetched on demand when the agent decides a record is relevant. This is progressive disclosure: shallow by default, deep when asked.
The win is that a session starts with a tight context footprint regardless of how many past sessions wrote memory, and the agent pulls in depth only for topics that matter to the current turn.
What memory stores
What is true
Stable facts: project_fact, constraint, decision, preference. Written when the agent learns something durable.
Semantic
How to do it
How-to records: fix, command_result. Written after the agent solves something it might need to solve again.
Procedural
What just happened
Time-bound events: task_state, failure. Written during ongoing work and decayed as the episode closes.
Episodic
Record lifecycle
A memory record passes through four states driven by explicit tool calls. The agent is not a passive observer — it decides when to write, update, promote, and forget.
- Draft — created in-session via
memory_add. Tagged to the current session, not yet promoted. - Confirmed — promoted via
memory_promoteafter corroboration. Visible to future sessions. - Updated — edited via
memory_updatewhen new information contradicts or refines the existing record. Prior versions are kept for audit. - Forgotten — removed via
memory_forgetwhen the record is wrong, obsolete, or the user asks to delete it.
Retrieval uses memory_search (find by subject or kind), memory_read (fetch a full body), and memory_expand_section (drill into a nested field). The three read tools form the progressive disclosure ladder.
Configuring memory
Configure memory in Settings → Memory or preferences/memory.json. The settings surface controls recall policy, write and promotion rules, progressive disclosure depth, re-ranking, and diagnostics. Presets exist for common profiles (strict, balanced, aggressive).
LightRAG is optional
The built-in memory tool works on its own. LightRAG adds knowledge-graph retrieval on top — useful when you have a large corpus of documents or structured domain knowledge. LightRAG runs as a separate container; enable the plugin only if you need it.
Recommended default
If you are enabling memory for the first time, use the balanced preset. It writes conservatively (promotions require at least one update), reads subject-only on session start, and expands bodies on demand. Switch to aggressive only after you see the agent miss records it should have remembered.
What to do next
Related pages
User Guide
Configuration
How configuration is layered across workspace storage, runtime sections, and user preferences. The dashboard edits most of it.
User Guide
Auto Mode
How the agent runs goal-driven workflows: goals, tasks, diary, and the state machine that drives autonomous execution.
Reference
Tools Reference
Complete reference of all built-in and plugin-provided tools: filesystem, shell, memory, browser, search, mail, and more.