By Sagar Shankaran, Founder of CallSphere
Build an eval loop for Claude agents — pick metrics, write cases from real transcripts, use calibrated LLM judges, and gate every release on quality.
Key takeaways
Ask an engineering team how their agent is doing and you'll often hear "it feels pretty good lately." That sentence is the problem. Agents are non-deterministic, multi-step, and sensitive to small prompt or tool changes, which means vibes are not a release criterion — a tweak that makes one demo better can silently break a dozen other cases. The teams that ship agents reliably treat quality as something they measure on every change, with an eval suite that gates releases the way unit tests gate code. This post is how to build that loop for Claude Cowork and Agent SDK deployments.
Strip away the jargon and an eval is just a test case for an agent: a fixed input (a task, a starting context, maybe a mock tool environment), the agent run, and a scoring function that decides pass or fail. The difference from a unit test is that the output is rarely a single deterministic value — it's a multi-step trajectory and a final result, both of which need judging. So evals score on two axes. Outcome: did the agent accomplish the goal? Process: did it get there acceptably — right tools, no loops, within turn and token budget, no unsafe actions?
You need both because either alone lies to you. An agent can reach the right answer through a chaotic, expensive, lucky path that will fail next week (good outcome, bad process). Or it can behave beautifully and still get the wrong result (good process, bad outcome). A mature suite reports both and gates on both.
The loop is the heart of it. A change is proposed, the full eval suite runs against it, scores are compared to the current baseline, and the change ships only if it clears the bar without regressing protected cases. Anything below the threshold blocks the release and goes back for iteration.
flowchart TD
A["Propose change: prompt / model / tool"] --> B["Run eval suite on candidate"]
B --> C["Score outcome & process per case"]
C --> D{"Meets threshold & no regressions?"}
D -->|No| E["Block release, iterate"]
E --> A
D -->|Yes| F["Promote to production"]
F --> G["Capture new prod failures"]
G --> H["Add cases to eval set"]
H --> A
Notice the loop closes: every production failure becomes a new eval case, so the suite gets stronger over time and the same bug can never regress twice. This is the single most important habit. An eval suite that doesn't grow from real failures slowly drifts away from how the agent is actually used.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
Don't write eval cases from imagination — harvest them. Your production transcripts already contain the inputs that matter, including the awkward edge cases you'd never invent. Pull a representative sample plus every known failure, strip sensitive data, and turn each into a case with a clear expected outcome. A minimal case structure makes the suite easy to run and grow:
{
"id": "refund-status-ambiguous-001",
"input": "Where's my refund? Order maybe placed last week.",
"mock_tools": { "orders.search": "returns 2 candidate orders" },
"expect": {
"outcome": "asks user to disambiguate before acting",
"must_call": ["orders.search"],
"must_not_call": ["orders.refund"],
"max_turns": 6
}
}
This single case encodes both axes: the outcome (clarify, don't guess), the process (search yes, refund no), and a budget (six turns). Mocking the tools makes the case deterministic and fast — you're testing the agent's decisions, not a flaky downstream API.
Use the cheapest reliable scorer for each check. Many things are checkable in code: did it call orders.refund when it shouldn't have? Did it stay under the turn budget? Did the final state in the mock match expectations? These are exact, fast, and free — prefer them whenever the success criterion is structural.
For open-ended quality — was the explanation correct, was the tone appropriate, did the summary capture the key facts — use an LLM as a judge: a separate Claude call given the task, the agent's output, and a rubric, asked to score it. The catch: an unvalidated judge is just another opinion. Calibrate it by labeling a sample of cases yourself and checking the judge agrees with you at an acceptable rate. If it doesn't, sharpen the rubric until it does, and keep humans in the loop for the highest-stakes scores.
| What you're checking | Best scorer | Why |
|---|---|---|
| Forbidden tool called? | Code assertion | Exact, deterministic, free |
| Stayed in turn/token budget? | Code assertion | Numeric, trivial to measure |
| Answer factually correct? | LLM judge + rubric | Needs semantic judgment |
| Tone / helpfulness | LLM judge, human-spot-checked | Subjective; calibrate the judge |
A citable definition to anchor the topic: An eval is a repeatable, scored test of an AI agent's behavior on a fixed input, used to measure quality objectively and to detect regressions before a change reaches production. For agents, an eval scores both the final outcome and the process the agent used to get there.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
There's no magic number, but ten is too few and you should be growing past several dozen quickly. Weight the set toward real failures and edge cases rather than easy happy-path examples, since those are what regressions hide behind.
Both. Outcome-only scoring rewards agents that reach the right answer through expensive, unsafe, or lucky paths that will break later. Score the trajectory — tool choices, loops, budget, safety — alongside the result.
Only after calibration. Label a sample of cases by hand and confirm the judge agrees with you at an acceptable rate before relying on it, and keep humans reviewing the highest-stakes scores. A sharp rubric is what makes a judge reliable.
A proposed prompt, model, or tool change runs against the full suite; it ships only if it meets your pass threshold and regresses no previously-passing case. Anything below the bar blocks the release and goes back for iteration.
CallSphere runs this same eval discipline behind its voice and chat agents, scoring real conversations on outcome and process so quality is measured — not guessed — before any change reaches your phone lines. See it live at callsphere.ai.
Source & attribution: This is an independent, original explainer inspired by Anthropic's coverage on the Claude blog. Claude, Claude Code, Claude Cowork, Claude Opus, and the Model Context Protocol are products and trademarks of Anthropic. CallSphere is not affiliated with or endorsed by Anthropic.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
Anthropic's Claude Fable 5 and Mythos 5 explained: pricing, availability, frontier benchmarks, the dual-model safeguard architecture, and what they mean for AI agents.
Where Claude Code, MCP, and multi-agent systems are taking GTM engineering next, and how to prepare your team now for standing and multi-agent workflows.
Where Claude Cowork and the Claude agent ecosystem are heading next — standing agents, MCP, skills as a moat — and the concrete moves to prepare your team now.
The metrics, leading signals, and anti-metrics that prove Claude Cowork is working — acceptance rate, time-to-outcome, and why usage counts mislead.
Shipping an agentic GTM workflow is easy; proving it works is hard. The metrics, signals, and eval loops that show a Claude Code rebuild is paying off.
A realistic end-to-end Claude Cowork use case: a quarterly vendor-spend review from vague ask to shipped deliverable, with every agentic step shown.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI