Designing an agent conversation people can actually use
The seven decisions that make or break a conversational feature: discoverability, endpointing, barge-in, errors, confirmation, latency and the visual answer.
About this article
A usable agent conversation comes down to seven decisions: how the user learns what to ask, how you know they finished speaking, whether they can interrupt, what happens on the third failure, which actions need explicit confirmation, what you show between one and three seconds, and what the answer draws on screen.
Conversation design has a long literature and most of it predates models that can hold a thread. What survived the transition is the part about people: how someone works out what a system can do, what they do when it fails them, and how long they will wait before deciding it is broken.
This is the hub for everything we have written about voice and language. It covers the seven decisions that determine whether a conversational feature gets used twice, and links out to the pieces that go deeper on each.
1. Discoverability, which is the one most teams lose on#
A microphone button is a blank prompt. The user has to invent a request, guess your vocabulary, and interpret any failure as their own mistake. Most agents get exactly one attempt from a given user, and this is where that attempt is spent.
“Ask me anything” is the worst possible affordance because it promises everything and teaches nothing. Nielsen Norman Group’s writing on vague link labels makes the general case against this kind of copy, and it is worth noting honestly that the article argues from UX principle rather than from a controlled study.
The fix is three concrete examples in your app’s own vocabulary, refreshed from what this user actually does. And then the cheapest win in the whole design: follow-up suggestions after a successful turn, when the agent knows what the user was trying to do.

2. Knowing when the user has finished#
Endpointing is invisible when it works and is the loudest failure in the product when it does not. Cut someone off mid-sentence and they stop trusting the feature immediately.
The naive approach waits for a fixed quiet period, and it cannot be tuned to satisfy everyone. A user reading a figure off a card pauses mid-utterance; a user saying one word does not.
The better approach scores the words. OpenAI’s realtime documentation describes semantic voice activity detection as a system that “uses a semantic classifier to detect when the user has finished speaking, based on the words they have uttered”, giving a trailing “ummm” a longer timeout than a finished sentence, with eagerness configurable from low to high.
Google’s voice agent guidance adds a case worth handling explicitly: increase the no-speech timeout when the user has something to read before responding. A confirm card is exactly that moment.
3. Barge-in, which is a state machine problem#
Letting users interrupt sounds like an audio feature. It is a concurrency problem, and it is where half-finished implementations show.
Start from the states. Our own phase machine has five: idle, listening, transcribing, thinking and speaking. Transcribing is its own state rather than part of thinking, because the clip has been sent and speech-to-text is in flight, and that is a beat the user can feel. Collapsing it into thinking is how a turn ends up with one undifferentiated spinner covering two very different waits.
When new speech arrives, three things happen in order and none of them waits for the network: the pending speak task is cancelled, the audio player is stopped, and the phase is set to listening before any transcription comes back. If the phase flips only when the new transcript arrives, the user gets a second of the old answer still talking over them, which reads as the agent ignoring them.

The subtle failure is the abandoned turn speaking later. A response already in flight when the user interrupted will eventually resolve, and it must not play into the middle of the new question. The way that is enforced is a guard on the playback side: before speaking anything, check the phase, and discard the audio if the machine has moved on. Claim the state first, then suppress the stragglers.
What barge-in costs covers the implementation in detail.
4. The third failure#
Errors are where conversational features lose users permanently, because a user who fails twice concludes that they did it wrong.
Google’s conversation design guidance separates two cases that need different handling. No input means the system “hasn’t heard the user’s response, or the user hasn’t responded by the time the microphone closes”. No match means it “can’t understand or interpret the user’s response in context”. Telling someone “I didn’t catch that” when the real problem is that you did catch it and could not act on it sends them to the wrong repair.
Two rules from the same guidance are worth pinning above a designer’s desk: “Don’t dwell on or over-explain the error”, and give the user room for self-repair, “allowing the user to repair their turn in the way they think is best”. Google’s Dialogflow documentation recommends a maximum of three no-match or no-input events per page, escalating to a human at the third.
5. Confirmation, tiered so it still means something#
Confirming everything is the same as confirming nothing. If a user taps through four cards a day, the fifth one, which moves money, gets tapped the same way.
Google’s guidance recommends the explicit form as “You mean x?”, repeating only the part that needs checking rather than reciting the whole request. For anything irreversible at value, the card gets a device biometric bound to that single operation, which is the argument made in full for banking.
One rule we enforce in our own stack: the agent never names the authentication method in what it says out loud. The card can show it. Announcing “now confirm with Face ID” tells a room what is about to happen.
6. Latency, and the number we actually measure#
Human conversation is fast. Stivers and colleagues measured turn-taking across ten languages on five continents and found a modal gap of 0 milliseconds between turns, medians ranging from 0 to 300, and a cross-linguistic median around 100. Nothing in this industry is close to that for a turn that calls a real API, and claims to the contrary should be read carefully.
Jakob Nielsen’s three response-time limits are the practical targets: 0.1 seconds reads as instantaneous, 1 second keeps the flow of thought, 10 seconds is the edge of held attention. Our own warm turn measures about 2.5 to 3 seconds end to end, and a cold one can be much worse, dominated by the tenant’s backend rather than by the agent loop. We used to claim sub-one-second latency on this site. It was not true and it has been retired.
Between one and three seconds, perceived responsiveness is a design problem rather than an engineering one. This is where the five states earn their keep: transcribing and thinking are different waits with different causes, and showing which one the turn is in costs nothing and reads as progress. A visible state change the instant speech ends, then the spoken answer streaming as it arrives, reads as responsive. Three seconds of one undifferentiated spinner does not. The latency playbook covers where the time goes and what can be done about it.
7. What the screen carries#
An answer containing six facts is an answer the user has to memorise. Whitenton’s NN/g analysis of voice interaction makes the structural point: voice-only interfaces force recall where a screen offers recognition.
So the answer splits in two. The spoken sentence stands alone, because someone will hear it with the phone in a pocket. The screen carries what a listener would otherwise have to ask a follow-up question to get, drawn from a fixed catalogue of components the team has already designed and audited.

The fixed catalogue is doing more work than it appears to. It is what lets you reason about the accessibility of an answer nobody has seen yet, and it is the answer to the reasonable objection that a generated interface cannot be learned or documented.
Language, which is where the craft gets hard#
Everything above assumes the agent understood the sentence. That assumption gets expensive outside English, and it is the part of this discipline with the least written about it.
We run a production assistant that takes turns in English and in Arabic, including dialects, which is the case we can describe from experience rather than from a vendor page. That material has its own hub, covering the long-tail cases, the code-switching problem and the speech-synthesis side.
What belongs here is the part that changes the conversation rather than the model. A user who switches language mid-sentence is making a turn-taking problem, not only a recognition one, because the endpointer and the reply have to agree on which language the turn is in. And an answer synthesised in the wrong register sounds wrong in a way no transcription metric will show you.

Right-to-left layout is the part teams discover late. Mirroring is not a styling pass: numerals, embedded Latin text, icons with direction and swipe affordances all need decisions, and a widget catalogue is where you make them once.
Who this is for, and who it is not#
One piece belongs here as a counterweight. Which situations suit speaking and which suit typing is the narrower question, and a different one from whether you need an agent at all.
On the inclusion side, an agent as an alternative input path covers the curb-cut argument and the WCAG criteria a conversational path touches, and why this matters more for older users covers the cognitive load of navigation along with the adoption data that complicates the easy version of that argument. The WCAG mechanics in depth go further than either.
The short version#
Teach three real tasks instead of promising everything. Score the words rather than the silence when deciding a turn has ended. Let people interrupt, and make sure the abandoned turn stays quiet. Stop at the third failure. Confirm explicitly only where it is hard to undo, and add a biometric only where money moves. Show a state change inside 100 milliseconds even though the answer takes seconds. Make the spoken sentence stand alone, and let the screen carry the rest.
The voice settings reference covers how each of these is configured in the SDK.
Sources#
- Stivers, T., et al. Universals and cultural variation in turn-taking in conversation, PNAS 106(26), 2009. Ten languages, five continents. Accessed 12 September 2026.
- Nielsen, J. Response Times: The 3 Important Limits, Nielsen Norman Group, 1 January 1993. Accessed 12 September 2026.
- OpenAI. Realtime voice activity detection. Accessed 12 September 2026.
- Google. Conversation Design: Errors. Accessed 12 September 2026.
- Google Cloud. Voice agent design best practices, Dialogflow CX. Accessed 12 September 2026.
- Whitenton, K. Voice Interaction UX, Nielsen Norman Group, 31 January 2016. Accessed 12 September 2026.
- Sherwin, K. “Learn More” Links: You Can Do Better, Nielsen Norman Group, 13 December 2015. Argues from UX principle rather than from a controlled study. Accessed 12 September 2026.
Next
How a spoken turn is put together, and which parts of it are somebody else's server rather than your code.
Read the voice docsThe rest of Voice
Open the clusterLatency budgets, barge-in, turn-taking and the parts of a voice pipeline that are somebody else's server rather than your code.
- Conversational interfaces and older users: the real tensionWhy asking for a task costs older users less than navigating to it, and why the same people are least likely to have tried an AI product.8 min
- Voice is an alternative input path, not a speed featureThe case for a spoken path into your app, argued from the curb-cut effect, WCAG 2.2 and what screen reader users actually report.7 min
- How fast does a voice agent have to be? A latency playbookWhere a spoken turn's milliseconds go, what the turn-taking research actually measured, and which tactics shorten which segment of the budget.9 min
- What barge-in really costs, and how we pay for itServer-side turn detection decides when an agent should stop talking. The client decides whether it actually does, and that is where it breaks.11 min
- An in-app agent is an accessibility feature, narrowlyAn agent that completes a task is an alternative input path, and one WCAG 2.2 criterion turns the biometric confirm into an accessibility win rather than a tax.10 min
Elsewhere on the map
- How to evaluate dialect coverage in a speech stackA vendor language list is a claim about a corpus, not about your users. The method for measuring what a speech model does on the varieties they actually speak.Language9 min
- The first 300 milliseconds of an agent turnYou cannot make the model faster from the client. Almost all of the felt wait is decided before the model has said anything, and that part is yours.Render spec10 min
- Running ten dialects of one language through one pipelineMost speech stacks assume one user speaks one language. Production breaks that in week one, and the fixes are the same whichever language you start from.Language10 min
