AI Voice Agents: Progress, Interruptions and Cancellation

A quick reply is not a finished task. Design voice agents that report real progress, handle interruptions, confirm cancellation and verify results.

AIZIGOO
AI Voice Agents: Progress, Interruptions and Cancellation

“Tell me this month’s sales.” The AI says it will check, then goes quiet. A few seconds later, the user asks again: “Are you still there?” The same query may now run twice, and the earlier result might start playing over the newer question.

A good voice agent needs more than a natural-sounding voice. It must listen when the user speaks, explain necessary waits, and call a task complete only when completion is verified. The same challenge appears in language practice, customer support, work briefings and voice-controlled creative tools.

This design guide draws on official technical documentation checked on October 23, 2026. It is not a measured product review or a case study of an application we deployed. The six images—the cover and five illustrations—are generated conceptual visuals, not screenshots of a working service or performance measurements.

1. The first reply and task completion run on different clocks

Google’s October 19 ADK guide explains how an agent can keep a conversation going while a slow tool runs. In its sales-report demonstration, Google reports reducing the time to the first spoken words from 14.4 seconds to 1.2 seconds. Those are vendor-reported results from a particular configuration—not evidence that the underlying query finished that much sooner. Backend processing time remains a separate measure.

Without that distinction, a system that quickly says “I’ll check that for you” can be mistaken for one that completes work quickly. Measure separate intervals from the end of the user’s utterance to acknowledgment, evidence of actual progress, and the verified final result. Do not collapse them into one response-time number.

The initial acknowledgment should say what the agent understood and what it intends to do. It must not claim that a query is already running when it has not started, or announce success merely because a calculation is in progress. A single statement of verified status is more useful than small talk that conceals a loading delay.

Conceptual illustration separating a brief spoken response in the foreground from a longer task continuing in the background

2. Separate the conversation path from the work path

ADK’s live-tool documentation distinguishes ordinary tools, background execution and streaming tools that provide intermediate results. If tool execution blocks the conversation, a prompt telling the agent to “keep talking helpfully” cannot fix the architecture. The application needs an actual event and execution design.

A useful mental model is to give one path responsibility for receiving the user’s questions and another for queries, transformations or generation. These paths do not necessarily mean two products or two models. A single application can maintain conversation state and task state separately.

The table below is AIZIGOO’s proposed minimum state ledger. It is an operating agreement for developers and product teams, not an API schema ready to implement.

StateWhat to tell the userEvidence to retain
AcceptedUnderstood request and scopeTask ID and request version
RunningCurrent verified stageExecution events and stage timestamps
CheckingResult received; validation pendingOriginal result and check records
CompleteVerified result and remaining limitationsResult ID, sources and completion time
Canceled or unresolvedWhether work stopped, or why status is unknownCancellation response and current server state

If the user changes a condition, increment the request version. Do not present the old result as an answer to the revised request. When a question is repeated, first decide whether to check the existing task or create a new one. For actions that change external state, such as sending a message or making a reservation, linking the task ID to an idempotency key can help prevent duplicate execution.

Conceptual illustration of an ongoing voice conversation beside a separate path processing background work

3. Report progress only when something actually changes

Repeating “Still processing” every few seconds does not build trust. Useful updates are tied to real events: a file opened, a query returned, or a result awaiting validation. If progress cannot be quantified, do not invent a percentage. State the verified stage and when the next status check will happen.

When to speak a result is another design decision. ADK describes WHEN_IDLE for delivery during a natural speaking gap, INTERRUPT for an immediate response, and SILENT for updating context without announcing it. Check support against the model, SDK and session configuration. These are not interchangeable controls available in every voice application.

Type of resultSuggested deliveryWhat to avoid
Routine report or lookupAfter the user finishes speakingReading figures over the middle of a sentence
Failure that needs immediate attentionBriefly signal its importance, then explainContinuing the conversation while hiding the failure
Information needed only for a later answerUpdate state quietlyForcing an unrelated intermediate result into the conversation
Speaking or interview practiceLeave room for the user to thinkTreating every silence as a failure

These recommendations are AIZIGOO’s design proposals, not measured comparisons of product defaults. Natural interaction does not mean filling every gap. It means intervening when the intervention is useful.

Conceptual illustration of three choices for a newly arrived result: speak immediately, wait, or retain it quietly

4. “Wait” and “Cancel that task” are different requests

An interruption can mean two different things. “Wait, I have another question” may ask the agent to stop audio playback. “Cancel the report generation” asks it to stop background work. Handling the first does not prove that the second has happened.

Google’s October guide explicitly states that a user interruption does not automatically cancel a running tool. A separate cancellation path is needed, such as stop_streaming for an ADK streaming tool. Even that does not mean an action already submitted to an external server—or a message already sent—has been reversed. The application must check the resulting state.

OpenAI’s Realtime interruption and truncation documentation also addresses keeping the conversation history consistent with the part of a response the user actually heard. Responsibilities differ between WebRTC or SIP and WebSocket connections. Stopping the sound alone is not the whole process. If the agent assumes the user heard an explanation that never played, its next answer can lose context.

Keep audio playback state separate from work state. When scope is unclear, the agent can ask once: “I’ve stopped the explanation. Should I stop the lookup too?” If the cancellation response has not arrived, say “I’ve requested cancellation and am checking the status,” not “Canceled.”

Conceptual illustration treating a gesture that stops speech and a switch that stops background work as separate controls

5. A fluent voice is not a substitute for authorization

“Yes, go ahead” means different things depending on the preceding explanation. Consent to a lookup must not be expanded into permission to send an email or confirm a reservation. Before taking a consequential action, show the target, scope and important changes—such as the amount or recipient—and obtain confirmation for that specific action.

ADK’s guardrails documentation covers independent checks at the input, response and tool stages, alongside instructions. Because speech unfolds in real time, do not assume that checking a transcript afterward prevents every problematic utterance before it is spoken. Put a separate authorization and parameter-checking boundary before tool execution.

Begin a pilot with simulated orders, sample documents or read-only lookups. Tell users whether recordings or transcripts are retained and explain the retention policy. Keep only the minimum information necessary. Verify the requester and task scope so that a background voice on a call, or text embedded in an external document, is not mistaken for an instruction to act.

6. A 30-minute pilot: test state, not just the voice

The following is a small evaluation procedure proposed by AIZIGOO. We did not call a live voice API to execute these tests for this article, and this is not an official benchmark. Reading the same script in text alone will not reveal microphone, speech-detection or overlapping-speech failures. ADK’s voice evaluation documentation likewise emphasizes reviewing the actual audio path and the conversation as a whole.

Use the first five minutes to fix one read-only task and its expected outcome. Spend the next 15 minutes repeating the scenarios below on the same device and network. In the final ten minutes, compare consented conversation recordings with task logs and classify the failures. Where practical, try the same script separately in Korean, English and Japanese. Equivalent translations do not guarantee equivalent voice behavior.

Test scenarioEvidence of a passFirst place to investigate a failure
Deliberately slow lookupAcknowledgment and final result remain distinctTask-start and result events
User speaks over the agentAudio stops and the new question is acceptedSpeech detection and playback buffer
User requests task cancellationServer state confirms whether work stoppedCancellation path and follow-up requests
User changes a condition while waitingOld output is not mistaken for the new answerTask ID and request version
Retry after a disconnectionCurrent state checked without duplicate executionResult lookup and idempotency
Long silence while the user thinksNo unnecessary pressure to answerConversation mode and end-of-turn detection

Rather than recording a single average response time, track first-response and final-completion time distributions separately. Also count incorrectly interrupted utterances, duplicate executions and false completion announcements. Cost per successful conversation should include retries, external tools and human review, not just audio and model calls. With a small sample, use the evidence to fix one recurring failure rather than publish a model ranking.

Conceptual illustration of a reviewer wearing headphones and comparing the sound of a conversation with the actual state of its tasks

A good voice agent knows when to stay quiet

Natural conversation requires more than a quick opening line. The agent needs to distinguish listening from speaking, set aside an outdated answer when the task changes, and never claim a task was canceled until cancellation is confirmed. Instead of starting with an all-purpose assistant, design an agent that clearly accepts, progresses and verifies one read-only task.

Official sources checked

Sources were checked on October 23, 2026. The developer API and ADK concepts in this article should not be confused with settings in consumer applications. Before implementation, recheck the relevant service’s latest documentation for model support, SDK versions, account access, data handling and billing.