Two Paths in Vision Agents
Turn detection works differently depending on your setup:1. Provider-built-in (STT output stream)
Many STT plugins emitTurnStarted and TurnEnded signals on their output stream. Turn detection happens inside the provider API — no separate plugin needed.
2. External plugin
When your STT plugin has no built-in turn detection, add aTurnDetector plugin:
Turn Detection vs VAD
STT Plugins with Built-in Turn Detection
STT plugins without turn detection (Fast-Whisper, Wizper, Fish, Mistral, AWS) need an external plugin or fall back to using the final transcript as the end-of-turn signal.
External Turn Detection Plugins
When an STT plugin provides built-in turn detection (
stt.turn_detection is True), the Agent automatically ignores any external TurnDetector plugin to prevent conflicts.SDK Behavior
TurnStarted— triggers barge-in interrupt in the transcribing flowTurnEnded(eager=True)— starts speculative LLM work for lower latencyTurnEnded(eager=False)— confirms the turn is complete- Pipeline signals (
TurnStarted/TurnEndedon the STT output stream) are distinct from agent events (UserTurnStartedEvent,UserTurnEndedEvent)
Next Steps
Interruption Handling
Setup, tuning, and troubleshooting
Voice Agents
Wire turn detection into a pipeline
Smart Turn
Configure the Smart Turn plugin
Vogent
Alternative turn detection option