๐Ÿ” Inspiration

Every data team knows the 9 AM panic: a critical dashboard shows wrong numbers, and engineers begin the manual hunt โ€” querying tables, reading Airflow logs, tracing lineage by hand. The average data incident takes 2-4 hours to diagnose, and most of that time is spent just figuring out where in the pipeline things broke.

DataHub already stores everything needed to solve this โ€” lineage graphs, quality assertions, freshness SLAs, ownership. But it's passive: you have to know what to look for. We asked: what if an AI agent could do the detective work?

๐Ÿ’ก What it does

DataSherlock is an autonomous AI agent that investigates data incidents using DataHub's metadata:

  1. ๐Ÿ” Search โ€” Finds the affected asset in the DataHub catalog
  2. ๐Ÿ•ธ๏ธ Trace โ€” Maps the full upstream lineage (S3 โ†’ Snowflake โ†’ dbt โ†’ Dashboard)
  3. โœ… Interrogate โ€” Checks quality assertions AND freshness at every node in the chain
  4. ๐ŸŽฏ Diagnose โ€” Pinpoints the exact failure point with a confidence level
  5. ๐Ÿ’ฅ Blast Radius โ€” Maps every downstream asset affected
  6. ๐Ÿ‘ค Notify โ€” Identifies asset owners with contact info
  7. ๐Ÿ“‹ Report โ€” Generates a structured incident report with a concrete fix plan

Anyone can use it โ€” no DataHub or SQL expertise required. Describe the problem in plain English, get a root cause in ~30 seconds.

๐Ÿ—๏ธ How we built it

  • Agent loop: OpenAI-compatible tool calling with Llama 3.3 70B on Groq โ€” we chose Groq's LPU inference because our agent makes 5-7 sequential tool calls per investigation; sub-second token latency means a full investigation completes in under 30 seconds instead of minutes.
  • 7 DataHub tools: search_datahub, get_upstream_lineage, check_data_quality, check_freshness, get_downstream_impact, get_asset_owner, get_schema_changes โ€” built against DataHub's GraphQL GMS API, following the DataHub Skills pattern.
  • Sample datapacks: Demo runs against DataHub's healthcare and nyc-taxi sample datasets, which contain planted freshness and quality issues โ€” DataSherlock reliably finds them.
  • Frontend: Streamlit app with live tool-call streaming, structured report rendering, and one-click incident samples.
  • Reliability: 13 automated tests covering every tool and the full mock investigation chain (13/13 passing).

๐Ÿ“Š Demo Scenario (healthcare datapack)

Input: "Patient Admissions dashboard shows zero admissions today โ€” we expect ~450."

DataSherlock's investigation: | Node | Platform | Status | |------|----------|--------| | S3 raw file | S3 | โœ… FRESH (uploaded 2:47 AM) | | ETL pipeline | Airflow | โŒ FAILED โ€” Snowflake warehouse auto-suspended | | Snowflake raw table | Snowflake | โŒ STALE โ€” 27 hours overdue | | dbt fact model | dbt | โŒ 3 critical assertion failures | | Looker dashboard | Looker | โŒ Showing wrong data |

Root cause identified: patient_admissions_etl failed at 3:14 AM with ConnectionError: warehouse COMPUTE_WH auto-suspended. Blast radius: 5 assets including an ICU capacity alert system and a readmission-prediction ML model. Fix + owners included automatically.

๐Ÿšง Challenges

  • Agent reliability: Early versions either under-investigated (checked only the dashboard) or looped endlessly. We solved this with a strict investigative methodology in the system prompt โ€” deepest-node-first interrogation โ€” which made root-cause identification deterministic.
  • Reasoning speed: A multi-step agent on standard LLM APIs took 2+ minutes. Moving inference to Groq cut end-to-end investigation time to under 30 seconds, which makes the tool feel like an investigator, not a batch job.

๐Ÿ† What we're proud of

  • The agent doesn't just say what broke โ€” it produces a full evidence chain showing healthy vs. failed nodes, so humans can verify its reasoning rather than trust it blindly.
  • It correctly distinguishes the symptom (dashboard wrong) from the root cause (warehouse suspension 3 hops upstream) โ€” the hardest part of incident response.

๐Ÿ”ฎ What's next

  • Proactive mode: continuously watch DataHub quality/freshness events and open investigations before users notice
  • Slack/PagerDuty integration for automatic owner notification
  • DataHub MCP Server packaging so Claude/Cursor users can invoke DataSherlock directly
  • Risk scoring for proposed schema changes ("if you rename this column, 47 assets break")

๐Ÿ› ๏ธ Built With

Groq ยท Llama 3.3 70B ยท DataHub (GraphQL GMS API) ยท Python ยท Streamlit ยท OpenAI SDK ยท pytest

Built With

Share this project:

Updates