Memory Stores
Each memory subsystem is a separate store that handles one type of information. This page is the at-a-glance index. For a full “what it is, when to use it, and how to configure it” guide, follow the dedicated page for each store.| Store | Remembers… | Dedicated guide |
|---|---|---|
| Sessions | the current conversation | Sessions & History |
| Summaries | recaps of older conversation | Summaries |
| User Facts | free-form facts about the person | User Facts |
| User Profile | structured profile (name, role, tz) | User Profile |
| Entities | companies / people / projects | Entity Memory |
| Decisions | what the agent decided & why | Decision Log |
| Learnings | reusable insights (semantic) | Learned Knowledge |
| Corrections | structured human fixes to agent output | Correction Capture |
| Graph | relationships you can traverse | Graph Memory |
| Procedures | reusable tool workflows | Procedural Memory |
Summaries
Long-term conversation memory. When session history overflows, the overflow messages are summarized by an LLM and stored.User Facts
Extracts and stores discrete facts about users: preferences, background, interests.- “Prefers dark mode”
- “Lives in Mumbai”
- “Works on logistics software”
User Profile
Structured user data — name, role, company, timezone, language, custom fields.Entity Memory
Tracks companies, people, projects, and products mentioned in conversations. Every entity is scoped to the user that created it — two users never see each other’s entities, even if they reference the same external company.search_entities, create_entity. Both auto-inject the
current ctx.userId, so the agent can never accidentally read or write
another user’s entities.
Entities are automatically extracted from conversations:
Direct access requires a userId
When you bypass the auto-exposed tools and call the store directly, you must pass theuserId:
GraphMemory and ProcedureMemory. Calling
listEntities() without a userId is a TypeScript error — there is no
“global” read path.
Decision Log
Audit trail of agent decisions — what was decided, why, and what happened.log_decision, record_outcome, search_decisions.
Decisions are logged with context for audit trails:
Learned Knowledge
Vector-backed insights from conversations. Requires aVectorStore.
save_learning /
search_learnings tools.
Scope hierarchy (v2.3+)
Learnings carry an explicit scope so genuinely shared knowledge isn’t trapped in one user’s silo:| Scope | Visible to | Use for |
|---|---|---|
"user" (default) | the saving user only | personal preferences |
"agent" | every user of that agent / role | workflow patterns (“Vendor X invoice drift”) |
"tenant" | every user/agent in the tenant | org-wide policies (“Refunds > $500 need VP”) |
"global" | everyone | built-in defaults |
alice chatting with the invoice-recon agent
at tenant acme searches for learnings, she sees her personal ones plus
the agent-shared ones plus the tenant policies plus global defaults —
but never another user’s personal scope or another agent’s shared scope.
Writes pick one. The LLM (or your code) chooses the scope when saving:
"user" — the framework never auto-
promotes an LLM-extracted insight to a shared scope.
How Learnings Work
Correction Capture
Structured records of humans correcting agent output — field-level (originalValue → correctedValue, reason, entityKey), embedded into a vector store, and retrieved on future relevant runs so the same mistake is not repeated. Requires a VectorStore.
POST /agents/:name/corrections HTTP endpoint, agent.memory.recordCorrection(), or the auto-exposed record_correction tool. Corrections default to agent scope — a fix to an agent’s output is workflow knowledge that benefits every user.
See Correction Capture for full documentation.
Graph Memory
Knowledge graph with entity-relationship tracking. Unlike flat entity memory, graph memory builds a traversable graph of nodes and edges with temporal metadata.Procedure Memory
Records and reuses successful multi-step tool-call workflows.Temporal Awareness
All fact-based stores (User Facts, Entity Memory) now support temporal fields:validFrom— when the fact became validinvalidatedAt— when a newer fact superseded it
All Auto-Exposed Tools
When memory stores are enabled, these tools become available to the agent:| Store | Tools | Description |
|---|---|---|
| Entity Memory | search_entities, create_entity | Search and create entity records |
| Decision Log | log_decision, record_outcome, search_decisions | Log decisions and track outcomes |
| Learnings | save_learning, search_learnings | Save and retrieve vector-backed insights |
| Corrections | record_correction, search_corrections | Record and retrieve structured human corrections |
| Graph Memory | query_graph, traverse_entity, add_relationship | Query and traverse the knowledge graph |
| Procedures | recall_procedure | Find matching multi-step workflows |