One agent, every channel: why we run chat and voice on the same brain
The obvious way to build a voice agent is to build a second agent. You already have a chat bot; bolt a speech-to-text front end and a text-to-speech back end onto a copy of it, tune the prompts for spoken language, and ship. It works in a demo. It rots in production.
We took the harder path: one agent brain, many channels. Chat, voice, and phone in Symphia are the same reasoning core, the same knowledge, the same tools — only the transport differs. Here's the reasoning.
Two agents means two sources of drift
The moment you have two agents, you have two prompts, two tool configurations, two sets of guardrails, and two places to update every time your business changes. Your refund policy changes; now you have to remember to change it twice. One of them will lag. Over months, the chat agent and the voice agent quietly diverge until a customer gets one answer by text and the opposite answer by phone — and you find out from a complaint.
Unification isn't an aesthetic preference. It's the only way to guarantee the customer gets a consistent answer regardless of how they reached you.
What actually differs between channels
If chat and voice share a brain, what's left channel-specific? Less than you'd think, and it's all at the edges:
- Turn-taking and latency. Voice needs sub-second responses and graceful handling of interruptions. Chat can afford to stream a longer answer. This lives in the transport layer, not the reasoning. (More on that in voice AI latency.)
- Formatting. Voice can't read a bulleted list or a URL aloud, so the output is shaped for the ear. Same content, different rendering.
- Confirmation. On a call you re-confirm high-stakes actions verbally before committing, because there's no "undo" the caller can see.
Notice what isn't on that list: the knowledge, the policies, the tools, the guardrails. Those are the expensive things to maintain, and they're shared.
The architecture
Concretely, a conversation — text or audio — becomes a normalized stream of turns. The agent brain reasons over that stream, calls tools, and produces a response. The channel adapter handles the last mile: NDJSON deltas to a chat widget, or streamed audio with interruption handling to a phone call. The brain never knows or cares which one it's talking to.
This is also what makes voice cheap to add rather than expensive to build. When you've already invested in a good agent — its knowledge, its tools, its evals — putting it on a phone line is a transport problem, not a second product.
The payoff
The real win shows up in the operating model. When you improve the agent — better retrieval, a new tool, a tightened guardrail — every channel inherits it at once. One eval suite covers both. One audit trail explains both. One change ships to both.
Two agents give you twice the surface area to maintain and half the confidence that they agree. One brain, many channels, is more work to design and far less work to run — and running it is where the years are spent. See it on both surfaces from the platform and voice pages.