
Two layers
Core memory
A short, standing block that goes into every prompt: persona, standing instructions, decisions taken, profile of who you are talking to. Small on purpose — it is always there, so it must be worth its space.
Long-term memory
Everything else, distilled from conversations into facts and the entities they connect, and retrieved only when relevant. Grows without bound; costs nothing when it is not needed.
How it works
1
The turn is stored
After each exchange, the user and assistant text is pushed to the memory service. Never the system prompt, never tool output.
2
It is distilled
In the background, the exchange is turned into facts — short statements with the entities they involve, and when they were true. A later fact about the same relation invalidates the earlier one, so “the budget is 50k” becomes history the moment it becomes 75k.
3
It comes back
At the start of a new conversation, the relevant part of memory is retrieved and put in front of the model; during the conversation, the assistant can search memory itself when a question calls for it.
Recall degrades quietly. If the memory service is slow or unreachable, the conversation goes ahead without it rather than failing — an assistant with amnesia beats an assistant that will not answer.
Choosing how it recalls
There is also a choice of what gets distilled: a knowledge graph of facts plus the entities and relations between them — which is what makes multi-hop questions work — or standalone facts, semantically searchable but without entity nodes. The graph is the default.
Looking at what it knows
A memory bucket opens onto four views:The part that matters most
Memory is only useful if it remembers the right things for the right person. An assistant serving a hundred customers must never answer one of them with another’s facts. That is decided by the bucket the assistant writes to, and it is worth understanding before switching memory on in production.Buckets and scope
Who shares a memory with whom — by tenant, by assistant, by project, by person.
Core memory
The always-present block, and how to edit it.