From a firehose of events to a small, governed context.
One pipeline turns everything an agent says and does into compact, typed, governed memory — then reads back only the few facts a question needs. Two things fall out of that design: the token discount in the benchmarks, and governance the store-and-search alternatives can't offer. Every box is clickable.
Every box is a link. The dashed return is the repair loop — scheduled maintenance that keeps the stores honest between reads (details).
Event ledger
Every message, tool call, and result is appended to an immutable log — the raw truth, never edited in place. Corrections arrive as new events, so history stays reconstructable. Write-once is enforced at the database level, not by convention. Around the ledger sit typed stores: tasks, facts, checkpoints, contradiction warnings, consolidation runs, retrieval traces, and the audit log — plus the graph, policy, vector, and lexical substrates.
Everything downstream — summaries, facts, procedures — is a view over this record, never a replacement for it. Compression can't destroy information it didn't keep: the original event always exists. This is the property that prevents summary drift.
Append-only violations raise at the storage layer; full-text state auto-syncs from source rows via triggers, so indexes can't drift from the record.
Derive
An LLM distills events into typed memories — facts, decisions, resources, procedures, preferences — instead of keeping raw turns. Typing is the point: a fact, a procedure, and a preference have different trust rules, different lifecycles, and different failure costs, and the system treats them differently from the moment they're written. Every derived memory carries provenance, confidence, scope, validity interval, and extraction method — no derived memory becomes high-trust without them.
This is what makes the context small: the agent reads a few distilled facts, not the whole conversation. It's also where answer quality is bounded — derivation fidelity is the single biggest lever, so we measure it directly: the production extractor scores extraction_recall 0.92, precision 1.00, fabrication 0.00 on the derivation corpus (committed run, eval-results/derive-quality/2026-06-22).
Requirement §1.2 — derived memory is governed: provenance and lifecycle metadata are mandatory, not decorative.
Govern
Behavior-changing memories — procedures, preferences, learned lessons — are born pending: captured and indexed, but inert. They cannot shape an answer until explicitly approved, and approval, versioning, rollback, and audit are first-class operations. Facts stay freely retrievable; the rules that change how an agent acts are gated. Contradiction detection runs on both write and read — factual, temporal, preference, procedure, decision, scope, and artifact-version classes — and produces explicit records, not log lines.
This is the control plane. A memory store decides what to keep; a control plane decides what memory is allowed to do. The full model — six mechanisms including isolation and governed forgetting — has its own page.
Requirement §9.4 — behavior-changing memory control. The full model has its own page — linked below.
Retrieve
Retrieval is planned, not guessed. A query is first classified — intent, memory types, temporal orientation, risk — and expanded into typed probes; a 'no memory needed' classification (a greeting, an acknowledgement) fires nothing at all. Probes then fan out in parallel across seven candidate channels — lexical, vector, structured, temporal, graph, episodic, artifact — with deliberate overfetching, because recall comes first and precision comes next. A failing channel degrades the pool; it never aborts the read.
Similarity search alone misses temporal and causal relevance — the answer to 'what changed since yesterday' shares no words with the question. Planning plus multi-channel fan-out is what finds evidence that a single embedding lookup structurally cannot.
Requirements §1.3 and §7.2–§7.6: query understanding, typed probe expansion, hybrid candidate retrieval, mandatory overfetch. Iterative follow-up probes re-query bridge entities for multi-hop questions.
Assemble
The candidate pool is deduplicated and clustered; scope, freshness, supersession, and contradictions are resolved before ranking — current, in-scope, approved memory wins; stale and superseded memory is filtered with a trail. A reranker orders what survives, and a conflict-collapse step decides what may coexist in one context. The output is a compact, typed, provenance-backed context block sized to the budget the agent can actually use — and when memory is missing, conflicting, or out of scope, the assembly abstains rather than papering over it.
This is where the token discount is made — a tight context, not the transcript — and where stale-fact collisions are prevented structurally instead of hopefully. Context is an output product: assembled, not dumped.
Requirements §7.8–§7.12: dedup and clustering, conflict and freshness resolution, reranking, context assembly, abstention.
Answer
The agent answers from the assembled block, and a retrieval trace records exactly what happened: which candidates were considered, what was injected, what was filtered, and why — with ranking rationale. The trace is a first-class record, queryable after the fact.
'Why did the agent know that?' becomes a query, not an investigation. Every answer is auditable back to its evidence — the property reviewers actually ask for, and the one black-box retrieval can never give.
Requirement §8.8 — the retrieval trace data model. Traces persist alongside the audit log.
The repair loop: memory that maintains itself.
The six stages are the read/write path. The manage stage runs alongside it — continuously or on schedule — so memory quality compounds instead of decaying.
Scheduled jobs keep memory healthy: event-to-fact extraction, preference stabilization, duplicate clustering, contradiction detection, stale-memory detection, memory-quality scoring. (§10.1)
Memory behaviour is measurable: recall and governance are tested against fixtures, and the deterministic gates fail the build on any regression — so quality is a property of the release, not a vibe. (§6.10)
What evaluation finds gets fixed: contradictions surfaced as warnings, stale memory expired or quarantined, derivation improved. The loop feeds back into the stores — memory that maintains itself. (§6.11)
Where the pillars live in the pipeline.
The append-only ledger, checkpoints, and typed derivation — working state and raw history that survive any restart.
Governance, planned hybrid retrieval, and governed assembly — the controlled read path.
Traces, evaluation, and repair — memory you can inspect, measure, and fix.