Note
livekit-agents 1.5 introduced many new features. You can check out the changelog here.
What's Changed
- Update Phonic
generate_replytimeout to 10 seconds by @qionghuang6 in #5205 - fix: pass prometheus_multiproc_dir in from_server_options initialization by @ivanbalingit in #5195
- feat(mistralai): upgrade to SDK v2 by @Pauldevillers in #5163
- (deepgram sttv2): validate eager_eot_threshold value by @tinalenguyen in #5216
- Add WebSocket streaming support to Baseten TTS plugin by @iancarrasco-b10 in #4741
- fix: allow codec format specification via the user for Sarvam TTS by @pUrGe12 in #5209
- emit agent handoff from conversation_item_added by @tinalenguyen in #5218
- fix(llm): surface validation error details to LLM on function call argument failures by @Lyt060814 in #5193
- fix(cli): update log level width in console mode by @chenghao-mou in #5224
- fix(utils): preserve type annotations in deprecate_params by @longcw in #5200
- fix(test): replace oai with deepgram and fix broken tests by @chenghao-mou in #5225
- feat(voice): reuse STT connection across agent handoffs by @longcw in #5093
- feat(google): add VertexRAGRetrieval provider tool by @youpesh in #5222
- fix: ensure MCP client enter/exit run in the same task by @longcw in #5223
- feat(assemblyai): add domain parameter for Medical Mode by @m-ods in #5208
- fix: Nova Sonic interactive context bugs and dynamic tool support by @prettyprettyprettygood in #5220
- (google realtime): add gemini-3.1-flash-live-preview model by @tinalenguyen in #5233
- fix(utils): improve type annotation for deprecate_params decorator by @longcw in #5244
- fix: expose endpointing_opts in AgentSession.update_options() by @longcw in #5243
- Fix/stt fallback adapter propagate aligned transcript by @miladmnasr in #5237
- feat(mistral): add voxtral TTS support by @jeanprbt in #5245
- feat(anthropic): support strict tool use schema by @roshan-shaik-ml in #5259
- Baseten Plugin Update: fix metadata schema, add chain_id support, and improve response parsing by @jiegong-fde in #4889
- feat(upliftai): add support for phrase replacement config id by @zaidqureshi2 in #5261
- feat(soniox): expose max_endpoint_delay_ms option by @pstrav in #5214
- fix: prevent TTS retry after partial audio and replay input on retry by @longcw in #5242
- fix: only start session host when it's primary session by @longcw in #5241
- fix: prevent CancelledError from propagating to unrelated Tee peers by @longcw in #5273
- fix: prevent AttributeError in ThreadJobExecutor.logging_extra() by @longcw in #5277
- fix(openai): close current generation channels on realtime reconnect by @longcw in #5276
- fix(recorder): guard against empty agent speech frames by @chenghao-mou in #5279
- fix(stt): reset VAD when STT sends EOT by @chenghao-mou in #5095
- feat(anam): add avatarModel config support by @sr-anam in #5272
- fix: catch TimeoutError from drain() so aclose() always runs by @seglo in #5282
- (gemini-3.1-flash-live-preview): add warning for generate_reply by @tinalenguyen in #5286
- feat(mistralai): add ref_audio support to Voxtral TTS for zero-shot voice cloning by @EtienneLescot in #5278
- fix(core): reset user state to listening when audio is disabled by @chenghao-mou in #5198
- append generate_reply instructions as system msg and convert it to user msg if unsupported by @longcw in #5287
- add AsyncToolset by @longcw in #5127
- fix(core): fix BackgroundAudioPlayer.play() hanging indefinitely by @theomonnom in #5299
- fix(cli): prevent api_key/api_secret from leaking in tracebacks by @theomonnom in #5300
- (phonic) Update languages fields by @qionghuang6 in #5285
- fix(core): reduce TTS output buffering latency by @theomonnom in #5292
- add session_end_timeout and gracefully cancel entrypoint on shutdown by @theomonnom in #4580
- feat: OTEL metrics for latencies, usage, and connection timing by @theomonnom in #4891
- evals: custom judges, tag metadata, and OTEL improvements by @theomonnom in #5306
- fix is_context_type for generic RunContext types by @theomonnom in #5307
- add 7-day uv cooldown by @chenghao-mou in #5290
- fix(openai realtime): support per-response tool_choice in realtime sessions by @longcw in #5211
- use delta aggregation temporality for otel metrics by @paulwe in #5314
- (phonic) Add
min_words_to_interruptto Phonic plugin options by @qionghuang6 in #5304 - add tag field to evaluation OTEL log records by @theomonnom in #5315
- docs: add example agent replies to AsyncToolset by @longcw in #5313
- fix(cartesia): handle flush_done message in TTS _recv_task by @Panmax in #5321
- fix(voice): make function call history preservation configurable in AgentTask by @GopalGB in #5288
- fix: convert oneOf to anyOf in strict schema for discriminated unions by @longcw in #5324
- (gemini realtime): add warnings in update_chat_ctx and update_instructions by @tinalenguyen in #5332
- fix: wait_for_participant waits until participant is fully active by @davidzhao in #5271
- feat: answering machine detection by @chenghao-mou in #4906
- feat: expose service_tier in CompletionUsage from OpenAI Responses API by @piyush-gambhir in #5341
- fix: add PARTICIPANT_KIND_CONNECTOR to default participant kinds by @anunaym14 in #5339
- feat/sarvam-llm-openai-compatible-integration by @dhruvladia-sarvam in #5069
- feat(azure-stt): Possibility to change segmentation options during a call by @rafallezanko in #5323
- fix(sarvam): sync missing API params, fix value ranges, and update models by @Namit1867 in #5347
- (xai tts): update fields and ws setup by @tinalenguyen in #5350
- fix(smallestai): add lightning-v3.1 endpoint routing by @sg-siddhant in #5330
- feat(inference): add debug/identification headers to inference requests by @adrian-cowham in #5337
- Move community plugins to livekit-plugins/community/ by @theomonnom in #5250
- feat: support per-response tools in generate_reply by @longcw in #5310
- fix xAI realtime update chat ctx by @longcw in #5320
- Fix RoomIO teardown listener cleanup by @sindarknave in #5357
- feat(mistral): support voxtral realtime streaming stt & modernize mistral plugin by @jeanprbt in #5289
- fix: say() with missing audio file hangs forever and blocks speech queue by @theomonnom in #5358
- add prompt_cache_retention chat completion option to inference by @s-hamdananwar in #5370
- Add Murf as optional dep by @royalfig in #5334
- feat(core): Support multiple provider keys in extra_content serialization by @adrian-cowham in #5374
- ci: add PyPI publish workflow with trusted publishing by @theomonnom in #5379
- feat: Add D-ID avatar plugin by @osimhi213 in #5232
- ci: fix tag checkout and discover glob by @theomonnom in #5381
- feat(rime): add mistv3 model support by @mcullan in #5298
- ci: fix update_versions.py invocation by @theomonnom in #5382
- ci: remove release label from publish workflow by @theomonnom in #5384
- require livekit-protocol>=1.1.5, implement get_framework_info by @theomonnom in #5385
- ci: fix build permissions and tag format by @theomonnom in #5386
- ci: fix version read in publish workflow by @theomonnom in #5388
- ci: use livekit-agents@version for release PR title by @theomonnom in #5390
- fix: minimax optional dep not bumped by update_versions.py by @theomonnom in #5392
- livekit-agents@1.5.2 by @github-actions[bot] in #5391
New Contributors
- @ivanbalingit made their first contribution in #5195
- @Pauldevillers made their first contribution in #5163
- @iancarrasco-b10 made their first contribution in #4741
- @pUrGe12 made their first contribution in #5209
- @Lyt060814 made their first contribution in #5193
- @youpesh made their first contribution in #5222
- @m-ods made their first contribution in #5208
- @prettyprettyprettygood made their first contribution in #5220
- @miladmnasr made their first contribution in #5237
- @jeanprbt made their first contribution in #5245
- @roshan-shaik-ml made their first contribution in #5259
- @jiegong-fde made their first contribution in #4889
- @pstrav made their first contribution in #5214
- @sr-anam made their first contribution in #5272
- @seglo made their first contribution in #5282
- @EtienneLescot made their first contribution in #5278
- @GopalGB made their first contribution in #5288
- @piyush-gambhir made their first contribution in #5341
- @anunaym14 made their first contribution in #5339
- @Namit1867 made their first contribution in #5347
- @sg-siddhant made their first contribution in #5330
- @sindarknave made their first contribution in #5357
- @royalfig made their first contribution in #5334
- @osimhi213 made their first contribution in #5232
- @mcullan made their first contribution in #5298
Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.5.1...livekit-agents@1.5.2