Skip to content

brCausalGraphRAG

Methodology → decision-grade memory

brCausalGraphRAG: active memory with identity, enforced by constraints.

CausalGraphRAG is the idea: retrieve causal paths instead of text chunks. brCausalGraphRAG is the discipline: every step is grounded, validated, traceable — and allowed to refuse.

What we add on top of CausalGraphRAG

Provenance-first primitives

Claims are objects with source, version, scope, and extraction method. Evidence is never “just text”.

Constraint validation

Policy and safety rules are enforced in a gate the model cannot negotiate.

Trace objects

Reasoning produces machine-verifiable artifacts you can replay, diff, and audit.

Abstention & escalation

When there is no valid path or a rule fails, the system refuses and explains why.

Why we call this a mental model for “AI consciousness” (without metaphysics)

Operational framing: “consciousness” here means persistent identity + active memory + governed action selection.

Not feelings. Not personhood. A system-level model that makes behavior legible and controllable.

Identity

A stable handle: what goals, roles, permissions, and safety posture apply to this agent instance.

Active memory

Memory is not a chat log; it’s a graph of validated claims and causal relations, versioned over time.

Self-monitoring via traces

The system can inspect what it did, why it did it, and which rules were applied.

Boundaries

Constraints define “what cannot happen”, making abstention a first-class outcome.

Diagram: decision-grade traversal

flowchart TB;
  Q["Question"] --> S["Select start nodes"];
  S --> P["Constrained path search"];
  P --> V["Validate shapes / constraints"];
  V -->|"Pass"| T["Generate trace object"];
  T --> A["Answer with evidence"];
  V -->|"Fail"| X["Abstain / escalate"];

Diagram: identity + active memory loop

flowchart LR;
  ID["Identity</br>(role + permissions + goals)"] --> Q["Question / task"];
  Q --> TRV["Traverse causal memory"];
  TRV --> G["Constraint gate"];
  G -->|"Pass"| ACT["Act / answer"];
  G -->|"Fail"| ABS["Abstain + explain"];
  ACT --> W["Write trace + update memory"];
  W --> ID;
  W --> TRV;

Diagram: trace object (what gets stored)

flowchart TB;
  T["Trace"] --> P["Path (nodes + edges)"];
  T --> E["Evidence (citations)"];
  T --> R["Rules applied (constraints)"];
  T --> D["Decision (answer / abstain)"];
  T --> M["Memory writes (what changed)"];

Why this is different from “better prompts”

  • Prompting is a social contract: editable, bypassable, and difficult to prove.
  • Constraints are an enforcement mechanism: deterministic, testable, and auditable.
  • Traces make debugging and governance concrete: you can inspect the artifact, not the vibe.