Skip to content
Cauzon

Build with DataHub · agents that do real work

Every root cause, proven from the source.

Observability tools tell you something broke. Cauzon walks DataHub’s lineage graph upstream, ranks candidate culprits from multimodal signals, and names a root cause only when it can reconstruct the exact path connecting that cause to the symptom. Then it files the dossier back into the catalog, so the next person inherits the answer instead of re-deriving it.

daily_revenue · volume assertion failedReady

Run an investigation to trace the lineage graph

Scroll to run the investigation

That is a recording of the real agent, not an illustration. marketing_spend is the most suspicious asset in the graph — stale, schema-changed, volume collapsed — and it scores highest. It still gets rejected, because no lineage edge connects it to the symptom.

A ranking is a hypothesis.
A path is proof.

Every anomaly detector produces a ranked list of suspects. The failure mode is confident, well-scored, wrong answers — and a diagnosis you cannot audit is worse than none, because someone acts on it. Cauzon separates the two steps and lets the second one veto the first.

The design follows recent RCA and grounding research directly: multimodal ranking from RCRank (VLDB 2025), the ungrounded-diagnosis problem from PAVE / OpenRCA 2.0, and the separation of grounding from reasoning from DeepRoot (ICML 2026) — which is why the proof gate is deterministic code and the language model only ever explains a verdict already settled.

Every finding states its own rung

Path + transform proven

The lineage path was reconstructed and the transform that carried the fault was captured.

Path proven, transform unavailable

The path holds, but DataHub retains no query history for the causal edge. Confidence drops and the dossier says so.

Not grounded

Nothing connects the suspect to the symptom. Cauzon names no cause and writes nothing.

The investigation loop

Five phases against the DataHub MCP server. Each one streams to the UI as it happens, so the reasoning is auditable while it runs rather than summarised afterwards.

  1. 01Detect

    Pick up a failing assertion or open incident from the catalog.

    search · incidents
  2. 02Scope

    Pull the minimal upstream subgraph — three hops, not the whole warehouse.

    get_lineage
  3. 03Hypothesize

    Rank candidates on freshness lag, volume anomaly, schema change and key uniqueness. A node scores as the origin when it carries the fault and nothing feeding it does.

    get_entities · list_schema_fields
  4. 04Prove

    Reconstruct the lineage path from real edges. No path, no diagnosis — however strong the signals.

    get_lineage_paths_between · get_dataset_queries
  5. 05File

    Write the dossier back, tag the culprit, and read prior dossiers so a repeat failure is recognised as a pattern.

    save_document · add_tags · search_documents

The write-back is a loop, not a gesture

Cauzon files each dossier with save_document, tags the culprit root-cause, and notes the owner. It then reads those dossiers back on the next investigation — so the third time an ingestion job stalls, the recommendation stops being “backfill this window” and starts being “the schedule is the defect.”

Verified end to end against a live datahub docker quickstart: the tags, the description, and the dossier document were all read back out of the running catalog after the agent finished.

Contributed upstream

datahub-rca — a DataHub Skill that teaches any MCP-connected agent to do path-grounded RCA, formatted to the conventions of datahub-project/datahub-skills.

Try it with nothing installed

The app replays recorded runs of the real agent in the browser. Point it at a live backend — and a real DataHub instance — by setting NEXT_PUBLIC_CAUZON_API.

Watch it reject the obvious suspect

Three planted incidents. Three different signals. One proof gate.

Run an investigation