Engineering

Your agent has one kind of memory. It needs three.

Agent memory splits into three tiers, the episodic semantic procedural memory AI taxonomy, and most AI agents in 2026 ship only the semantic middle tier, so they recall facts but never learn how the work actually gets done — running all three as one System of Record, Intelligence, and Action layer, not three bolted-on tools, is what closes that gap.

ASR

Apollo Space Research

ApolloSpace AI

· 12 min read

Ask your support agent what a customer said last Tuesday and it answers instantly, citing the ticket. Ask what happened the last three times this same customer complained, and it stalls, then guesses. Ask it to close the books the way your controller has for years, in her order, with her exceptions, and it hands back a generic checklist instead of the one your company runs. Same blind spot, three questions: your agent’s memory only covers the middle third of what memory means. That middle third is semantic recall alone; episodic semantic procedural memory AI is the full split, and most systems never build the other two.

Agent memory is not one thing but three — episodic, semantic, procedural — and most systems ship only the middle one, which is why they recall facts but never learn how the work is done here. This post defends that split: why semantic recall is the tier almost every memory product has shipped, why a five-year-old cognitive-architecture framework already named the other two before agent memory became a category, and what it takes to run all three as one operating layer instead of three optional add-ons bolted onto a chatbot.

The naive read: memory means a vector store of facts

The first thing anyone builds when told to “give the agent memory” is retrieval. Embed every message, embed every document, and when a question comes in, pull back whatever is semantically closest. It’s the correct first move, and it’s genuinely useful: the agent can now answer “what did the customer tell us” without you re-pasting the whole history into the prompt every time.

The trouble is that this one move gets mistaken for the whole job. A fact retrieved by similarity carries no notion of sequence, no notion of frequency, no notion of “this happened before, three times, each time worse.” It also carries no notion of how your organization actually acts on that fact, only that the fact is true. Ask the agent to act, not just recall, and it improvises, because recall was the only muscle you built. Choosing the right tier of memory for the question in front of the agent is why context engineering is the job now for anyone shipping production agents, not a detail to bolt on after retrieval already works.

This is easy to miss because the demo hides it. In a demo, one fact and one turn is all anyone asks for, and semantic recall answers that perfectly. The gap only shows up in production, weeks in, when the question stops being “what is true” and becomes “what usually happens” or “how do we handle this.” Those are different questions, they need different memory, and a system built only for the first one has no honest answer to the other two. It gives you an answer anyway, because a model that’s been asked a question will produce tokens for it whether or not the memory backing those tokens actually exists.

A fact you can retrieve is not the same thing as a pattern you have lived through or a procedure you have practiced. That gap between recalling and doing is exactly where most deployed agents fall over, quietly, in a way that looks like memory working right up until someone asks it to actually run the operation.

Episodic semantic procedural memory AI: the taxonomy CoALA already named

This split is not something we invented, and pretending otherwise would be a worse claim than the naive read it’s replacing. Cognitive Architectures for Language Agents (CoALA), published by Theodore Sumers, Shunyu Yao, Karthik Narasimhan, and Thomas Griffiths at Princeton in Transactions on Machine Learning Research in February 2024, formalized exactly this: a language agent’s long-term memory divides into procedural memory, which stores the rules that determine behavior; semantic memory, which stores facts about the world; and episodic memory, which stores sequences of the agent’s own past behavior. CoALA itself draws that split from decades of cognitive-architecture research, the Soar architecture among them, work that predates large language models by thirty years. The taxonomy is old. Applying it to agent memory as a product category is what’s new, and the application is still catching up to the theory.

Agent memory is not one thing but three — and until you’ve stood up all three as distinct, maintained stores, you’ve built a fact lookup wearing a bigger word.

Three stacked lanes represent an agent's memory. The episodic lane, labeled what happened and when, is drawn thin and mostly empty. The semantic lane, labeled what is true, is drawn full and well maintained, the one tier most production agents actually build. The procedural lane, labeled how we do it here, is drawn just as thin and empty as the episodic one, showing the two tiers most stacks quietly skip.

The gap nobody notices first: episodic memory

Episodic memory is the record of what happened, and when, as a sequence, not a fact. “The customer complained on the 3rd, again on the 11th, escalating each time” is an episodic claim. It’s a different kind of statement than “the customer’s plan is Enterprise,” which is semantic, and it needs a different kind of store: append-only, ordered, queryable as a timeline rather than as a bag of facts you rank by similarity.

Without it, an agent that only has semantic recall has to reconstruct the pattern from raw transcript every single time someone asks, assuming the transcript even survived that long. Worse, it usually can’t reconstruct the pattern at all, because pattern recognition needs the sequence and the semantic store never kept one; it kept the facts, unordered, each one true on its own and silent about how they relate to each other over time.

Your agent didn’t forget, it lied about remembering is about a narrower and sharper version of this same failure: what happens when the one tier agents do ship, the semantic fact, gets compacted away mid-conversation and the model fills the hole with a confident invention. That’s a semantic-tier failure, a fact that existed and got lost. The episodic gap described here is earlier and more basic: most stacks never had a place to keep “this is the third time” as a first-class object at all, compaction or no compaction. You can’t lose a record that was never being kept.

A fact is what’s true. An episode is what happened. A procedure is how you act on both, and only one of the three ships by default.

The gap that stays empty longest: procedural memory

Procedural memory is the company’s own way of doing a repeatable task, its checklist order, its exceptions, who signs off and when, as distinct from a stated fact and distinct from a logged event. It’s the tier a generic model already thinks it has, because the model was trained on a million companies’ generic best practice for “closing the books” or “escalating a complaint.” What it doesn’t have is yours.

This is the tier that stays emptiest longest, and it isn’t just us saying so. Mem0’s own review of the state of AI agent memory in 2026 puts it plainly: even where an architecture conceptually supports procedural memory, the tooling for actually managing it is “still early-stage.” Staleness, versioning, knowing whose procedure wins when two conflict, these remain open problems across the field broadly, and procedural memory is the tier where they bite hardest, because a procedure that’s six months out of date is worse than no procedure at all: it’s confidently wrong in exactly the voice that used to be right.

Notice what procedural memory is not. It’s not a fact (“the deadline is the last business day of the quarter”) and it’s not an event (“we missed that deadline in March”). It’s a rule for acting, closer to a skill than a memory in the everyday sense, which is exactly why it’s the hardest of the three to bolt onto a system built around retrieving text. A vector store answers “what does the document say.” It has no native place to keep “and here is the order we actually do these seven steps in, except when the client is on the legacy plan, in which case skip step four.”

Semantic recall answers what is true. Episodic memory answers what happened before. Neither one answers how this company does the work, and that third answer is the one still missing from most agent stacks a full two years after CoALA named it as a distinct thing to build.

What it looks like converged: one task, three pulls

Take the month-end close from the opening. ApolloSpace AI is built to run that task off one shared layer instead of a semantic store pretending to be three: a System of Record every agent loop reads and writes, a System of Intelligence that reasons across it, and a System of Action that carries out the task and writes the outcome back in. a16z named the shift from system of record to system of intelligence; BVP extended that progression to systems of action — the same three-layer split this blog has argued an AI OS has to own end to end, applied here to memory specifically. Inside that System of Record, the close pulls the episodic record of last quarter’s run, what changed, what broke, what got fixed at the last minute. It pulls the semantic facts: current account balances, the figures that are simply true right now. And it pulls the procedural record: the company’s actual checklist, in the order the controller runs it, with her exceptions intact. The System of Intelligence is the agent loop reasoning across all three pulls at once, not three separate lookups a human has to reconcile by hand afterward. The System of Action is what then closes the books and writes this quarter’s run, its fixes and its exceptions, back into the same record, so next quarter’s episodic pull has something real to draw on instead of starting from zero again.

An agent with only semantic memory, wired to a vector index instead of a System of Record, can’t do this. It has the balances. It doesn’t have last quarter’s run to check against, and it doesn’t have your checklist, so it reaches for the only thing left: the generic, model-trained version of “how companies usually close their books.” It re-derives a procedure from scratch, every single run, and calls the result confidence.

A single task, closing the month-end books, threads through three memory pulls that converge into one grounded action. Episodic memory supplies last quarter's run and what changed since. Semantic memory supplies the account facts and current balances. Procedural memory supplies the company's own checklist. A separate, dashed path shows what a semantic-only agent does instead: with no episodic or procedural memory to draw on, it re-derives a generic procedure from scratch on every single run.

What this costs, honestly

Three stores cost more than one. That’s the tradeoff, and stating it plainly is the only honest way to make the case for paying it. An episodic store needs an append-only timeline and a real retention decision, not everything forever — the same discipline behind an agent that can’t forget can’t learn, applied here to a store that finally has something worth pruning. A semantic store needs supersession handling, so a reversed fact doesn’t sit next to the fact it replaced with the same confident timestamp. A procedural store needs versioning and a place for exceptions, and per Mem0’s own assessment, that last piece is the one the industry’s tooling has least figured out.

Owning all three as one operating layer also means giving up the comfort of swapping each tier independently for whatever’s best-of-breed this quarter. A change to how you version a procedure has to stay compatible with how an episodic event references it, which is real coupling, not a hypothetical one. None of this is free, and a post that pretended it was would be selling, not explaining.

The alternative to paying that cost isn’t simpler, though. It’s the two tiers that don’t exist yet staying unbuilt forever, which is the exact failure this post opened on: an agent that answers the fact question instantly and stalls on every question that needed history or house procedure.

The turn

Strip the agents away and this is just what you already know about the colleague you actually trust with something messy. It isn’t the one who can look up the most facts fastest. It’s the one who remembers that this is the third time this account has had this problem, and knows, without being told again, how your team handles it, not how teams in general handle it. Semantic recall alone describes a smart intern with access to the file cabinet. Episodic and procedural memory are what turn that intern into someone who’s actually been here a while.

Agent memory is not one thing but three — and the two tiers most systems skip are the two that let an agent stop repeating the same rediscovery and start doing the job the way your company actually does it.


That three-pull close is the reference case, not the exception: the same System of Record, Intelligence, and Action layer is what ApolloSpace AI is built to run any task through, so episodic, semantic, and procedural memory stay three distinct, maintained stores from the start instead of one vector index asked to carry all three jobs. You can read the mechanism in ApolloSpace AI’s agent-memory reference or see where it fits inside the broader operating system at apollospace.ai. Next time your agent answers the fact question instantly and stalls on the pattern or the procedure, you’ll know exactly which third of its memory it never had, and which layer would have caught it.

ApolloSpace AI runs your company's repetitive ops so your team doesn't.

Join the waitlist for early access, founding-user pricing, and a front-row seat as we ship.

Join the waitlist