Tacnode™
Glossary
Machine Learning

What Is Memory Supersession?

Memory supersession is how an AI agent's long-term memory handles facts that change: when a newer value replaces an older one (a user moves, a price changes, a plan is revised), the agent must answer from the current value and stop asserting the superseded one. Memory systems implement it by overwriting or deleting the old entry, or by marking it invalid from a point in time and keeping it as history. The hard part is noticing that a new statement supersedes an old one, because real updates are rarely phrased as updates.

Updated

What is memory supersession?

Vedant Patel names the ability in Supersede: Diagnosing and Training the Memory-Update Gap in LLM Agents (arXiv, June 2026), a preprint under review: "We call the correct handling of such updates supersession." His example is an assistant told that a user lives in Detroit, and later that they moved to the suburbs, which "must answer a subsequent location question with the current value."

Supersession is a different problem from recall. Recall asks whether the agent can find a fact; supersession asks whether it picks the right version when several were recorded. LongMemEval includes a knowledge-update question type for this. StateMemBench (Fan et al., 2026) scores each answer as reflecting the current state, the superseded state, or neither. For memory shared across a fleet of agents, Margalit et al. (2026) list temporal supersession as one of four primitives, with scoped retrieval, provenance tracking and policy-governed propagation.

How memory supersession works

Three common designs, from simplest to most auditable:

  1. 1.Delete the contradicted entry. Mem0 picks one of four update operations per new fact, including "DELETE for removal of memories contradicted by new information."
  2. 2.Invalidate it at a point in time, and keep it. Zep stores when each fact held true; when a new fact contradicts an old one, it sets the old fact's end of validity to the new fact's start.
  3. 3.Mark it superseded, and flag what depended on it. StateMem sets the replaced unit to superseded, so it "stays in the store for auditability but is inactive," and marks dependent units for recheck.

Once an update is recognized, storing it is simple. A minimal SQL version of invalidate-and-keep:

sql
CREATE TABLE facts (
  id            bigint PRIMARY KEY,
  subject       text NOT NULL,
  predicate     text NOT NULL,
  value         text NOT NULL,
  valid_from    timestamptz NOT NULL,
  valid_to      timestamptz,                 -- NULL while current
  superseded_by bigint REFERENCES facts (id) DEFERRABLE INITIALLY DEFERRED
);
-- at most one current value per single-valued fact
CREATE UNIQUE INDEX one_current_value
  ON facts (subject, predicate) WHERE valid_to IS NULL;

BEGIN;
UPDATE facts SET valid_to = now(), superseded_by = 102
 WHERE subject = 'user:rachel' AND predicate = 'lives_in' AND valid_to IS NULL;
INSERT INTO facts (id, subject, predicate, value, valid_from)
VALUES (102, 'user:rachel', 'lives_in', 'the suburbs', now());
COMMIT;

Reads filter on valid_to IS NULL, and the old value stays queryable. The hard part is upstream: recognizing that a new statement replaces an old one. Patel found explicit, templated updates too easy to be informative, since with the full history in context frontier models scored 100% on them by scanning for the last mention. Real conversational updates are implicit and paraphrased.

Why memory supersession matters in real-time systems

The measured failure is large. On LongMemEval's knowledge-update questions, Patel found that replacing an agent's full context with a bounded, self-maintained memory dropped accuracy from 92% to 77% on gpt-5.4. With gpt-4.1-mini, a conversation 24 times longer at the same memory budget cut accuracy from 68% to 28%, on a sample of 25 questions. His reading: "The bottleneck is therefore memory maintenance, not comprehension." Fine-tuning a 3-billion-parameter open model on the Supersede environment raised held-out accuracy from 9.0% to 16.7%, in a single training run.

Ordering inside the memory service matters too. In a production multi-agent memory service, Margalit et al. found that a synchronous near-duplicate gate can reject contradictory writes before the asynchronous contradiction detector ever evaluates them, because "X is A" followed by "X is B" looks like near-identical text. One fix they propose is to run the structural contradiction check first.

For an agent that acts, a superseded fact is a stale read with consequences: shipping to the old address, quoting the old price, applying a limit that has since changed. When a store keeps contradictory memories, the same paper notes, "Downstream agents that read both have no principled way to choose between them." Memory should settle which value is current before the model reads it. How stale memory differs from context that lags its source is covered in context rot vs. context lag.

FAQ

Related terms

Further reading