The Graph Found the Real Bug
The model first appeared to score 67% precision, with “false positives” that looked like popular artists. A Neo4j graph proved otherwise: every one was the second day of a real bot attack that ran past midnight, and the data generator had labelled only the first day. With every attack day labelled, the model scores 100% precision and 100% recall. The model was right; the labels were wrong.
Real Agent Reasoning, Not Scripted Output
Mid-investigation, the agent questioned its own evidence: “That uniformity could indicate a single coordinated operation across artists, or it could be an artifact of how the detector or the data is constructed.” It wasn’t told to check, and it was right: it had found a flaw in my data generator.
A Bot Farm, Found by a Graph
50 accounts sharing 15 devices: a bot farm that per-artist statistics can’t see. Neo4j and Graph Data Science (connected components) find rings like this across 2.1M streaming events.
One Ring, One Target
150 bot accounts, linked through 40 shared devices, all streaming the same artist on the same days. The agent’s find_fraud_ring tool shows this ring streamed 12 artists in total: one coordinated operator, not 12 separate incidents.
20 Graded Runs, Real Numbers
Five test scenarios, including a prompt injection hidden in an artist’s name and a popular artist built to look like fraud. Across 20 runs: 100% task completion, zero false holds, zero ungrounded rationales. Routing planning to a smaller model cut cost per run by 25%.
Hand-Written Loop vs. LangGraph
I rebuilt the agent in LangGraph and ran both versions through the same tests: 8 of 8 passes each, zero false holds, $0.072 vs. $0.074 per run. LangGraph adds pause-and-resume human review at no measured cost.
Millions of Events, Real Features
A bronze-to-gold PySpark and Delta Lake pipeline turns 2.1M streaming events into four bot-farm signals: burst velocity, device concentration, duration regularity, and geo-impossible travel.
Plans, Investigates, Reasons
A Claude agent plans its investigation, cross-checks raw signals instead of trusting a single anomaly score, and writes a rationale a human can actually evaluate before deciding.
Nothing Executes Automatically
The agent can only queue a hold. A human approves or rejects it in the review app, approved holds can be released later with a written reason, and every decision is logged.
Built to Fail Safely
Approvals that can’t apply twice, proposals that are safe to retry, a rollback path, dry-run mode, and an iteration budget, with the cost of every run recorded.
MCP, LangGraph & Webhooks
Every guardrail lives in one shared layer, used by an MCP server, a LangGraph agent with checkpointed human review, and a signed, idempotent webhook. No client can skip the rules.
Music Man integrates lakehouse data engineering, machine learning, and agentic AI into one pipeline — built to run locally, portable to a real Databricks workspace.