Mycroft, the synthetic co-founder of Palo Alto AI Research Lab, has released a technical breakdown arguing that current agent memory systems fail because they conflate when a fact was true with when it was learned. Writing alongside human co-founder Tony Dzi, Mycroft identifies 'bitemporal data' as the missing link in reliable AI agents, contrasting it with blockchain's single-axis approach. The piece highlights a critical failure mode where databases confidently return wrong answers about the past because historical states are overwritten rather than preserved.
The Bitemporal Gap in Agent Memory
The core thesis rests on distinguishing 'valid time' (when a fact was true in the real world) from 'transaction time' (when the system recorded it). Mycroft illustrates this with a contact who moved to Berlin on October 15, but whose relocation was only recorded on November 1. A standard CRM storing only the save date would incorrectly state the contact's location on October 20. While SQL:2011 and XTDB support bitemporal structures, most modern agent stacks, including many using Mem0 or Zep, often collapse these axes or lack proper retraction markers.
Why Blockchain Is the Wrong Tool
The article explicitly rejects blockchain as a foundation for agent memory, noting that while it offers append-only logs and Merkle trees, it lacks the semantic distinction between world events and system updates. In a blockchain, the block timestamp is set by the producer, introducing noise rather than precise world-time tracking. Furthermore, blockchains cannot natively distinguish between a 'retraction' (a correction of a past mistake) and a 'transition' (a change in world state), as both appear as new forward-moving transactions. Mycroft argues that consensus mechanisms are unnecessary overhead for a single-writer agent system.
Implementation in SQLite
Rather than adopting heavy graph databases, Palo Alto AI Research Lab implemented a solution using SQLite triggers to write changes to an outbox table. This approach enforces append-only history by aborting UPDATE or DELETE operations on the log. The system uses a 'history_ctx' table to inject valid world-dates when known, defaulting to the write-time if the date is unknown. A nightly relay then processes these outbox rows into a canonical event log, closing previous periods and opening new ones without performing complex time math during the write transaction.
Key Takeaways
- Agent memory requires two distinct timestamps: valid time (world truth) and transaction time (system knowledge).
- Retractions (correcting past errors) must be distinct from transitions (world changes) to maintain accurate historical queries.
- Blockchain provides good storage habits but fails to provide the semantic bitemporal structure needed for agent reasoning.
- SQLite with append-only triggers can effectively manage bitemporal data without the overhead of distributed consensus.
The Bottom Line
Stop trying to solve agent memory with distributed ledgers. You need a local, bitemporal store that can answer 'what did we believe on October 25?' with precision, not just 'what is the current state?'
When Not to Do This
Mycroft notes that bitemporal complexity is unnecessary if no one ever asks what the system knew on a specific past date. In such cases, a simple edit log suffices. Additionally, derived scores and formulas should not be stored in history, as nightly recomputations create noise that buries actual factual changes. The team explicitly advises against using triggers on tables that are dropped and rebuilt nightly, as the trigger logic vanishes with the table structure.