Renamed the reload-addr flag to cli-addr and deprecated the ElevenLabs STT model_id parameter in favor of model. Also includes runtime model swapping, tool result preservation on interruption, and dozens of fixes across OpenAI, Google, Deepgram, and other plugins.
Agents (Python)
Expressive mode for TTS is now available with expression markup tags to control pacing and tone. Conversation-aware STT recognition uses keyterms and chat context to improve accuracy. Also fixed multiple issues across OpenAI Realtime, voice pipeline concurrency, and STT/TTS integrations, plus added language steering for AssemblyAI and tool call status events in the voice agent.
Added Protoface avatar plugin. Fixed STT input anchor staying across pipeline handoff, cleaned up Google STT input frame task, and disabled retry for EOT errors.
Google realtime now rejects tool calls when tool_choice is set to "none", and EOT inference timeout behavior is restored. Exposes speed in STT update_options and adds Assembly AI inference parameters.
Added Gemini 3.1 Flash TTS support with streaming response and AssemblyAI streaming mode with latency/accuracy preset. Also adds Soniox STT v5 with endpoint sensitivity, FishAudio speed/volume prosody params, default reasoning_effort fix for OpenAI mini/nano models, and dozens of smaller fixes across providers.
Introduces the state-of-the-art Turn Detector v1.0, which uses audio and text semantics to determine the optimal moment for the agent to respond. Also fixes a voice deadlock when session closes while awaiting an AgentTask, a supervised process crash on cancelled start, and audio preservation across avatar hot-swaps, among other fixes.
Asynchronous tools can now hand control back to the LLM before completion, streaming updates as they progress. Filler phrases can be used to break long silences during tool execution. This release also includes numerous smaller fixes and enhancements across various plugins and features.
First-class async tools are now available via ctx.update(), and acoustic fillers can be added during long tool execution with ctx.with_filler(). Audio and text output now flushes per FlushSentinel, and single_peer_connection is exposed in JobContext.connect. Fixed unhandled exception logging in fire-and-forget tasks, high-memory IPC warnings, empty message handling in OpenAI realtime chat, and a participant KeyError on quick reconnect.
Fixed a recorder close hang and corrupt frame splits, and a RecorderIO closure issue when session close is interrupted. IPC proc acquisition now retries when all in-flight spawns fail. Model literals for LLM, STT, and TTS have been updated with new models and options, and deployment environment is now sent in worker registration.
Added Cartesia ink-2 speech-to-text and a Respeecher TTS plugin. Fixed AgentSession.aclose() hanging during job shutdown, SIP call no-speech timer defer, function tool ordering, AWS tool block flattening, and OpenAI Realtime OPENAI_BASE_URL env var fallback. Also improved Google Plugins with cached_content option for context caching and updated SmallestAI TTS for Lightning v3.1 Pro with WebSocket streaming.
Added integration for Google AI Platform LLMs and support for streaming input_audio_transcription delta events in OpenAI realtime. Fixed multiple voice pipeline race conditions including a transcript leak between flush and clear_buffer on interrupt, user turn tracking during agent handoff, and STT pipeline reuse restrictions. Also added GnaniAI STT plugin, fade_in/fade_out to AudioConfig, and VAD reset support without stream close.
Added UserTurnLimitOptions to interrupt long user speech and AvatarMetrics to track join and playback latency. New features include multi-message generation per realtime response, GPT Realtime Whisper support in OpenAI STT, Perplexity Agent API (Responses) LLM, and Gemini 3.5 Flash model support. The mcp_servers parameter on Agent and AgentSession is deprecated.
Fixed Deepgram TTS websocket errors not being surfaced and realtime voice generation not canceling when speech is interrupted. Also added Speechmatics STT support with VAD, support for python -m livekit.agents.download asset fetching, Rime Coda model support, and inference.LLM.update_options for live model swaps.
Fixed a FishAudio TTS generation hang, a Google STT memory leak when no audio input is present, and a scheduling deadlock when a pipeline task crashes. Also added Perplexity LLM plugin, Rime WebSocket streaming TTS support, fine-grained VAD parameters for Sarvam STT, media resolution option to Gemini LLM, and DTMF and ringing timeout exposure on WarmTransferTask.
What's Changed
- feat(interruption): barge-in cooldown window for corrections by @chenghao-mou in https://github.com/livekit/agents/pull/5269
- fix(amd): amd improvement (AGT-2777) by @chenghao-mou in https://github.com/livekit/agents/pull/5584
- fix(warm_transfer): don't…
What's Changed
- fix(openai): forward session.update on RealtimeModel.update_options by @longcw in https://github.com/livekit/agents/pull/5531
- fix(transcription): seed _start_wall_time fallback in aclose by @longcw in https://github.com/livekit/agents/pull/5532
- Fix…
What's Changed
- Add Qwen 3 TTS support for Simplismart-livekit plugin by @simplipratik in https://github.com/livekit/agents/pull/5474
- Add Inworld STT provider to livekit-plugins-inworld by @cshape in https://github.com/livekit/agents/pull/5451
- (minimax): add new TTS…
What's Changed
- feat(inference): STT diarization capabilities and speaker_id on TimedString, add xAI TTS support for inference by @russellmartin-livekit in https://github.com/livekit/agents/pull/5438
- [inworld] timed_string to no longer have trailing spaces by @ianbbqzy…
New features
Preemptive generation: added more granular options
Refines default behavior for preemptive generation to better handle long or intermittent user speech, reducing unnecessary downstream inference and associated cost increases.
Also introduces…
What's Changed
- feat(amd): add OTEL span and tag for AMD by @chenghao-mou in https://github.com/livekit/agents/pull/5376
- fix(openai): prepend session instructions in realtime generate_reply by @longcw in https://github.com/livekit/agents/pull/5394
- fix: AgentTask…
