GC
User Guide / MemoryMenu
5 min read·Updated 2026-04-10

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_promote after corroboration. Visible to future sessions.
  • Updated — edited via memory_update when new information contradicts or refines the existing record. Prior versions are kept for audit.
  • Forgotten — removed via memory_forget when 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