By Sagar Shankaran, Founder of CallSphere
Build an eval loop for Claude agents: define quality, score tool-use trajectories, use LLM judges, and gate every release behind passing eval scores.
Key takeaways
Most agent teams ship on vibes. Someone runs a few prompts by hand, the outputs look good, and the change goes out. Then a subtle regression slips through, the agent starts mishandling a category of inputs it used to get right, and nobody notices until a customer complains. The cure is the same one software engineering discovered decades ago — an automated test suite — adapted for the probabilistic, trajectory-based nature of agents. In agentic engineering, that suite is called an eval, and a release that is not gated behind one is a release made blind.
Evaluating agents is harder than evaluating a deterministic function because the same input can produce different valid outputs, and because an agent's quality lives not just in its final answer but in the path it took to get there — which tools it called, in what order, with what arguments. This post lays out how to build an eval loop that measures both, scores it reliably, and turns a green run into a gate every release must pass.
You cannot score what you have not defined. The first step in any eval program is to write down, concretely, what a good agent run looks like for your task. For a coding agent that might be: the produced code compiles, the relevant test passes, no unrelated files were modified, and the change stays within a reasonable token budget. For a support agent it might be: the correct policy was cited, the right tool was called to look up the account, and the tone matched guidelines.
Notice these are checkable claims, not feelings. The discipline of writing them down forces clarity and surfaces disagreement about what "good" even means. An agent eval is a repeatable test that runs an agent against fixed inputs and scores both its final output and its tool-use trajectory against an explicit definition of correct behavior. Without that explicit definition, you are not evaluating; you are guessing.
The best eval cases are not invented; they are harvested. Every production bug, every weird trace, every edge case a user hit becomes a permanent case in the dataset. This grounds your evals in reality rather than in what you imagined could go wrong. Start small — even twenty to fifty well-chosen cases catch most regressions — and grow the set every time something breaks.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
flowchart TD
A["Code or prompt change"] --> B["Run agent against
fixed eval dataset"]
B --> C["Score final output
(assertions / LLM judge)"]
B --> D["Score trajectory
(tools, order, args)"]
C --> E{"Aggregate score
>= threshold?"}
D --> E
E -->|No| F["Block release &
surface failing cases"]
E -->|Yes| G["Gate passes"]
G --> H["Ship"]
F --> I["Add new failures
to dataset"]
I --> AThe loop in the diagram is the whole discipline: a change runs against fixed cases, both output and trajectory get scored, an aggregate threshold decides pass or fail, and new failures feed back into the dataset. Crucially, the dataset is versioned alongside your code so that an eval result is reproducible and a regression is attributable to a specific change.
Different aspects of quality call for different scorers. Deterministic checks are best where they apply: did the code compile, did the test pass, was the JSON valid, did the agent stay under the turn limit. These are cheap, fast, and unambiguous, so use them for everything that can be expressed as a hard assertion.
For the fuzzy parts — was the explanation correct, was the tone right, did the answer actually address the question — use an LLM-as-judge: a separate model call, often a capable model like a Sonnet- or Opus-tier judge, given the input, the agent's output, and a rubric, returning a score and rationale. Judges are powerful but not free of error, so calibrate them against a set of human-labeled examples to confirm the judge agrees with people before you trust it. Finally, score the trajectory: assert that the agent called the expected tools, did not call forbidden ones, and passed sensible arguments. A correct answer reached through a reckless path is still a problem worth catching.
An eval that nobody enforces is documentation, not a gate. The payoff comes from wiring the eval into your release process so a change cannot ship unless the aggregate score clears a threshold. Run the eval in CI on every meaningful prompt, tool, or model change, and treat a drop below the bar exactly like a failing unit test — it blocks the merge.
Set the threshold thoughtfully. Demanding a perfect score on a probabilistic system invites flakiness, so define a realistic bar and, for important cases, run them several times to account for variance rather than judging on a single sample. The point of the gate is not to chase a perfect number; it is to make regressions impossible to ship silently. A green eval is permission to ship; a red one is a signal to look before you do.
An eval suite decays if you let it. Two failure modes creep in. First, overfitting: if you only ever tune against your eval cases, you can climb the score while real-world quality stalls, so periodically refresh the dataset with fresh production traces. Second, staleness: as the agent's job changes, old cases stop reflecting what matters, so prune and rewrite them as the product evolves.
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.
Treat the eval as a living asset with the same care as the code it guards. The teams that ship reliable agents are not the ones with the cleverest prompts; they are the ones who can change a prompt with confidence because a trusted eval will catch it if they break something. That confidence is what lets you move fast without breaking the agent.
Agents are probabilistic and trajectory-based: the same input can yield different valid outputs, and quality depends on the path — which tools were called, in what order — not just the final answer. So agent evals score both the output and the tool-use trajectory, and important cases are run multiple times to handle variance.
Use deterministic assertions wherever quality is checkable — did it compile, did the test pass, is the JSON valid — because they are cheap and unambiguous. Reserve LLM judges for fuzzy dimensions like correctness of an explanation or tone, and calibrate the judge against human-labeled examples before trusting it.
Start small. Twenty to fifty well-chosen cases drawn from real failures catch most regressions. Grow the set every time something breaks in production, so the suite reflects reality rather than imagined problems, and version it alongside your code for reproducibility.
Wire the eval into CI and block merges when the aggregate score falls below a realistic threshold. Avoid demanding a perfect score on a probabilistic system; instead set an achievable bar and run important cases several times to average out variance.
Quality gates matter most when the agent is talking to a real customer. CallSphere runs eval-driven voice and chat agents whose behavior is measured and gated before it ever reaches a live call. 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.
Why the first four minutes of a 2:14 a.m. hospice call cost real money, and how a 2026 assistant that quotes only your own approved documents shortens them.
Carrier shortlists are built by software before dawn. What makes a 38-truck fleet invisible: stale MCS-150, no lane page, and a phone that stops at 6pm.
Build a 200-case test set from your own janitorial work orders, grade the agent, and widen its authority in stages. Includes the five pass/fail call types.
How a dealership funding clerk starts Tuesday with a sorted exception queue instead of a schedule, and what four fewer days in transit is actually worth.
The truck order and the retail price file cannot be undone. How independent grocers scope an acting AI assistant to everything else without losing control.
Case managers send one referral to eight agencies and families ask assistants to compare. What makes a home health or hospice agency invisible to both.
© 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