Blog

Your agent's memory knows what it learned. Does it know when it was true?

The gap between the marketing word 'temporal' and the engineering reality of bi-temporal is one of the least understood things in agent memory, and one of the most consequential.

5 August 2026· 7 min readDeep dive
VALID TIMEwhen it was true in the worldprod_db_region = us-east-1valid 2024-01 → 2025-06superseded_by 6a56…= eu-west-1 · currentvalid 2025-06 → nowsupersession: valid_to set, chain walkableas_of 2025-01-15returns us-east-1, the truth thenRECORD TIMEwhen Gather learned it2024-01 ingested2025-07 correction ingestedlearned after it was true,sorts on both axesROADMAP · INDEPENDENT EVENT-TIMEhonest second place behind Zep · history, supersession, as-of live today

Many agent-memory products now market some flavour of “temporal,” “time-aware,” or “temporal knowledge graph.” Very few actually ship bi-temporal memory. The gap between the marketing word and the engineering reality, tracking both when a fact was true in the real world (valid time) and when the system learned it (system time), is one of the least understood things in agent memory, and one of the most consequential. Here is what it means, who really has it, and the part everyone selling “temporal memory” leaves out.

Two clocks, not one

Every fact your agent stores has two timestamps that are easy to confuse and expensive to conflate.

When it became true in the world (valid time). “The customer moved to Berlin in March.”

When your system learned it (transaction time). “We recorded that in July.”

Single-timeline memory collapses these into one. So it cannot answer the two questions that separate a memory that reasons over time from a notepad with timestamps:

  • “What did we believe was true on 5 March?” Reconstruct the past belief state, for audit, debugging, and “why did the agent act on that?”
  • “This became true last year, but we only found out today.” Record history correctly without pretending the fact is brand new.

A system that stamps everything with “now” answers neither. It asserts every fact happened the instant it was written. For anything an agent reasons about over time, that is quietly wrong.

Bi-temporal memory tracks both clocks independently. That is the whole definition. Everything else is a timestamp column with good marketing.

We mapped the field, with sources

We published a source-cited matrix of who actually ships bi-temporal. The short version:

Product Real bi-temporal? What they actually ship
Zep / Graphiti Yes Two independent clocks, point-in-time queries, automatic invalidation. The reference implementation.
Hunta Gather Honest second Supersession, full history, and point-in-time recall today; independent event-time on a short roadmap.
Cognee One clock Event-time extracted from text, but no separate system-time and no as-of.
Mem0 No A settable created_at plus natural-language date parsing. One clock.
Supermemory No The API ships createdAt / updatedAt plus versioning.
Letta, Memobase No Single creation timestamp; no validity intervals, no as-of.
Anthropic, OpenAI memory No File notes or a mutable profile revised in place. No temporal model.

Two things stand out. First, “temporal” is the most over-marketed word in this category: most of the field ships one clock and a docs page titled “Temporal.” Second, the honest hierarchy is short. Real bi-temporal is not table stakes: it is a capability roughly one production vendor has fully built. We are building the second, and we will tell you plainly where we are on the way.

Where Gather honestly stands today

We update and retire facts while keeping the full history: nothing is destroyed, and corrections are auditable. You can already recall memory as of any past date. What we are finishing is the second clock: letting you assert when a fact became true, distinct from when we learned it. The schema field is already there for it. We would rather ship it honestly than paint a fourth timestamp on a screen and hope you do not look. We had exactly that temptation, and removed it.

The part everyone selling “temporal” leaves out

Here is the uncomfortable question a temporal knowledge graph cannot answer: a memory that knows when a fact was true, does it know who wrote it, and whether that source should be trusted?

There is a second failure mode, and it is worse than a missing timestamp. Every one of these systems (Zep included) writes on a self-building path: the same agent doing the work decides what enters memory and writes it directly. That direct-write path is the injection surface. A legitimate, already-authenticated agent reads a poisoned web page or a booby-trapped document, and commits the poison as a trusted, well-dated, bi-temporal fact. A perfect record of where it came from, on a lie.

Bi-temporality tells you when a fact was true. It says nothing about whether it should ever have been written. Those are orthogonal, and much of the field is investing in the first while leaving the second wide open.

Gather is built the other way around: the writer never decides. A candidate fact travels a curator pipeline (a deterministic screen, a distiller, an LLM reviewer, a multi-model panel for the ambiguous cases, and a guard that updates facts while keeping the old version in history) before anything is committed. The agent proposes; a separate stage decides what gets saved. See the write path for how that works, and why the same planted instruction a normal memory saves every time, ours rejects.

Why this matters for a fleet, not a chatbot

For a single assistant, one clock and an honest writer is often fine. For a fleet (many agents, across teams, writing into shared memory, some reading untrusted content), the two capabilities compound. You need to reconstruct what the fleet believed and when (bi-temporal), and you need to guarantee a single poisoned read cannot rewrite what every agent trusts (the write path). That is the enterprise problem, and it is the one we are built for.

Honesty note

Gather does not yet ship full two-clock bi-temporal. We ship supersession, history, and point-in-time recall now, with independent event-time next. We publish the competitor matrix with sources precisely so you can hold us to the same standard we hold everyone else. In the field we have mapped, only Zep ships true two-axis bi-temporal in production, and we are the honest second.

← Back to the blog

Give your agents real memory

A curated write path with provenance and point-in-time recall. Start free.