Interruption control
Decide whether and when users can interrupt the bot while it's speaking.
Interruption governs what happens when a user starts talking while the bot is speaking. The default is to let them interrupt freely. You can require a minimum number of words to trigger an interrupt, or disable interruption entirely for a specific node (legal disclaimers, verification prompts).
Prerequisites
- A template with at least one node — see Flow nodes.
- Familiarity with the voice pipeline and VAD basics.
- Know the difference between turn-start and turn-stop — see Turn detection.
Config fields
| Field | Type | Allowed values | Default | Behaviour |
|---|---|---|---|---|
mode | enum | "enabled", "disabled_discard" | "enabled" | enabled lets the user interrupt. disabled_discard silently drops user speech while the bot is speaking — frames never reach the LLM. |
min_words | int | null | 1+ | null | When set with mode: enabled, the user must speak at least this many words for an interrupt to fire. When the bot is idle, 1 word is still enough so the agent stays responsive. |
Both fields live under configurations.interruption on the template, and can be overridden per node.
Template-level config
{
"configurations": {
"interruption": {
"mode": "enabled",
"min_words": 3
}
}
}This sets a sane default: short confirmations like “yeah” or “okay” don’t cut the bot off mid-sentence, but a full sentence does.
Per-node override
Use disabled_discard on nodes where the bot must finish speaking uninterrupted — legal disclaimers, Miranda-style warnings, regulated disclosures.
{
"node_name": "legal_disclaimer",
"interruption": {
"mode": "disabled_discard"
},
"task_messages": [
{ "role": "system", "content": "Read the full compliance disclaimer without stopping." }
]
}On node transition, template defaults reset first, then the node override applies. There is no stale state from the previous node’s override.
Edge cases
- Barge-in while TTS — When
mode: enabledandmin_wordsis not met, user speech is detected but the turn continues. Oncemin_wordsis met, the interruption fires immediately — the bot’s TTS is cancelled mid-utterance. - Silent suppression in
disabled_discard— User frames are dropped by the user-mute strategy inside the LLM aggregator. The LLM never sees them; no context pollution. - Responsiveness fallback —
min_wordsapplies only during bot speech. When the bot is idle, one word is enough to start a turn so the agent doesn’t feel sluggish. - Word counting — Words are counted via a naive whitespace split on the transcription. “uh-huh yes please” counts as 3 words.
When to raise min_words
On phone calls with background chatter, set min_words: 3 or higher. On browser calls where mic isolation is better, min_words: 2 is usually plenty.