A language model has no memory. Everything an agent appears to remember is something the surrounding system chose to put back in the prompt. So the question is never can it recall this, it is which version of the truth does it recall, and how does it know that version is still good.
Most agent memory answers with vector similarity, which works until a fact changes. The old fact still matches the query, nothing marks it dead, and the agent retrieves a superseded truth with full confidence. In a chatbot that is an annoyance. Here it is a payment to a bank account the customer closed last week.
Tredecim keeps every fact with the interval over which it is true, and never deletes anything. What follows is four things going wrong, and the database refusing each one.
| key | value | v | since | provenance | state |
|---|
A closed row is never deleted. It stays queryable, which is what makes “what did the agent believe when it moved the money” an answerable question rather than an archaeology project.
UPDATE facts
SET valid_to = now(),
superseded_by = $v
WHERE entity_id = $e
AND key = $k
AND valid_to IS NULL;
INSERT INTO facts (…, valid_to)
VALUES (…, NULL);
-- both, or neither