Causal Attribution Graph¶
director_ai.core.attribution.causal_graph.CausalAttributionGraph
dataclass
¶
CausalAttributionGraph(nodes: Iterable[AttributionNode], edges: Iterable[AttributionEdge], root_id: str, schema_version: str = SCHEMA_VERSION)
director_ai.core.attribution.causal_graph.AttributionNode
dataclass
¶
AttributionNode(node_id: str, kind: AttributionNodeKind, label: str, score: float | None = None, text: str | None = None, metadata: Mapping[str, Any] = dict())
Single vertex in an attribution DAG.
label is safe for operator-facing summaries. Raw claim, source,
or fact text belongs in text and is redacted by default during
serialisation.
director_ai.core.attribution.causal_graph.AttributionEdge
dataclass
¶
director_ai.core.attribution.causal_graph.build_causal_attribution_graph
¶
build_causal_attribution_graph(evidence: CoherenceScore | ScoringEvidence | HaltEvidence) -> CausalAttributionGraph
Build a causal attribution graph from Director-AI evidence objects.
Operational Model¶
build_causal_attribution_graph() converts existing Director-AI evidence into a
validated directed acyclic graph:
CoherenceScoreandScoringEvidencegraphs connect retrieved evidence, claim support or contradiction, and final score contribution.HaltEvidencegraphs connect retrieved evidence, halt trace coordinates, and counterfactual score deltas to the halt decision.to_dict()redacts raw claim, source, and fact text by default. Passinclude_text=Trueonly inside trusted operator or audit boundaries.
from director_ai.core import build_causal_attribution_graph
graph = build_causal_attribution_graph(score)
for edge in graph.top_contributors(limit=3):
print(edge.source, edge.relation, edge.weight)
The graph is not a speculative causal discovery algorithm. It is an auditable representation of the causal path Director-AI used during scoring or stream halt enforcement.