Blame, diff, bisect and test what your AI agents remembered. Faultline stores every fact with its source, its time, and the edges that corrected or contradicted it — so you can see why an answer changed.
01Design note records deploy_region = region-a
Memory stores overwrite or summarize. When the deploy region was corrected, nothing records that the old answer was ever believed.
A changed answer has no diff. You can't reconstruct what the agent knew, or which source moved it.
The next agent gets a confident summary. The unresolved on-call dispute silently disappears.
The toolkit
Every command is a graph query against FalkorDB. Click any line to run it on the live Project Atlas graph.
How the graph does the work
FalkorDB isn't a picture of the memory. It is the memory. As-of retrieval needs the SUPPORTED_BY edge, and status comes from SUPERSEDES and CONFLICTS_WITH edges visible at the cutoff.
MATCH (a:Assertion)-[:ABOUT]->(e:Entity)WHERE a.observed_at <= $as_ofMATCH (a)-[:SUPPORTED_BY]->(s:Source)RETURN a.id, a.value, s.id, s.trust_tier,[(a)-[:SUPERSEDES]->(old) | old.id] AS supersedes,[(new)-[:SUPERSEDES]->(a) | new.id] AS superseded_by,[(a)-[:CONFLICTS_WITH]-(other) | other.id] AS conflicts
Benchmark
400 generated memory stories (corrections, conflicts, unreviewed notes), questions asked before, between and after each note. Every method reads the same rows from FalkorDB; only Faultline uses the edges.
last write wins, no history
17.8%
216 / 1,213 correct
strongest baseline
92.5%
1,122 / 1,213 correct
FalkorDB edges + policy
100.0%
1,213 / 1,213 correct
Synthetic stories, so this shows the memory semantics hold end to end through the graph, not intelligence. A log that keeps only reviewed notes ties Faultline on plain corrections. Full results, scale and the LLM run are on the Bench page. Reproduce with make benchsuite.
Scrub through Project Atlas, replay a question across snapshots, and hand the task to another agent with the dispute intact.