You give your agent memory. One store, one save, one search, and everything it learns goes to the same place. On Monday it brings up, unprompted, the exact reason you rejected a library three weeks ago. On Tuesday it drops a constraint you stated four turns earlier in the same session. On Wednesday it asserts a fact about a framework that nobody ever wrote down anywhere. Three failures, one feature, and you spend the rest of the week tuning retrieval. Retrieval was never the problem. The word memory was quietly covering four different things.

Your wallet is not your pension fund

Think of money instead. The cash in your pocket is whatever sits in the current context: the instructions, the constraints, the file being edited. It is instantly available, costs nothing to check, and holds very little, so when you push something in, something else falls out. The current account is the recall layer, what happened in earlier sessions, reachable in about a second but only if somebody asks for it. The savings you have to go and open deliberately are the durable knowledge: procedures, documentation, the settled version of how a thing is done, read rarely and on purpose. And the fund you cannot touch is the weights themselves, everything absorbed during training, which shaped the agent’s every answer and will not be edited this week or next.

Four accounts, four speeds, four different costs to withdraw. The research groups working on this call them working, episodic, semantic and parametric memory, and the labels matter less than the property underneath: each tier has its own latency, its own price per read, and its own idea of how long a thing is supposed to survive. Keeping all your money in your pocket is not thrift. It is how you lose it.

Each tier charges a different withdrawal fee

The pocket costs nothing to read and everything to fill: pile every remembered fact into the working context and you pay in tokens and in noise, and the one line that mattered ends up buried in the middle. Recall costs a query, a round trip, and something less obvious than either, which is the decision to ask at all. Engram is a good small example of the whole tier: persistent memory exposed as a handful of tools over an embedded local database. The agent finishes a fix and writes down that the auth token is now renewed in the middleware; the next day, before touching that flow again, it searches for the session handling and gets its own note back. What breaks is almost never the store. It is that nothing in the loop ever calls save, or ever calls search, so the tier exists and stays empty.

Then there is the question of where an answer came from. A version number the agent read from its own note last Tuesday and a version number the weights absorbed in training look identical when they arrive in a sentence. One is dated, attributable and correctable. The other has no receipt and may be two releases stale. Deciding what the agent may write into a durable tier without you watching is the same decision as deciding how much of its confidence you are willing to fund.

A benchmark can pass without remembering anything

Testing this needs the same separation. A long-horizon evaluation that scores one undifferentiated blob tells you the memory failed, never which tier failed, and often not even that: the task frequently carries enough surface cues that a model can answer correctly without consulting anything at all. Researchers now perturb those cues on purpose, to check that recall is real rather than a shortcut. The mirror image is the account that only ever receives deposits, growing until searching it costs more than it returns, because nothing was ever written down about what should leave.

That memory lives outside the model is old news by now, and this blog said so months ago. The part worth updating is that outside the model is not one place. It is four, running at four speeds, and they are not interchangeable. Before you fix your agent’s memory, say which one you mean.