← All articlesPart 4 of 4 · Dynamic personas

How to Validate LLM-as-a-Judge for Voice AI Agent Evaluation

Learn how to validate LLM-as-a-Judge for Voice AI testing using human labels, agreement rates and score-band checks before you trust its scores.

Sri SivaramanLokesh Kannan
Sri Sivaraman & Lokesh Kannan Engineering · GTM, Vattara · October 22, 2026 · 4 min read
WHO GRADESTHE GRADER?−16 pts

A score is only as good as the grader behind it. In our stress run, the arm that found every defect scored 16 points lower. That is what the judge measured, and it is not the same thing as agent quality.

43.4
Task Completion, frozen caller
27.3
Task Completion, moving caller
15 vs 8
calls passed, frozen vs moving (of 25)

Why LLM Judge Scores Can Misrepresent Voice AI Agent Performance

We ran the same voice agent against 25 pairs of callers. In each pair, one caller's mood was frozen and the other's moved. The moving caller produced 11 ignored requests for a human, 7 failed repeats and 14 hang-ups. The frozen caller produced none of them.

The Task Completion judge scored the frozen arm 43.4 and the moving arm 27.3. It passed 15 of 25 frozen calls and 8 of 25 moving ones. If you read the dashboard and nothing else, you would conclude that the moving caller made the agent worse. The agent's handling was not worse. The moving caller was harder to please, and the judge appears to be grading the caller's satisfaction.

What Does Task Completion Measure in Voice AI Evaluation?

A Task Completion judge reads the transcript and asks whether the caller got what they came for. That sounds like an agent metric. In practice it is a caller-outcome metric, and the two come apart the moment the caller stops cooperating.

A frozen caller stays on the line and keeps answering, so the task tends to complete even when the agent made mistakes along the way. A moving caller can hang up mid-call, so the task does not complete, and the call is marked a fail. Same agent, same kind of mistakes, two scores.

There is a second possible effect. A hang-up leaves a short transcript, and short transcripts can take a different scoring path. Only 3 of 50 calls used that heuristic path, so it is unlikely to explain most of the gap. We have not separated the two effects yet, so the gap is reported as an observation, not a measure of judge bias.

How to Evaluate Voice AI Agent Behavior Beyond Task Completion Scores

On a stress run, read pairs: the caller's action and the agent's reaction. Each pair is a yes or no, with no judge in the loop.

Caller actionAgent reaction to readGood result
Cut inDid the agent stop?Stopped
Asked for a humanOffered, declined with a reason, or ignored?Offered or declined
Asked to repeatSame number, digit by digit?Repeated
Said "hold on"Did the agent wait?Waited
Hung upWhat happened in the turns before?A cause you can name

These are the numbers that moved in our run: 11 ignored requests, 7 failed repeats, 14 hang-ups. They moved because the agent did something, not because the caller was in a worse mood. Task Completion stays on the dashboard, but its proper job is tracking the regression suite, where the caller is held constant.

How to Validate LLM-as-a-Judge Against Human Evaluations

A model that grades another model needs testing the same way. This series' rule is to validate every automated grader against human labels before its score is trusted, and to re-check it whenever the thing it grades changes.

  1. Sample calls across the score range, not just the failures.
  2. Have two people label each call independently, on the same rubric the judge uses. Measure how often they agree first. If two humans cannot agree, the rubric is the problem, not the judge.
  3. Compare the judge to the human majority, and report agreement by score band. A judge can be right on clear passes and clear fails and wrong in the middle, where most calls sit.
  4. Look at every disagreement and classify it: a rubric gap, a judge failure, or a human error.
  5. Re-run after every change to the judge's prompt or model. A grader that drifts silently is worse than none.

Our Task Completion judge has not been through this on calls with moving callers. Until it has, its number on a stress run is a hint. The caller-action table above is the evidence.

Best Practices for Voice AI Evaluation Dashboards

  1. Split the dashboard by caller type. A frozen-caller score and a moving-caller score should not sit on the same chart without a label.
  2. Put caller actions above the score on stress runs. Ignored requests, failed repeats and hang-ups, as counts, with the calls attached. The score goes below, labelled as a judge output.
  3. Publish the judge's agreement rate. If the grader has been validated, show the number. If not, say so. "Judge agreement: not yet measured" earns more trust than a hidden gap.

The last one is the hardest and the most useful. A score nobody has checked is a story. A score with a published agreement rate is a measurement.

Your calls, our evidence

Evaluate Voice AI Agents With Vattara AI

Run Dynamic persona against your own agent and see every mood shift, the agent turn that caused it, and how the agent handled it, scored with CLEAR.

Dynamic personaVoice AI testingSeries
Sri Sivaraman
Sri Sivaraman
Engineering, Vattara

Building the neutral certifier for voice AI agents. We test live voice agents over real telephony and return a defensible report card.

Lokesh Kannan
Lokesh Kannan
GTM, Vattara

Building the neutral certifier for voice AI agents. We test live voice agents over real telephony and return a defensible report card.

Vattarainfo@vattara.ai