Luca Palonca
← All case studies

A real-time voice AI agent, in production, in healthcare

The client: a healthcare SaaS platform serving specialty medical practices in the US.

The problem

The platform needed an AI agent that could hold a real-time voice conversation with a caller — answering questions, checking availability, taking actions — and do it reliably enough to run unattended in a regulated setting. Voice adds constraints text-only agents don’t have: latency budgets measured in hundreds of milliseconds, no chance to silently retry a bad turn, and a much higher cost for the agent confidently saying the wrong thing out loud.

Approach

The system streams audio in both directions over a telephony integration, feeding a real-time model that can call tools mid-conversation — checking a calendar, pulling a record, taking an action — and return results as structured, validated output rather than free text the rest of the system has to parse and hope. Behavior is configured declaratively rather than hard-coded, so new conversation flows can be defined without shipping new code.

Reliability work was as large as the feature work: guardrails around what the agent is allowed to say and do, structured-output validation so a malformed tool call fails loudly instead of silently, and evaluation against a growing set of real conversation transcripts rather than a handful of hand-picked examples.

Outcome

The agent handles thousands of real conversations in production, with structured outputs and tool calls validated at every turn rather than trusted blindly.

What I’d tell you if you were building this

Voice AI’s hardest problem usually isn’t the model — it’s everything around it: turn-taking, interruption handling, and the fact that a bad response can’t be edited before the user hears it. Budget accordingly for guardrails and evals, not just the happy path.

Need this built, or fixed?

Backend architecture and performance, migrations and data pipelines, and making AI features reliable enough to ship — scoped in writing, delivered as pull requests against your repo.

See what's involved →