← All posts

Engineering

Designing voice agents that survive interruptions

Real callers talk over your agent, change their mind mid-sentence, and trail off. Here's how we handle barge-in without losing the thread of the conversation.

Bilal Sarwar7 min read

A scripted demo call is a straight line. A real one is not. People interrupt, repeat themselves, answer a question you haven't asked yet, and go quiet at exactly the wrong moment. An agent that only handles clean turn-taking falls apart on the first genuinely messy call.

We treat interruption as the default case rather than an error state. That reframing changes how the whole turn loop is built.

Detect intent to interrupt, not just sound

Naive barge-in triggers on any incoming audio, which means a cough or a door closing stops the agent mid-sentence. We gate on speech-likeness and a short duration threshold before yielding the turn, so background noise doesn't derail a sentence the caller wanted to hear.

When the agent does yield, it keeps what it was about to say. If the caller's interjection turns out to be a filler word, the agent resumes instead of starting over.

Keep state outside the sentence

The facts an agent has collected — the policy number, the address, the appointment slot — live in structured state, not in the transcript it happens to be reading. An interruption discards the phrasing, never the progress.

This is what lets a caller say "actually, make it Thursday" four turns later and have the agent update one field instead of re-running the whole booking flow.

Ready to create your first agent?