The Continuity Layer
Primitive

Bi-Temporal Memory for AI Agents

thecontinuitylayer.com/bi-temporal-memory-ai-agents

Bi-temporal memory makes “what was true when” answerable. It is a primitive under a governed continuity layer; the project's operating history also shows why timestamps need authority, provenance, and reconciliation around them.

01

Two independent time axes

“Bi-temporal” means every fact is placed on two clocks at once.

Valid time — the stretch during which a fact is actually true in the world. A decision made on Monday and reversed on Friday was valid for that week, regardless of when anyone wrote it down.
Record time — when the system learned the fact. A correction entered today can describe something that was true last month; the two clocks move independently.

Most memory keeps one clock, if any. Keeping both is what lets a system answer two different questions honestly: “what is true now?” and “what did we believe, and when did we believe it?”

02

Supersede chains, not deletes

When a fact changes, nothing is erased. Erasure is the exception: when a person or a law requires removal, the content is deleted, and the chain keeps only a record that an erasure happened, when, and on whose authority.

A changed fact does not overwrite the old one. The prior value is closed off — its valid time ends — and the new value points back to what it replaced, with a reason recorded for the change. The result is a chain: the current value at the head, and every prior version behind it, each explaining why it gave way. You can walk the chain backward to reconstruct exactly what the system believed at any point, and why it changed its mind.

Demo 001, the July test in The Lab, recorded read-only orientation and conflict rejection; it did not establish the entire temporal-state sequence. The later succession history contains changing office states and handoffs. October’s recovery also found stale summaries, showing why putting records in time order is not enough: whoever reads them also has to check which record has the authority to count, and what it covers. Read the governance model →

Zep’s Graphiti is one public example of a bi-temporal agent memory (see Field Watch: Zep; Graphiti on GitHub).

03

A governed current state

Bi-temporal history is only half of it. The other half is governance.

Ask the system what it believes, and it answers with current truth. Challenge it with a fact that used to be true, and current truth wins.

Writes pass through a contract rather than landing wherever, so the head of every chain is authoritative and defensible. That is the difference between a log you can read and a state you can trust: the system can produce a single current answer and, on demand, the lineage behind it.

04

Why agents need it

Agents are where single-clock memory breaks first.

  1. 01
    An agent picks up a task it didn’t start. With bi-temporal state it inherits the current shape of the project — and can see which facts are fresh and which were just superseded.
  2. 02
    Two agents disagree. Because every fact is time-ordered and reasoned, there is a basis for which version is current, rather than a race between two confident guesses.
  3. 03
    A handoff crosses tools or models. The state is the same on the other side, because it lives in the layer, not in any one model’s context window.

This page describes behavior, not implementation. For the concepts it leans on, see the glossary; for the dated, project-reported records, see The Lab.