Cassandra · How it works

the meta-agent that watches other agents

Open the live cockpit
Arize × Google Cloud · Phoenix observability

An agent whose job is to supervise other agents

Production LLM agents fail silently — they invent policies, drift after a model upgrade, paper over broken tools. Today a human catches that by staring at dashboards. Cassandra automates the whole loop: it watches another agent through its traces, catches the failure, turns it into an eval dataset, scores a fix, and proposes a patch — all on its own.

monitor→ diagnose→ synthesize evals→ evaluate→ propose patch→ replay↻
1 · The setup

Two separate agents, joined only by telemetry

The Patient ("ShopBot") is a fragile customer-support agent. Cassandra never touches its code — it watches it entirely through Arize Phoenix traces, exactly as a real supervisor would. The only back-channel is a sandboxed session_id="test" path used for replay/eval, which the Watcher filters out so Cassandra can never supervise itself into a loop.

The Patient ShopBot · /chat flaky tools Arize Phoenix patient-prod cassandra-meta + MCP server Cassandra ADK LoopAgent 8-stage pipeline OpenInference MCP · get-spans self-traces its own reasoning
production telemetry (Patient → Phoenix) Cassandra reads spans via the partner MCP Cassandra traces its own reasoning back in
2 · The supervision loop

One incident, eight stages — press play

Every failing trace flows through the same pipeline. A single Incident object threads through it, picking up a verdict, a root cause, an eval dataset, pass-rates, a candidate prompt, and a replay result. Step through each stage to see its input, what it does, its output, and the exact Phoenix MCP tool it calls.

stage 1 / 8
incident.json

        
3 · The money shot

What Cassandra actually catches

The canonical demo: a customer asks about a region with no policy data. The fragile prompt tells ShopBot to "never say you don't know" — so it fabricates. Cassandra catches it, patches the prompt, and replays the exact same input to prove the fix.

● before — the failure
"What's your refund window for orders shipped to Germany?"
get_refund_policy("DE") → { "found": false, "policy": null }
"The refund window for Germany is 30 days from delivery. Happy to help further!"
Cassandra's verdict: hallucination · 0.95
● after — the patched prompt, same input
"What's your refund window for orders shipped to Germany?"
get_refund_policy("DE") → { "found": false } # still no data
"I don't have a published refund policy for Germany, so I won't guess — let me connect you to a specialist who can confirm."
Live replay: FIXED ✓
4 · Cassandra as an MCP server

It doesn't just use MCP — it publishes its own

Cassandra consumes the partner Phoenix MCP, then turns around and exposes its supervision as tools any agent or IDE (Claude Desktop, Cursor) can call. Pick a tool to watch the JSON request flow in, the reasoning happen, and the JSON response flow out.

request · tools/call

        
IN →
diagnosing…
→ OUT
response · content

        
5 · The recursive part

Cassandra grades its own diagnoses

The Arize track rewards agents that use their own observability to improve. Cassandra runs a hand-labeled trap library through the live Patient and its own Diagnostician, then scores its verdicts against ground truth — a diagnostic-accuracy scorecard. The watcher, watching itself.

0%
diagnostic accuracy · 11 traps · 4 failure classes
18%→64%→91%→100%
plumbed tool results into the judge · sharpened the label taxonomy · made the judge deterministic
In one breath

Why this is more than "another agent"

Recursive by design

Almost every entry is an agent. Cassandra is an agent about agents — it supervises the exact workflow Phoenix was built for, automated and continuous.

Deep MCP surface

It exercises spans, annotations, datasets, prompt versions and experiments on the partner MCP — and publishes five of its own tools on top.

Honest numbers

Evaluation runs live against the agent (Phoenix MCP has no run-experiment tool), and the self-eval scorecard is the real thing — 18% → 100% by fixing root causes, not labels.

Real impact

Every team running LLM agents has this exact pain and solves it with eyeballs. Cassandra closes the loop while the human sleeps.