We adapt
The text model inside the agent: what to say, which tool to call, when to verify, when to hand off to a person.
The language model inside your phone agent decides what to say, which tool to call and when to hand off. Polyvoice trains it on the calls it already takes, tests the result against what you run today, and you approve what goes live. Speech recognition and synthesis stay exactly as they are.
A reschedule that ends in a transfer. A caller who asks for a price and gets one they should never hear. An intake flow that skips the verification step. Your QA team hears it in the recordings, someone patches the prompt, and next week a variation of it is back.
Prompt edits fix one phrasing at a time. The model never learns the job. Meanwhile every call your agent takes is a worked example of what to do and what not to do, and it goes nowhere.
The text model inside the agent: what to say, which tool to call, when to verify, when to hand off to a person.
Speech recognition, speech synthesis, telephony, your workflow code. If the failure is “it misheard the member ID”, that is not a polyvoice problem, and we will tell you so on the first call.
Polyvoice plugs a call-simulation service into our training loop as the environment and the scorer. Your agent keeps taking real calls on the live model the whole time. A candidate is trained and scored on the side, and only replaces the live one if it clears a gate you set and a person on your team approves.
Your agent's code does not change. It keeps pointing at the same endpoint. What is behind the endpoint gets better, or stays put.
Simulated callers phone your agent through a proxy that records every turn. Personas and scenarios you sign off on. A held-out set nobody trains on.
A judge scores each call: expected behaviours met, plus hard rules like never states a price. The judge's explanation of a failed call becomes the hint for training.
The current adapter re-answers the failed turns with the hint in view, and learns to give that answer without it. No real-time calls are burned on training rollouts.
Candidate versus incumbent on the held-out scenarios, paired, with a confidence interval. Under the threshold, nothing changes. Over it, you approve and the proxy serves the new adapter.
Scores are agreed before training starts and computed the same way for the incumbent and the candidate, on the same held-out scenarios.
Administrative flows only: scheduling, intake, routing, member-service navigation. No clinical decisions. No compliance claims.
Our own recipe, a dental receptionist, 18 September 2026. A 4B open model with a LoRA adapter, simulated callers from Coval, 82 conversations in the cycle. The candidate scored higher on the held-out scenarios, and the gate still rejected it: a hair under the minimum we set, on only eight scenarios. Right call.
That is not a customer result. It is a receipt showing the loop runs end to end on a voice agent and refuses to promote noise. Your pilot gets the same receipt.
| Incumbent, held-out | 0.888 |
| Candidate, held-out | 0.938 |
| Paired delta | +0.049 |
| 95% interval | [−0.021, +0.117] |
| Wins / losses / ties | 4 / 1 / 3 |
| Minimum to promote | +0.050 |
| Gate | rejected |
A fixed-scope pilot on the call type that keeps going wrong. Metric agreed before training starts. We run the loop, you read the comparison, and it ends with a recommendation: deploy, iterate, or stop.
About three to four weeks once access is ready. Voice pilots cost more than text ones because simulated calls are billed by the minute. Scope and price are set by the founders on a call.
Book a demo