config.turn_handling is how the agent behaves around the edges of a turn: whether the caller can cut it off, what it does when they seem to have but had not, and whether it starts drafting a reply before it is certain they are done. Voice and video only. Switching an agent to text resets the whole block, and nothing in it reaches a text conversation.
What actually ends the caller’s turn is not configured here. Which end-of-turn detector runs follows from the speech-to-text model and config.language, and there is no knob for it. The two silence numbers below mean different things depending on which one you got. Read speech and turn detection before tuning them.

Interruption

boolean
default:"true"
Whether the caller can cut the agent off mid-sentence. Off, the agent finishes every line it starts.
number
default:"0.5"
Seconds of speech before it registers as an interruption. Minimum 0. Raise it on a noisy line, where a cough should not stop the agent.
integer
default:"0"
Words the caller must say before it counts as an interruption. Minimum 0, and 0 means the word count is not consulted. Needs interim transcripts, so it applies to the speech-to-text pipeline only.
boolean
default:"true"
After an interruption that turned out not to be one, pick the sentence back up where it stopped.
number | null
default:"2.0"
Seconds of silence after an interruption before it is classified as false. Minimum 0. null switches false-interruption classification off entirely, which also means nothing is ever resumed.
boolean
default:"true"
Drop buffered caller audio while the agent is speaking and cannot be interrupted. Off, that audio is kept and reaches the agent once it finishes speaking.
min_words on a batch speech-to-text model is a warning at save, not an error:
A video agent always runs with resume_false_interruption off. An avatar cannot resume a sentence it has already stopped rendering — the lips would desync from the audio — so the runtime pins it off whatever the config says, and the dashboard hides the control on a video agent rather than showing one that lies. Everything else in this block behaves on video exactly as it does on voice.

Preemptive generation

The agent starts drafting a reply before it is certain the caller has finished, so the pause before it speaks is shorter. If the turn does not end where it guessed, the draft is thrown away — and you paid for it.
boolean
default:"false"
Off by default on Talqing, deliberately: it buys latency and costs discarded generations, and that trade should be one you make on purpose.
boolean
default:"false"
Also run text-to-speech ahead of the confirmed turn. With this off, only the language model runs early. It cuts more of the pause and discards more when the guess is wrong.
number
default:"10.0"
Longest stretch of caller speech, in seconds, that preemptive generation is attempted for. Minimum 0.
integer
default:"3"
Attempts per user turn. The counter resets when the turn completes. Minimum 0.
Two configurations force it off, both cleared on the agent when you save:
  • A realtime (speech-to-speech) agent. The model detects turns itself, inside the provider’s socket, and has already answered by the point where a speculative reply would have been useful. enabled and preemptive_tts are both pinned off.
  • An agent watching a screen share. The newest frame is injected into the context on every turn, so the context the speculative reply was generated against never matches the one the turn runs on — every preemptive reply would be generated, billed and thrown away. See vision and images.

Endpointing

turn_handling.endpointing holds the two silence numbers — min_silence_duration (0.5, minimum 0.25) and max_silence_duration (2.5, and it must be at least the minimum). They are in the reference table below, but what each one means depends on which speech-to-text model is running, and that is on speech and turn detection. Read it before you change either. The short version: min_silence_duration always does something, though on several models it is a window handed to the provider rather than a wait Talqing performs, and on a realtime agent it becomes the provider’s own silence window. max_silence_duration does something on exactly one pipeline — a batch model with config.language set to one the end-of-turn model knows — and is ignored everywhere else.

Symptom to setting

Reference

Next

Speech and turn detection

What actually ends a caller’s turn, and the fourteen languages.

Audio processing

Noise cancellation and background audio.

Debugging agents

The playbook when a call sounds wrong.