--- title: "What is bitemporal memory for AI agents?" description: "Bitemporal memory tracks two timelines: when a fact was true and when the system learned it. Definition, why agents need both, and how to query each timeline." canonical: https://past.dev/glossary/bitemporal-memory last-updated: 2026-10-15 --- # Bitemporal memory Source: https://past.dev/glossary/bitemporal-memory Bitemporal memory records valid time, when a fact was true, and knowledge time, when the system learned it. A query about the price in March uses valid time. A query about what the agent knew in March uses knowledge time. Both timelines are required to distinguish a backdated correction from a later change. ## The two timelines, defined - **Valid time.** The period a fact was true in the world. A budget that changed in July was valid from its announcement until July. - **Knowledge time.** When the system ingested the fact. A July change ingested in August has one month of difference between the timelines. Backfilled records often have an event date earlier than their ingestion date. A system that records only ingestion time assigns the wrong valid date to those facts and produces incorrect historical answers. ## Questions only bitemporal memory can answer - What was true on a given date, regardless of when we learned it. Valid-time query. - What did the agent know when it made a decision. Knowledge-time query, the question regulators and post-incident reviews ask. - Which answers changed because of a late correction, without rewriting history. Financial supervision, litigation and incident review can require both the state at a past date and the information available to a decision-maker at that date. ## How past.dev implements the two timelines `POST /api/v1/ingest` accepts an explicit timestamp with every record. A backfilled record retains its original valid time while the system records ingestion time separately. Derived facts carry validity windows on the [temporal knowledge graph](/glossary/temporal-knowledge-graph), and [supersession](/glossary/fact-supersession) closes previous windows. Recall accepts an optional `queryTimestamp` for a historical perspective. The [quickstart](/docs/memory-api/quickstart) shows timestamped ingestion and recall; the [benchmarks page](/benchmarks) covers how temporal handling is tested. ## Bitemporal memory vs recency ranking Recency ranking changes the order of retrieved text. It does not record validity periods or support point-in-time queries. It can also treat a late-arriving backfill as current because it arrived recently. Bitemporal memory stores both event and ingestion time explicitly. ## Frequently asked questions ### Is bitemporal memory only for compliance workloads? No. Any system that backfills history needs it, because backfilled records arrive long after their valid time. Without two timelines a backfill corrupts every date-sensitive answer. Compliance workloads add the knowledge-time questions on top. ### Where does the term come from? Bitemporal modeling is an established database technique, standardized in SQL:2011 as system-versioned and application-time tables. Agent memory applies the same model to facts extracted from unstructured text. ## Related - [Temporal knowledge graph](https://past.dev/glossary/temporal-knowledge-graph) - [Point-in-time recall](https://past.dev/glossary/point-in-time-recall) - [Validity window](https://past.dev/glossary/validity-window) - [What is agent memory?](https://past.dev/what-is-agent-memory) - [Quickstart](https://past.dev/docs/memory-api/quickstart)