Faultline
Graph Hacks · Track 02 · Built on FalkorDB

git for
agent memory.

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.

14 node labels20+ relationship types1 graph per tenant0 silent overwrites
faultline · project-atlasas of 15 Oct 09:00
SUPERSEDESsource-design-001source-change-002source-runbook-003source-slack-004region-acurrentregion-bcurrentPriyadisputedJordandisputedAtlas

01Design note records deploy_region = region-a

Agents repeat stale facts

Memory stores overwrite or summarize. When the deploy region was corrected, nothing records that the old answer was ever believed.

Nobody can say why

A changed answer has no diff. You can't reconstruct what the agent knew, or which source moved it.

Handoffs flatten doubt

The next agent gets a confident summary. The unresolved on-call dispute silently disappears.

The toolkit

The verbs you use on code, for what your agents remember.

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

Delete an edge and the answer changes.

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.

  • Remove SUPPORTED_BY — region-b is no longer a source-backed answer.
  • Remove SUPERSEDES — both regions stay current, and Faultline refuses to choose.
  • Restore both — the original answer comes back, byte for byte.
Run the ablation live
as_of_retrieval.cypher
MATCH (a:Assertion)-[:ABOUT]->(e:Entity)
WHERE a.observed_at <= $as_of
MATCH (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

Same questions. Three kinds of memory.

Early region, late region, and on-call owner, asked against the seeded graph with the deterministic answerer.

No memory

0/3

correct

stale
0
evidence
0%
conflicts
0/1

Flat summary

1/3

correct

stale
1
evidence
0%
conflicts
0/1

Faultline

3/3

correct

stale
0
evidence
100%
conflicts
1/1

Three synthetic questions on one seeded project (26 nodes, 49 edges). This shows the mechanism, not a general advantage over other memory systems. Reproduce with make bench.

See why the answer changed.

Scrub through Project Atlas, replay a question across snapshots, and hand the task to another agent with the dispute intact.