Concepts · July 11, 2026 · 6 min read
Agent memory: episodic, semantic, and coordination
Ask ten teams what 'agent memory' means and you'll get three answers. Two of them map cleanly onto a distinction cognitive science drew decades ago. The third is the one a team of agents can't run without — and it's the one most tools skip.
One phrase, three jobs
"Agent memory" gets used for storing a user's preferences, for tracking what's currently true, and for keeping a team of agents in sync — three different problems wearing one label. Naming them separately makes it obvious why a tool that's excellent at one can be useless at another. Cognitive science already named two of them.
Episodic memory: what happened
Episodic memory is the record of events: this user said X at time T; the researcher agent called this tool and got that result. It's append-heavy, time-ordered, and local to a thread or run. For agents, episodic memory is the raw log — invaluable for replay, debugging, and "remind me what we did" — but it isn't yet knowledge. It's the transcript, not the takeaway.
Semantic memory: what's true
Semantic memory is distilled, durable fact: "the auth flow is on v2"; "this user prefers dark mode." It's what episodic memory becomes after consolidation — deduplicated, conflict-resolved, stripped of moment-by-moment noise. Most "AI memory" products live here: they turn a pile of events into a clean set of facts and rank them at read time. For a single assistant remembering one user, that's often enough.
The type that's missing: coordination memory
Now put five agents on the same task. Episodic and semantic memory both answer questions about content — what happened, what's true. Neither answers the question that decides whether a team of agents works: has what agent A just learned reached agent B yet?
That's a third kind of memory. Call it coordination memory: not a store of events or facts, but a contract about visibility and consistency across agents. It's the gap between "the fact is true" and "the fact is in agent B's next context, guaranteed." When it's missing, the failure mode has a number — 36.9% of multi-agent failures are agents disagreeing about the state of the world.
Why the third type needs its own machinery
You can't get coordination memory by scaling the other two:
- Episodic gives you everything that happened — but re-feeding the whole log to every agent is the token-bill problem, not the fix.
- Semantic gives you the current truth — but "true" and "visible to agent B right now" are different axes. A fact can be current and not yet propagated to the reader.
Coordination memory needs its own guarantees: a read-your-writes contract (every write returns a sequence number; any later read can demand it), conflict resolution at write time, and per-agent scoping. Those aren't retrieval features — they're consistency features, and you don't get them by ranking harder.
The three memories, one line each
Episodic — the ordered record of what happened (the log). Semantic — the distilled, current facts (the knowledge). Coordination — the contract that a team of agents shares one reality, with visibility and consistency guarantees. The first two are about content; the third is about agreement.
Where the tools land
Most memory products optimize episodic-into-semantic for a single user: capture events, consolidate to facts, rank on read. That's genuinely useful — and orthogonal to coordination. A team of agents needs all three: a log to replay, facts to reason over, and a coordination layer so that when one agent writes, the rest don't miss it. For how three named products map onto these axes, see the 2026 landscape.
The one-line version
"Agent memory" is three problems. Episodic remembers what happened; semantic remembers what's true; coordination guarantees the team sees the same thing. If your agents work in a fleet, the third one isn't optional — and it's the one you have to build for on purpose.
Coordination memory is the category Lore builds for — an open-source coordination memory layer. See the write → consolidate → pack loop, or the repo on GitHub.