Memory & compaction
How agents keep long-term memory across runs without unbounded prompt growth, and how long meetings stay bounded.
Last updated
A long-running org would blow up its prompt size — and its cost — if every agent carried its entire history verbatim. Quorum keeps context bounded in two places: per-agent memory, and meetings.
Agent memory
Each agent has a long-term memory file, agents/<id>/MEMORY.md, loaded into its
system prompt each turn. It’s how an agent remembers what it learned, decided,
or was granted across cycles and across restarts.
When the file grows past a threshold, older notes are summarized and recent ones kept verbatim — so prompt size and cost stay bounded no matter how long the org runs. The agent’s recent context stays sharp while its older history compresses into a running summary.
Compaction is never silent: each one lands a context.truncated event in
the audit log — deduped by content, so a stable-but-oversized memory warns once
rather than every cycle — and streams live to the
dashboard.
Memory is also where asynchronous results land — anything that arrives
after an agent’s turn has ended is delivered to its memory so the next turn
starts with it in hand. When you answer a request an agent raised, the reply
is written into that agent’s memory (and inbox), so it actually receives the
account, credential, or decision it asked for. The checkout link a
CHARGE
produces and the digests a LOGS[...] or ERRORS[...] pull returns arrive
the same way. See Dashboard & steering.
Memory is what an agent learns. For know-how you author — a coding standard, an outreach playbook — hand the agent a skill pack instead: versioned files, shared across roles, no compaction.
Memory is also distinct from an agent’s sessions: MEMORY.md is what it
carries across tasks, while a task and its retries share one resumable
brain session — its memory within a single piece of work. See
session continuity.
Meeting compaction
Meetings are real multi-round debates. A long debate would similarly bloat
context, so older turns roll into a summary as the meeting proceeds, keeping
the working context bounded. The full transcript still goes to the minutes —
nothing is lost to the record, only to the live prompt. Each compaction also
lands a context.truncated event in the audit log.
Speakers are also capped, so a large roster doesn’t run a super-linear all-hands.
Worklogs vs. shared content
Memory is per-agent and private to that agent’s directory. Two related things live elsewhere:
- Per-agent worklogs — what an agent did on a task — live under
agents/<id>/alongside its memory. - Shared documents (the roadmap, market analysis, decisions) live in the
org’s docs folder under
workspace/docs/, and meeting minutes underworkspace/meetings/— both readable by the whole org.
See Internal systems & data for where each of these sits on disk.
Why it matters
Bounded memory is what makes an org safe to leave running. Without it, prompt size — and therefore cost per turn — grows with history, so a productive org would get more expensive the longer it worked. With summarization, an agent on day thirty pays roughly what it paid on day one, while still remembering the decisions that shaped its work.