What actually mattered putting Voice AI into production
I spent a chunk of the last two years building Voice AI that answers real phone calls for real businesses. Not a demo that works once on stage. A receptionist named Kate that picks up when a practice is slammed, books the appointment, and does not hang up on a frustrated patient. Here is what actually mattered, and what turned out to be noise.
Owning the model beat renting a wrapper
The fastest way to ship a voice agent is to wrap a vendor. You get a phone number, a nice dashboard, and a bill that grows with every call. We started there, because starting there is smart. It told us within weeks whether the idea had legs.
It did. So we brought it in house.
The reason was not pride. A wrapper gives you someone else's tradeoffs. When a call went wrong, I could not see why, could not fix the prompt path, and could not push latency below what the vendor allowed. Voice is unforgiving about latency. A pause that reads as thoughtful in chat reads as a dropped call on the phone. Owning the model meant owning the thing customers actually judged us on: does it feel like talking to a person who is paying attention.
Owning it also changed the economics. Per-minute vendor pricing punishes success. The better Kate got, the more calls she took, the more we paid. That is a bad curve to be on when the entire point is to scale.
Small focused agents beat one big brain
The tempting design is one large model with one enormous prompt that tries to do everything: greet, qualify, schedule, answer billing questions, calm the angry caller. It demos well and breaks in production.
We split the work. One agent understood scheduling and only scheduling. Another handled intake. A router decided who should speak. Each piece was small enough that I could read its prompt, predict its behavior, and write a test that caught regressions. When something broke, the blast radius was one agent, not the whole call.
Small agents are also honest about their limits. A scheduling agent that does not know the answer to a clinical question should say so and hand off. One giant model will confidently invent an answer instead, because that is what a single model rewarded on fluency learns to do.
The real jump came from grounding on a unified data layer
The model was never the hard part. The hard part was giving it the truth. An agent that cannot see the actual calendar, the actual provider availability, the actual patient record is a very expensive improv actor.
We put real effort into a single place the agents could read from and trust. Once that existed, the quality jump was larger than any prompt change I ever made. A grounded mediocre model beats a brilliant ungrounded one on every call that matters.
Measure the outcome, not the vibe
Early on we watched transcripts and felt good. Transcripts are a trap. They tell you the agent sounded fine, not whether the appointment got booked, the caller came back, or the front desk stopped drowning.
We moved to outcomes: booked appointments, calls resolved without a human, repeat callers, revenue we could trace to a call Kate handled. The moment we measured that way, half our clever features turned out to be decoration and a few boring ones turned out to be the whole game.
Where AI earned its place, and where it did not
Kate earned her place on the calls that were high volume, repetitive, and time sensitive: the booking at 7pm when the office is closed, the reschedule, the simple question asked for the thousandth time. That is exactly the work a great receptionist is too valuable to spend all day on.
AI did not earn its place everywhere. The complex clinical conversation, the upset patient who needs a human to own the problem, the judgment call on a refund: we routed those to people, on purpose. Pretending otherwise would have cost trust, and trust was the entire product.
The lesson I keep
Voice AI in production is a product problem wearing a machine learning costume. The model is a component. What decides whether it works is old fashioned product judgment: pick the right job for it, ground it in the truth, measure the outcome, and know exactly where to hand off to a human. If you want the platform side of this story, my Symplast case study covers it, and if you are trying to get an AI feature past the demo stage, that is the work I take on.