How to Fix Voice Agent Failures That Transcript Evals Miss
A voice agent can pass a transcript evaluation and still fail a caller. The text may be correct while the agent interrupts a name, misses an account number, talks over a barge-in, waits too long after a question, or hands off after the caller has already left. Treat the audio pipeline, dialog, tools, and outcome as separate places where a failure can begin.
The repair loop is the same as for any production agent: name one failure with an eligible denominator, isolate the layer that can change, compare one candidate with the current behavior on shared scenarios, then measure the same failure after an approved release. A simulation or score supports a release decision. It is not a production verdict.
The short version
Test the whole call when the caller experiences the whole call: preserve audio and turn evidence, change one layer, compare the same scenarios, and verify the targeted failure on later calls.
1. Separate the transcript from the call experience
Start by preserving the caller audio or an approved recording reference, speech-to-text output, agent text, text-to-speech output, timestamps, turn boundaries, tool calls, tool results, transfer events, agent version, and a caller outcome. A transcript alone cannot show whether speech recognition lost an order number, whether the agent began talking before the caller finished, or how long the caller waited in silence.
LiveKit's audio simulation guidance makes this distinction explicit: audio-mode tests can expose endpointing, interruption handling, transcription, speech quality, and latency that text-mode tests cannot. ElevenLabs likewise separates full conversation simulation, next-reply checks, and tool-call tests. Use the narrowest evidence that can actually observe the reported failure.
- Caller symptom
- The agent interrupts a caller
- Evidence to inspect
- Turn boundary, audio overlap, interruption event
- Do not assume
- That the wording or prompt caused it
- Caller symptom
- The agent mishears an account number
- Evidence to inspect
- Audio, transcript, entity capture, tool arguments
- Do not assume
- That the tool or policy was wrong
- Caller symptom
- The caller waits after a question
- Evidence to inspect
- STT, model, and TTS timing by turn
- Do not assume
- That the answer itself was incomplete
- Caller symptom
- The transfer never happens
- Evidence to inspect
- Intent, transfer-tool decision, parameters, result
- Do not assume
- That the handoff instruction was ignored
2. Name one failure pattern and denominator
Use a pattern that a reviewer could identify again. For example: 'Among calls where a caller supplies a ten-digit account number after a verification request, the agent sends a different value to the lookup tool.' The eligible denominator is calls with that request and a usable recording or transcript. The numerator is calls where the captured value differs from the caller's spoken value under the stated review rule.
Keep incomplete recordings, dropped calls, and uncertain transcriptions visible rather than silently calling them passes. A generic rate such as 'bad calls' mixes speech recognition, turn-taking, policy, tool, and customer-side causes into a number that cannot guide one fix.
3. Change one layer at a time
A voice-agent candidate might adjust endpointing, an interruption threshold, a pronunciation dictionary, a confirmation step, a tool contract, or a prompt instruction. Pick one diagnosed layer and keep the model, voice, tools, routing, and policy fixed unless the evidence says one of those is the cause. Changing the voice, prompt, and transfer workflow together can make a later improvement impossible to attribute.
For an account-number failure, a bounded candidate might add an explicit repeat-back and confirmation before the lookup tool call. For a false interruption, it might adjust only the turn-detection setting. Those are different candidates with different primary measures, even if callers describe both as a frustrating conversation.
4. Compare shared scenarios that include the audio risk
Run the current agent and the candidate on the same failure-family and known-good scenarios. Include varied speaking pace, pauses, interruptions, names, amounts, confirmation codes, accents or noise only where those conditions are relevant and permitted. Preserve the same tools and test data so a tool response cannot masquerade as a speech improvement.
Score the candidate on the named failure, task completion, required transfer or escalation behavior, and the regressions that matter for that workflow. A voice agent that stops interrupting but becomes slow enough for callers to abandon has not produced a clean improvement. Repeat probabilistic scenarios when the behavior varies, but do not turn a single successful call into a reliability claim.
5. Release with a marker and measure the same failure
Record the approved version, release time, changed layer, and overlapping changes such as a model, speech provider, routing, or telephony update. On new eligible calls, apply the same failure definition and review rule. Compare a comparable pre-change and post-change window, and inspect the known-good behavior the candidate was required to retain.
If the pattern persists, the result is not fixed. If a speech-provider or routing change overlaps the comparison, the result is confounded. If there are too few eligible calls or too much missing audio to interpret, retain insufficient evidence. These are useful outcomes because they preserve the next diagnosis instead of crediting a release with a result it did not establish.
Use a coding agent to retrieve evidence, not to invent a verdict
A coding agent can summarize the saved transcript, tool sequence, and release evidence for one pattern, identify missing fields, and prepare a bounded configuration candidate. It should preserve the failure definition, denominator, version, and unresolved cases. It should not declare a new voice or prompt verified because a transcript looks better.
Keep raw audio and timing evidence in the voice stack: Converra's current integrations accept text conversations. With Converra MCP, start from the saved account and agent inventory, inspect the diagnosed text and tool failure, run the authorized candidate comparison, then inspect deployment-impact and verification evidence after the team applies an approved change. State-changing actions remain subject to the connected account's scopes and the user's authority.
Frequently asked questions
Why can a voice agent pass transcript evals but fail callers?
A transcript does not preserve every caller-visible failure: speech recognition, turn timing, interruptions, silence, pronunciation, and audio latency can change the experience even when the text is acceptable.
What should I test before changing a voice agent?
Test the named failure family and nearby successful calls with the same audio, dialog, tool, and outcome evidence needed to locate the failing layer. Keep a control so the candidate is compared with the current behavior on shared scenarios.
Does a passing voice simulation prove the production fix worked?
No. A passing simulation supports an approved release decision, while a production verdict requires measuring the same failure among comparable eligible calls after the change ships.

Written by
Oren CohenFounder of Converra. Previously founded Buildup (acquired by Stanley Black & Decker) and, as VP Product Growth at Totango, owned AI end-to-end from design through production.
Related reading
Verify an AI agent fix after deployment
Keep an approved release separate from evidence that the targeted failure changed on production traffic.
Build a regression suite from production traces
Reuse representative behavior while keeping the candidate and current agent comparable.
Use Converra from a coding agent
Retrieve diagnosis, candidate-comparison, deployment-impact, and verification evidence through the authorized MCP workflow.
Turn a failed call into a testable behavior change
Converra keeps the failure pattern, candidate comparison, approval, and production evidence connected so your team can determine what changed after a voice-agent release.