CausalGraphRAG¶
Methodology → causal retrieval
Stop retrieving paragraphs. Start retrieving mechanisms.
Classic RAG retrieves text chunks and asks the model to stitch them into an explanation. CausalGraphRAG retrieves paths in a causal graph — then produces a trace you can audit.
Why this matters
A path is constrained
Edges can be typed, validated, and governed. The system can reject paths that violate rules.
A paragraph is not
Text can contain contradictions, missing assumptions, and policy violations while still sounding coherent.
Mechanism > relevance
Similarity finds “about the topic”. Causal traversal targets “explains the outcome”.
Unknown is an output
If no valid path exists, the correct behavior is abstention with a falsification plan.
Minimal flow
flowchart LR;
Q["Question"] --> S["Start node(s)"];
S --> P["Path search (with constraints)"];
P --> T["Trace + evidence"];
T --> A["Answer or abstain"];
Diagram: why this beats chunk retrieval
flowchart LR;
RAG["RAG retrieves chunks"] --> TXT["Text synthesis"];
CG["Causal graph retrieves paths"] --> PATH["Mechanism chain"];
PATH --> TRACE["Trace object"];
TRACE --> AUDIT["Auditable decision"];
Diagram: validity gates (how abstention becomes deterministic)
flowchart TB;
P["Candidate path"] --> V1["Edge/type validity"];
V1 --> V2["Provenance requirements"];
V2 --> V3["Policy constraints"];
V3 -->|"Pass"| T["Emit trace"];
V3 -->|"Fail"| X["Abstain + explain"];
What you get (operationally)
- A mechanistic chain (A → B → C), not a narrative collage
- A trace object you can store, diff, audit, and replay
- A crisp “unknown” when the graph has no valid path