Okay, this is genuinely exciting — let me show you one of the most counterintuitive things I've learned building voice agents. You can give an agent the smartest model on the planet, a perfect prompt, all the right tools... and it can still feel dumb. Not because the answer is wrong. Because it arrived four seconds too late. In a voice conversation, slow doesn't read as 'thoughtful.' Slow reads as 'broken.'
Here's the thing nobody tells you when you move from chat to voice. In a chat box, a two-second pause is invisible — the user is reading, scrolling, sipping coffee. In a live call, two seconds of silence is an eternity. People start to wonder if the line dropped. They say 'hello? are you there?' They talk over the agent. The whole illusion of talking to something intelligent shatters, and it shatters fast.
Why does this happen? Because of how humans take turns. When two people talk, the gap between one person finishing and the other starting is tiny — usually around 200 to 500 milliseconds. That rhythm is baked into us. We feel it. So when your agent takes a beat-and-a-half to respond, some ancient part of the listener's brain flags it: something is off here. And the cruel twist is that the silence colors everything that comes after. Even a great answer, delivered late, gets remembered as clunky.
Now here's the trap, and it's the reason I wanted to write this. When we want an agent to give smarter, cleverer replies, what do we reach for? A bigger model. More reasoning tokens. A longer, richer prompt. Maybe a tool call or two to look something up. Every single one of those makes the reply better — and slower. So the harder you push for 'smart,' the more you push toward 'feels dumb on a call.' That's the tension. The slower the response, the dumber it feels, even when the words are brilliant.
So let me reframe the whole problem, because this reframe is what changed how I build. In voice, latency isn't separate from intelligence — it's part of it. Perceived intelligence is quality times responsiveness. A spectacular answer at four seconds and a good-enough answer at 700 milliseconds? On a live call, the fast one wins almost every time. Your job isn't to maximize cleverness. It's to find the balance where the agent feels both quick and sharp. The good news: you don't have to pick. There are real tricks for getting both, and the best part is you can build them today.
First, know your budget. A natural-feeling reply wants to start in well under a second. But a voice pipeline has three stages stacked up: speech-to-text to hear the user, the language model to think, and text-to-speech to talk back. Each one eats milliseconds. If you wait for the user to fully finish, then wait for the whole transcript, then wait for the entire LLM answer, then wait for all the audio to render — you've stacked four waits end to end, and you're at three seconds before a single word comes out. The fix is to stop waiting for 'done' at every step.
Trick one, and it's the big one: stream everything. Do not wait for the full answer before you start talking. The metric that actually matters is not total response time — it's time-to-first-audio. The moment the model produces its first sentence, send it to text-to-speech and start playing it while the rest of the answer is still being generated. The user hears the agent begin almost immediately, and the long tail of the reply renders in the background while they're already listening. Same model, same answer, but it feels twice as fast because the silence is gone. Small thing, enormous difference.
Trick two: right-size the model for the turn. Not every reply needs your biggest brain. 'What are your hours?' does not need the same horsepower as 'compare these two mortgage options for me.' So route. Use a small, fast model for the quick, simple, high-frequency turns, and only escalate to the heavyweight model when the question actually earns it. This is model routing — a cheap classifier or even a simple heuristic decides which brain answers. Most conversations are mostly easy turns, so most of the time your agent feels instant, and it only 'thinks hard' when thinking hard is worth the wait.
Trick three: buy time the way humans do — with backchannel. When you ask a person something tricky, they don't go silent for three seconds. They say 'good question, let me check that for you' and start moving. Your agent can do the same. The instant the user finishes, fire a short, natural acknowledgment — 'sure, one sec' — while the real answer and any tool calls run underneath. That filler costs you almost nothing, it keeps the conversation alive, and it turns dead silence into something that feels attentive. Just keep it varied so it doesn't become a robotic tic.
Trick four: get the slow work off the critical path. A lot of latency hides in places you can attack ahead of time. Warm your connections so the first model call isn't paying a cold-start tax. Pre-fetch the data you'll almost certainly need before the user even asks. Run your tool calls in parallel instead of one after another. Tighten your endpointing — the bit that decides the user has stopped speaking — so you're not sitting through a second of trailing silence before you even begin. And trim the prompt: fewer tokens going in means a faster first token coming out. None of these touch the model's intelligence. They just stop you from wasting time around it.
Now let me flag the honest gotcha, cheerfully, because the balance cuts both ways. It is absolutely possible to over-optimize for speed and end up with an agent that's lightning fast and genuinely dumb — one that blurts a quick wrong answer instead of taking the half-second it needed to be right. That's not the goal either. The goal is the balance point, and the only way to find it is to measure both sides. Track your latency, time-to-first-audio especially, at the median and the p95. And track answer quality with real conversations. When you can see both numbers, you can tune deliberately instead of guessing — speed up the easy turns, and spend your latency budget only where a smarter answer actually pays off.
Here's what I love about all of this: every one of these tricks is something you can wire up this week. So go do one. Open up your voice agent and measure its time-to-first-audio right now — just that one number. I'd bet most of the lag is in waiting for 'done' somewhere you didn't need to. Turn on streaming so it starts talking on the first sentence, add one little acknowledgment phrase, and listen to it again. It'll feel like a different agent. Faster, warmer, sharper. That's the balance, and once you hear it click into place, you won't build them any other way. Let's wire it up.
