By Sagar Shankaran, Founder of CallSphere
Build an eval loop for Claude agents — real datasets, deterministic graders, LLM-as-judge, and CI regression gates that catch quality drops before release.
Key takeaways
Every team building Claude agents eventually hits the same wall: someone tweaks a prompt, the demo looks better, it ships, and three days later a different scenario that used to work is now broken. Without evals, agent development is a game of whack-a-mole where each fix risks a silent regression somewhere you weren't looking. The teams that ship agents confidently aren't smarter prompters — they have a measurement loop that tells them, before release, whether a change made things better or worse.
This post is about building that loop for Claude agents: assembling a dataset that reflects reality, writing graders that actually capture quality, using Claude as a judge where rules fall short, and wiring the whole thing into a release gate so regressions get caught in CI instead of in production.
An eval is two things: a dataset of inputs with the context an agent would really see, and a grader that turns each output into a score. That's it. The sophistication is in choosing the right cases and the right grading method, not in any framework. You can start with a JSON file of fifty cases and a Python script and already be ahead of most teams.
The cases that matter most are the ones drawn from reality. Pull them from production traces — especially the runs that went wrong — and from every bug a user has reported. A made-up happy-path question ("What are your hours?") tells you little; the messy real one ("hey i think i was double charged last month can u check order ord_29481 and also do u ship to canada") tells you whether your agent actually works. Curate a few hundred of these and you have a measuring stick.
flowchart TD
A["Change: prompt, tool, or model"] --> B["Run agent over eval dataset"]
B --> C["Deterministic graders: schema, tool calls, match"]
B --> D["LLM-as-judge for subjective quality"]
C --> E["Aggregate score vs. baseline"]
D --> E
E --> F{"Regression beyond threshold?"}
F -->|Yes| G["Block release, surface failing cases"]
F -->|No| H["Promote & update baseline"]The diagram shows the shape of a mature setup. Any change — a new system prompt, an added tool, a model upgrade from Sonnet to Opus — triggers a full run over the dataset. Deterministic graders handle everything objective; an LLM judge handles the subjective parts; the scores aggregate and compare against a stored baseline; and if the change regresses past your threshold, the release is blocked and the specific failing cases are surfaced so you can see exactly what broke. This is the difference between hoping a change is safe and knowing it.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
Reach for code-based graders wherever the answer is checkable. Did the agent return valid JSON matching the schema? Did it call lookup_order before refund_order? Did it extract the right ID? Did the final number match the expected value? These are cheap, fast, and perfectly reliable — and they cover more of agent quality than people expect, because so much of agent correctness is about doing the right things in the right order.
def grade(case, run):
checks = {
"valid_json": is_valid(run.output, case.schema),
"called_lookup_first": tool_order(run) == ["lookup_order", "refund_order"],
"no_hallucinated_id": run.used_id == case.real_id,
"within_turn_budget": run.turns <= 8,
}
return sum(checks.values()) / len(checks), checksThis grader returns both a score and a per-check breakdown, so a failure tells you not just that the case failed but which property broke. Only when quality is genuinely subjective — tone, helpfulness, faithfulness to source — do you escalate to an LLM judge.
LLM-as-judge means asking a model to score an output against a rubric. It's powerful for the fuzzy dimensions, but it has to be done with discipline or it produces confident noise. Give the judge a specific rubric, not a vague "is this good?" Ask for a score on a defined scale with a one-line justification, which both improves reliability and gives you something to audit. Use a strong model like Opus or Sonnet as the judge even if your agent runs on Haiku, because the judge's job — careful evaluation against criteria — benefits from the extra capability.
Validate the judge itself: hand-label a sample of cases and check that the judge agrees with your human labels. If it doesn't, the rubric is the problem, not the agent. A judge you haven't calibrated is just another untested component in your pipeline.
For agents, the final answer is only part of the story. An agent that arrives at the right answer by calling six tools when two would do, or by guessing past a failed lookup, is fragile even when the output happens to be correct. Evaluate the trajectory: the sequence of tool calls, whether arguments were grounded in real data, whether the agent recovered sensibly from a tool error, and how many turns it took. Trajectory-aware grading catches the agent that's right by luck before that luck runs out in production.
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.
| Grader | Use for | Cost / reliability |
|---|---|---|
| Exact / schema match | Structured outputs, extraction | Cheap, fully reliable |
| Tool-trajectory check | Correct tool order & grounding | Cheap, reliable |
| LLM-as-judge | Tone, helpfulness, faithfulness | Costlier, needs calibration |
| Human review | Calibration & ambiguous edge cases | Expensive, gold standard |
An eval is a curated dataset of representative inputs paired with a grading method that scores the agent's outputs, used to measure quality objectively and detect regressions before release. For agents it should grade not only the final answer but the trajectory — which tools were called, in what order, with what arguments.
You can start meaningfully with 50 cases drawn from real traces and reported bugs, then grow toward a few hundred as you discover new failure modes. Quality and coverage of edge cases matter far more than raw count — a focused set of hard, realistic cases beats thousands of happy-path examples.
Use a deterministic code check whenever the property is objectively verifiable — schema validity, exact values, tool-call order — because it's cheap, fast, and reliable. Reserve LLM-as-judge for genuinely subjective dimensions like tone, helpfulness, or faithfulness to a source, and always calibrate the judge against human labels before trusting it.
Run your eval suite automatically in CI on every change, compare aggregate scores against a stored baseline, and block any release that drops scores on cases that previously passed. This turns regressions from a production surprise into a failed check that surfaces the exact broken cases before merge.
CallSphere runs this same eval discipline behind its voice and chat agents, gating every change against real conversation scenarios so the assistants that answer your calls and messages keep improving without regressing. See the quality-first approach 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