The five charts an agent team actually looks at
Lesson 5 of 5 in Observability in Production: Watching Agents at Scale.
Every agent team ends up with a forty-panel dashboard nobody opens. It happens for an honest reason: each chart was added during an incident, when it was the most interesting thing in the world, and nothing was ever removed.
Apply one test to every panel: what question does it answer, and what action does it trigger? A chart that answers a question nobody asks is clutter. A chart that answers a real question but triggers no action is trivia. Five signals survive that test on almost every agent team.
| The chart | The question it answers | The action it triggers | How it lies if you build it lazily |
|---|---|---|---|
1 · Task success rate, segmented by cohort — outcome-judged, split by tenant, task type, model version and prompt version | “Is the agent doing the job, and for whom is it not?” | Below threshold on a cohort → auto-ticket with the cohort filter and exemplar traces attached; investigate that segment, add its failures to the golden dataset. | Unsegmented, it moves whenever your traffic mix moves and you chase phantom regressions. Without model and prompt version stamped on it, you cannot tell a bad release from a provider rollover. |
2 · Cost per successful task — total spend ÷ successful runs, not spend ÷ runs | “What does one unit of delivered value cost, and is that trending the wrong way?” | Rising → look at steps per run and retry rate before you touch model choice; the usual cause is failures burning tokens, not inference prices. Sustained rise → budget review or a cheaper model on the easy cohort. | Spend per run falls when the agent gives up early — a metric that improves as quality collapses. Dividing by successes is what makes it honest. |
3 · Latency percentiles with a model-versus-tool split — p50, p95, p99, and where the time went | “How slow is the slow tail, and is it our inference or somebody else’s API?” | p99 up with tool time dominating → chase the dependency or add a timeout and a fallback. Up with model time dominating → look at context growth, retries and prompt size. | A mean hides the bimodal shape entirely. A percentile with no model/tool attribution tells you that you are slow and gives you nowhere to go. |
4 · Steps per run and turn-limit terminations — the loop depth distribution, plus the count of runs killed by the ceiling | “Are agents thrashing, and how often does the turn limit become the de facto stopping condition?” | Fat right tail → open the deepest traces; the usual causes are a tool returning unusable output, a missing definition of done, or a retry loop. Ceiling hits above a fraction of a percent → treat as a bug, not a budget setting. | A mean step count is nearly useless — thrashing is a tail phenomenon. And counting only successes hides the runs the limit killed, which are precisely the interesting ones. |
5 · Intervention and guardrail rate — approvals, escalations, guardrail trips, blocked tool calls, kill switch pulls, plus median review time | “Are the humans still meaningfully in the loop, and is anything hostile happening?” | Guardrail trips spiking → security triage as a possible prompt injection campaign. Approval rate approaching 100% with review time approaching zero → the gate has hollowed out; re-scope what needs approving. | A raw approval count says nothing. Approval rate next to review time is the pair that exposes rubber-stamping — the single most common oversight failure in deployed agents. |
Two of those deserve one more sentence each, because they are the ones teams most often build wrong.
Cost per successful task is the only cost number that survives contact with a real agent. Total spend rises with traffic and tells you nothing. Spend per run improves when your agent quits early. Spend per success moves in the direction of your actual interests: it rises when quality falls, when retries multiply, when context bloats — and it falls when caching, routing or a better prompt genuinely works.
Median review time next to approval rate is the oversight equivalent. A 99.8% approval rate is consistent with an excellent agent and with reviewers who stopped reading; a three-second median review resolves the ambiguity. Instrument it, chart it, and put it in the digest — because human oversight decays silently and no other number reveals it.
From aggregate to artifact and back — the loop the dashboard exists to serve
- Metric crosses a threshold
A rate, a percentile, or a judged score over a window — never a single run.
- Segment to a cohort
Tenant, task type, model version, prompt version, tool. If the metric is unsegmented you stop here, blind — which is why segmentation is a design requirement, not a nice-to-have.
- Pull exemplar traces from that cohort
Two or three failures and — crucially — one success from the same cohort. The contrast is where the diagnosis lives.
- Known failure mode?
Compare against your catalogue of named failure modes: bad tool output, missing stopping condition, context loss, retrieval miss, injection attempt.
- Contain now
The reversible action available in minutes: disable a tool, lower a cap, roll back a prompt version, route the cohort to a human, pull the kill-switch.
- Add the case to the golden dataset
The step teams skip. Without it the same failure returns next quarter and gets re-diagnosed from scratch by whoever is on call.
- Fix, then verify in the next window
Offline: the new case passes. Online: the metric returns to baseline for that cohort. Both, or you have not finished.
Tool: Trace Debugger — Walk the loop end to end: start from a metric anomaly, segment to a cohort, pull exemplar traces, and name the failure mode before you are allowed to propose a fix.
Interactive flashcard deck.
Interactive checkpoint quiz (2 questions) — open this page in a browser to take it.