---
name: Agents (Python)
slug: livekit-agents-python
type: github
source_url: https://github.com/livekit/agents
organization: LiveKit
organization_slug: livekit
total_releases: 102
latest_version: livekit-agents@1.5.4
latest_date: 2026-04-16
last_updated: 2026-04-19
tracking_since: 2025-03-19
canonical: https://releases.sh/livekit/livekit-agents-python
organization_url: https://releases.sh/livekit
---

<Summary type="rolling" window-days="90" release-count="10">
The project is consolidating its LLM and STT/TTS ecosystem around reliability and seamless provider switching. v1.5.0 shipped adaptive interruption handling—an ML model that distinguishes genuine user interruptions from false positives like backchannels with 86% precision and 100% recall, automatically resuming playback when misdetected. v1.5.1 and 1.5.2 extended provider support (Mistral SDK v2, translation for Gladia and Soniox, WebSocket streaming for Baseten TTS) while fixing Azure OpenAI realtime compatibility and tool schema validation for function calling. The 1.4.x series tackled infrastructure stability—v1.4.2 eliminated multiple memory leaks in process pools and IPC pipelines, improved STT/TTS fallback robustness, and introduced a new `RecordingOptions` API—alongside incremental provider fixes (Telnyx, SambaNova, Sarvam codec formats, Google denoiser) and tighter schema handling for nullable enums and tool parameters.
</Summary>

<Summary type="monthly" period="March 2026" release-count="5">
March shipped a major interruption-handling redesign centered on an ML model that distinguishes genuine user interruptions from incidental sounds like backchannels and coughs — hitting 86% precision with 100% recall and rejecting 51% of traditional VAD false positives. Alongside this, the month added translation support to Gladia and Soniox STT, introduced the Telnyx and SambaNova plugins, upgraded Cartesia TTS to Sonic 3, and fixed Azure OpenAI realtime support and Google realtime's deprecated mediaChunks handling.
</Summary>

<Release version="livekit-agents@1.5.4" date="April 16, 2026" published="2026-04-16T04:57:31.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.5.4">
## 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 `PreemptiveGenerationOptions` for developers who need fine-grained control over this behavior.

https://github.com/livekit/agents/blob/78a66bcf79c5cea82989401c408f1dff4b961a5b/livekit-agents/livekit/agents/voice/turn.py#L115
```python
class PreemptiveGenerationOptions(TypedDict, total=False):
    """Configuration for preemptive generation."""

    enabled: bool
    """Whether preemptive generation is enabled. Defaults to ``True``."""

    preemptive_tts: bool
    """Whether to also run TTS preemptively before the turn is confirmed.
    When ``False`` (default), only LLM runs preemptively; TTS starts once the
    turn is confirmed and the speech is scheduled."""

    max_speech_duration: float
    """Maximum user speech duration (s) for which preemptive generation
    is attempted. Beyond this threshold, preemptive generation is skipped
    since long utterances are more likely to change and users may expect
    slower responses. Defaults to ``10.0``."""

    max_retries: int
    """Maximum number of preemptive generation attempts per user turn.
    The counter resets when the turn completes. Defaults to ``3``."""
```

## What's Changed
* fix(voice): add PreemptiveGenerationOptions for fine-grained control by @longcw in https://github.com/livekit/agents/pull/5428


**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.5.3...livekit-agents@1.5.4
</Release>

<Release version="livekit-agents@1.5.3" date="April 16, 2026" published="2026-04-16T00:02:15.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.5.3">
## 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 deadlock when on_enter awaits generate_reply that triggers another AgentTask by @longcw in https://github.com/livekit/agents/pull/5377
* telemetry: emit OTel span events for developer-role messages by @joaquinhuigomez in https://github.com/livekit/agents/pull/5403
* feat(realtime): reuse realtime session across agent handoffs if supported by @longcw in https://github.com/livekit/agents/pull/5229
* fix(llm): handle double-encoded JSON tool arguments from providers by @prettyprettyprettygood in https://github.com/livekit/agents/pull/5409
* chore: exposed the max session duration in with_azure() function by @k-1208 in https://github.com/livekit/agents/pull/5383
* (gemini live 3.1): fix tool responses by @tinalenguyen in https://github.com/livekit/agents/pull/5413
* fix(google): capture usage_metadata before early continues in streaming by @Panmax in https://github.com/livekit/agents/pull/5404
* fix(voice): block new user turns immediately on update_agent() to prevent transition delay by @Panmax in https://github.com/livekit/agents/pull/5396
* fix(tests): update drive thru instructions by @chenghao-mou in https://github.com/livekit/agents/pull/5405
* feat(inference): handle preflight_transcript in inference STT plugin by @adrian-cowham in https://github.com/livekit/agents/pull/5412
* fix(aws): unwrap doubly-encoded JSON tool arguments from Nova Sonic by @rililinx in https://github.com/livekit/agents/pull/5411
* chore: pin GHA by commit by @davidzhao in https://github.com/livekit/agents/pull/5415
* chore(deps): update dependency langchain-core to v1.2.28 [security] by @renovate[bot] in https://github.com/livekit/agents/pull/5417
* chore(deps): update dependency aiohttp to v3.13.4 [security] by @renovate[bot] in https://github.com/livekit/agents/pull/5416
* chore(deps): update dependency nltk to v3.9.4 [security] by @renovate[bot] in https://github.com/livekit/agents/pull/5418
* (azure openai): ensure gpt-realtime-1.5 compatibility by @tinalenguyen in https://github.com/livekit/agents/pull/5407
* chore(deps): update github workflows (major) by @renovate[bot] in https://github.com/livekit/agents/pull/5424
* update: Sarvam STT - add verbose error loggin and remove retry connection by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/5373
* fix(inworld): do not leak connections when when cancelled by @davidzhao in https://github.com/livekit/agents/pull/5427
* feat: add service_tier parameter to Responses API LLM by @piyush-gambhir in https://github.com/livekit/agents/pull/5346
* Feature/krisp viva sdk support by @realgarik in https://github.com/livekit/agents/pull/4370
* fix: empty transcript blocks commit_user_turn until timeout by @longcw in https://github.com/livekit/agents/pull/5429
* fix: allow multiple AsyncToolsets by deduplicating management tools by @longcw in https://github.com/livekit/agents/pull/5369
* feat(beta/workflows): add InstructionParts for modular instruction customization by @longcw in https://github.com/livekit/agents/pull/5077
* add ToolSearchToolset and ToolProxyToolset for dynamic tool discovery by @longcw in https://github.com/livekit/agents/pull/5140
* Feature - Configurable session close transcript timeout by @bml1g12 in https://github.com/livekit/agents/pull/5328
* Fix FrameProcessor lifecycle for selector based noise cancellation by @Topherhindman in https://github.com/livekit/agents/pull/5433
* feat: add Runway Characters avatar plugin by @robinandeer in https://github.com/livekit/agents/pull/5355
* Rename e2ee to encryption in JobContext.connect by @longcw in https://github.com/livekit/agents/pull/5454
* chore: reduce renovate noise by @davidzhao in https://github.com/livekit/agents/pull/5421
* fix(liveavatar): wait for connected state and chunk audio before sending by @dyi1 in https://github.com/livekit/agents/pull/5453
* (phonic): support realtimemodel say() by @tinalenguyen in https://github.com/livekit/agents/pull/5293
* feat: add Cerebras LLM plugin by @u9g in https://github.com/livekit/agents/pull/5456
* (google tts): add "gemini-3.1-flash-tts-preview" model by @tinalenguyen in https://github.com/livekit/agents/pull/5459
* (hedra) remove from examples and raise exception by @tinalenguyen in https://github.com/livekit/agents/pull/5460
* xai stt by @tinalenguyen in https://github.com/livekit/agents/pull/5458
* feat(openai): expose max_output_tokens on Responses API LLM by @piyush-gambhir in https://github.com/livekit/agents/pull/5449
* (xai stt): pass diarization capability + minor fix by @tinalenguyen in https://github.com/livekit/agents/pull/5461
* Adding xAI Grok llm support for inference by @russellmartin-livekit in https://github.com/livekit/agents/pull/5201
* (release workflow): allow spacing in dependency by @tinalenguyen in https://github.com/livekit/agents/pull/5463
* livekit-agents@1.5.3 by @github-actions[bot] in https://github.com/livekit/agents/pull/5464

## New Contributors
* @joaquinhuigomez made their first contribution in https://github.com/livekit/agents/pull/5403
* @k-1208 made their first contribution in https://github.com/livekit/agents/pull/5383
* @rililinx made their first contribution in https://github.com/livekit/agents/pull/5411
* @renovate[bot] made their first contribution in https://github.com/livekit/agents/pull/5417
* @realgarik made their first contribution in https://github.com/livekit/agents/pull/4370
* @robinandeer made their first contribution in https://github.com/livekit/agents/pull/5355
* @dyi1 made their first contribution in https://github.com/livekit/agents/pull/5453
* @u9g made their first contribution in https://github.com/livekit/agents/pull/5456

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.5.2...livekit-agents@1.5.3
</Release>

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

<Release version="livekit-agents@1.5.1" date="March 23, 2026" published="2026-03-23T22:52:43.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.5.1">
> [!NOTE]  
> **livekit-agents 1.5 introduced many new features. You can check out the changelog [here](https://github.com/livekit/agents/releases/tag/livekit-agents%401.5.0).**


## What's Changed
* fix azure openai realtime support & add realtime models tests by @theomonnom in https://github.com/livekit/agents/pull/5168
* fix(core): version mismatch due to bad merge by @chenghao-mou in https://github.com/livekit/agents/pull/5176
* fix(turn-detector): relax transformers upper bound to allow 5.x by @gdoermann in https://github.com/livekit/agents/pull/5174
* (gladia & soniox): add translation support by @tinalenguyen in https://github.com/livekit/agents/pull/5148
* feat(agents): support LIVEKIT_OBSERVABILITY_URL for custom observability endpoints by @theomonnom in https://github.com/livekit/agents/pull/5179
* (xai tts): update websocket endpoint by @tinalenguyen in https://github.com/livekit/agents/pull/5180
* fix(core): restore chat topic support in room IO by @chenghao-mou in https://github.com/livekit/agents/pull/5181
* Unskip Tool Call Items before Summarization in Task Group by @toubatbrian in https://github.com/livekit/agents/pull/5169
* add sdk_version to SessionReport for observability by @theomonnom in https://github.com/livekit/agents/pull/5182
* feat(hamming): add hamming monitoring plugin package by @duchammingai in https://github.com/livekit/agents/pull/5135
* chore(mypy): enable mypy cache in type checking by @chenghao-mou in https://github.com/livekit/agents/pull/5192
* fix: expose Chirp 3 google STT endpoint sensitivity by @karlsonlee-livekit in https://github.com/livekit/agents/pull/5196
* add MCPToolset by @longcw in https://github.com/livekit/agents/pull/5138
* Feat/personaplex plugin by @milanperovic in https://github.com/livekit/agents/pull/4660
* fix: skip redundant realtime events in OpenAI plugin by @theomonnom in https://github.com/livekit/agents/pull/5204
* feat: enable AGC by default on RoomInput audio by @theomonnom in https://github.com/livekit/agents/pull/5185
* bump minimum livekit sdk version to 1.1.3 by @theomonnom in https://github.com/livekit/agents/pull/5206
* livekit-agents 1.5.1 by @theomonnom in https://github.com/livekit/agents/pull/5207

## New Contributors
* @duchammingai made their first contribution in https://github.com/livekit/agents/pull/5135
* @karlsonlee-livekit made their first contribution in https://github.com/livekit/agents/pull/5196
* @milanperovic made their first contribution in https://github.com/livekit/agents/pull/4660

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.5.0...livekit-agents@1.5.1
</Release>

<Release version="livekit-agents@1.5.0" date="March 19, 2026" published="2026-03-19T17:01:15.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.5.0">
## Highlights

### Adaptive Interruption Handling

The headline feature of v1.5.0: an audio-based ML model that distinguishes genuine user interruptions from incidental sounds like backchannels ("mm-hmm"), coughs, sighs, or background noise. Enabled by default — no configuration needed.

Key stats:
- **86% precision** and **100% recall** at 500ms overlapping speech
- Rejects **51%** of traditional VAD false positives
- Detects true interruptions **64% faster** than VAD alone
- Inference completes in **30ms or less**

When a false interruption is detected, the agent automatically resumes playback from where it left off — no re-generation needed.

To opt out and use VAD-only interruption:

```python
session = AgentSession(
    ...
    turn_handling=TurnHandlingOptions(
        interruption={
            "mode": "vad",
        },
    ),
)
```

Blog post: https://livekit.com/blog/adaptive-interruption-handling

### Dynamic Endpointing

Endpointing delays now adapt to each conversation's natural rhythm. Instead of a fixed silence threshold, the agent uses an exponential moving average of pause durations to dynamically adjust when it considers the user's turn complete.

```python
session = AgentSession(
    ...
    turn_handling=TurnHandlingOptions(
        endpointing={
            "mode": "dynamic",
            "min_delay": 0.3,
            "max_delay": 3.0,
        },
    ),
)
```

### New `TurnHandlingOptions` API

Endpointing and interruption settings are now consolidated into a single `TurnHandlingOptions` dict passed to `AgentSession`. Old keyword arguments (`min_endpointing_delay`, `allow_interruptions`, etc.) still work but are deprecated and will emit warnings.

```python
session = AgentSession(
    turn_handling={
        "turn_detection": "vad",
        "endpointing": {"min_delay": 0.5, "max_delay": 3.0},
        "interruption": {"enabled": True, "mode": "adaptive"},
    },
)
```

### Session Usage Tracking

New `SessionUsageUpdatedEvent` provides structured, per-model usage data — token counts, character counts, and audio durations — broken down by provider and model:

```python
@session.on("session_usage_updated")
def on_usage(ev: SessionUsageUpdatedEvent):
    for usage in ev.usage.model_usage:
        print(f"{usage.provider}/{usage.model}: {usage}")
```

Usage types: `LLMModelUsage`, `TTSModelUsage`, `STTModelUsage`, `InterruptionModelUsage`.

You can also access aggregated usage at any time via the `session.usage` property:

```python
usage = session.usage
for model_usage in usage.model_usage:
    print(model_usage)
```

Usage data is also included in `SessionReport` (via `model_usage`), so it's available in post-session telemetry and reporting out of the box.

### Per-Turn Latency on `ChatMessage.metrics`

Each `ChatMessage` now carries a `metrics` field (`MetricsReport`) with per-turn latency data:
- `transcription_delay` — time to obtain transcript after end of speech
- `end_of_turn_delay` — time between end of speech and turn decision
- `on_user_turn_completed_delay` — time in the developer callback

### Action-Aware Chat Context Summarization

Context summarization now includes function calls and their outputs when building summaries, preserving tool-use context across the conversation window.

### Configurable Log Level

Set the agent log level via `LIVEKIT_LOG_LEVEL` environment variable or through `ServerOptions`, without touching your code.

## Deprecations

| Deprecated | Replacement | Notes |
|---|---|---|
| `metrics_collected` event | `session_usage_updated` event + `ChatMessage.metrics` | Usage/cost data moves to `session_usage_updated`; per-turn latency moves to `ChatMessage.metrics`. Old listeners still work with a deprecation warning. |
| `UsageCollector` | `ModelUsageCollector` | New collector supports per-model/provider breakdown |
| `UsageSummary` | `LLMModelUsage`, `TTSModelUsage`, `STTModelUsage` | Typed per-service usage classes |
| `RealtimeModelBeta` | `RealtimeModel` | Beta API removed |
| `AgentFalseInterruptionEvent.message` / `.extra_instructions` | Automatic resume via adaptive interruption | Accessing these fields logs a deprecation warning |
| `AgentSession` kwargs: `min_endpointing_delay`, `max_endpointing_delay`, `allow_interruptions`, `discard_audio_if_uninterruptible`, `min_interruption_duration`, `min_interruption_words`, `turn_detection`, `false_interruption_timeout`, `resume_false_interruption` | `turn_handling=TurnHandlingOptions(...)` | Old kwargs still work but emit deprecation warnings. Will be removed in v2.0. |
| `Agent` / `AgentTask` kwargs: `turn_detection`, `min_endpointing_delay`, `max_endpointing_delay`, `allow_interruptions` | `turn_handling=TurnHandlingOptions(...)` | Same migration path as `AgentSession`. Will be removed in future versions. |

## Complete changelog
* (xai): add grok text to speech api to readme by @tinalenguyen in https://github.com/livekit/agents/pull/5125
* Remove Gemini 2.0 models from inference gateway types by @Shubhrakanti in https://github.com/livekit/agents/pull/5133
* feat: support log level via ServerOptions and LIVEKIT_LOG_LEVEL env var by @onurburak9 in https://github.com/livekit/agents/pull/5112
* fix: preserve 'type' field in TaskGroup JSON schema enum items by @weiguangli-io in https://github.com/livekit/agents/pull/5073
* feat(assemblyai): expose session ID from Begin event by @dlange-aai in https://github.com/livekit/agents/pull/5132
* fix: strip empty {} entries from anyOf/oneOf in strict JSON schema by @theomonnom in https://github.com/livekit/agents/pull/5137
* fix: update_instructions() now reflected in tool call response generation by @weiguangli-io in https://github.com/livekit/agents/pull/5072
* Make chat context summarization action-aware by @toubatbrian in https://github.com/livekit/agents/pull/5099
* fix(realtime): sync remote items to local chat_ctx with placeholders to prevent in-flight deletion by @longcw in https://github.com/livekit/agents/pull/5114
* Set _speech_start_time when VAD START_OF_SPEECH activates by @hudson-worden in https://github.com/livekit/agents/pull/5027
* Fix(inworld): "Context not found" errors caused by invalid enum parameter types by @ianbbqzy in https://github.com/livekit/agents/pull/5153
* increase generate_reply timeout & remove RealtimeModelBeta by @theomonnom in https://github.com/livekit/agents/pull/5149
* add livekit-blockguard plugin by @theomonnom in https://github.com/livekit/agents/pull/5023
* openai: add max_completion_tokens to with_azure() by @abhishekranjan-bluemachines in https://github.com/livekit/agents/pull/5143
* Restrict mistralai dependency to use v1 sdk by @csanz91 in https://github.com/livekit/agents/pull/5116
* feat(assemblyai): add DEBUG-level diagnostic logging by @dlange-aai in https://github.com/livekit/agents/pull/5146
* Fix Phonic `generate_reply` to resolve with the current `GenerationCreatedEvent` by @qionghuang6 in https://github.com/livekit/agents/pull/5147
* fix(11labs): add empty keepalive message and remove final duplicates by @chenghao-mou in https://github.com/livekit/agents/pull/5139
* AGT-2182: Add adaptive interruption handling and dynamic endpointing by @chenghao-mou in https://github.com/livekit/agents/pull/4771
* livekit-agents 1.5.0 by @theomonnom in https://github.com/livekit/agents/pull/5165

## New Contributors
* @onurburak9 made their first contribution in https://github.com/livekit/agents/pull/5112
* @weiguangli-io made their first contribution in https://github.com/livekit/agents/pull/5073
* @abhishekranjan-bluemachines made their first contribution in https://github.com/livekit/agents/pull/5143
* @csanz91 made their first contribution in https://github.com/livekit/agents/pull/5116

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.4.6...livekit-agents@1.5.0
</Release>

<Release version="livekit-agents@1.4.6" date="March 16, 2026" published="2026-03-16T19:09:09.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.4.6">
## What's Changed
* fix(types): replace TypeGuard with TypeIs in is_given for bidirectional narrowing by @longcw in https://github.com/livekit/agents/pull/5079
* [inworld] websocket _recv_loop to flush the audio immediately by @ianbbqzy in https://github.com/livekit/agents/pull/5071
* fix: include `null` in enum array for nullable enum schemas by @MSameerAbbas in https://github.com/livekit/agents/pull/5080
* (openai chat completions): drop reasoning_effort when function tools are present by @tinalenguyen in https://github.com/livekit/agents/pull/5088
* (google realtime): replace deprecated mediaChunks by @tinalenguyen in https://github.com/livekit/agents/pull/5089
* fix: omit `required` field in tool schema when function has no parameters by @longcw in https://github.com/livekit/agents/pull/5082
* fix(sarvam-tts): correct mime_type from audio/mp3 to audio/wav by @shmundada93 in https://github.com/livekit/agents/pull/5086
* add trunk_config to WarmTransferTask for SIP endpoint transfers by @longcw in https://github.com/livekit/agents/pull/5016
* healthcare example by @tinalenguyen in https://github.com/livekit/agents/pull/5031
* fix(openai): only reuse previous_response_id when pending tool calls are completed by @longcw in https://github.com/livekit/agents/pull/5094
* feat(assemblyai): add speaker diarization support by @dlange-aai in https://github.com/livekit/agents/pull/5074
* fix: prevent _cancel_speech_pause from poisoning subsequent user turns by @giulio-leone in https://github.com/livekit/agents/pull/5101
* feat(google): support universal credential types in STT and TTS credentials_file by @rafallezanko in https://github.com/livekit/agents/pull/5056
* Add Murf AI - TTS Plugin Support by @gaurav-murf in https://github.com/livekit/agents/pull/3000
* feat(voice): add callable TextTransforms support with built-in replace transform by @longcw in https://github.com/livekit/agents/pull/5104
* fix(eou): only reset speech/speaking time when no new speech by @chenghao-mou in https://github.com/livekit/agents/pull/5083
* (xai): add tts by @tinalenguyen in https://github.com/livekit/agents/pull/5120
* (xai tts): add language parameter by @tinalenguyen in https://github.com/livekit/agents/pull/5122
* livekit-agents 1.4.6 by @theomonnom in https://github.com/livekit/agents/pull/5123

## New Contributors
* @shmundada93 made their first contribution in https://github.com/livekit/agents/pull/5086
* @dlange-aai made their first contribution in https://github.com/livekit/agents/pull/5074
* @gaurav-murf made their first contribution in https://github.com/livekit/agents/pull/3000

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.4.5...livekit-agents@1.4.6
</Release>

<Release version="livekit-agents@1.4.5" date="March 11, 2026" published="2026-03-11T06:45:50.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.4.5">
## What's Changed
* Pass through additional params to LemonSlice when using the LemonSlice Avatar by @jp-lemon in https://github.com/livekit/agents/pull/4984
* fix(anthropic): add dummy user message for Claude 4.6+ trailing assistant turns by @giulio-leone in https://github.com/livekit/agents/pull/4973
* (keyframe): remove whitespace from py.typed by @tinalenguyen in https://github.com/livekit/agents/pull/4990
* Add Phonic Plugin to LiveKit agents by @qionghuang6 in https://github.com/livekit/agents/pull/4980
* Fixed E2EE encryption of content in data tracks by @zelidrag-arbo in https://github.com/livekit/agents/pull/4992
* fix: resync tool context when tools are mutated inside llm_node by @longcw in https://github.com/livekit/agents/pull/4994
* [🤖 readme-manager] Update README by @ladvoc in https://github.com/livekit/agents/pull/4996
* fix(google): prevent function_call text from leaking to TTS output by @BkSouX in https://github.com/livekit/agents/pull/4999
* (openai responses): add websocket connection pool by @tinalenguyen in https://github.com/livekit/agents/pull/4985
* (openai tts): close openai client by @tinalenguyen in https://github.com/livekit/agents/pull/5012
* nvidia stt: add speaker diarization support by @longcw in https://github.com/livekit/agents/pull/4997
* update error message when TTS is not set by @longcw in https://github.com/livekit/agents/pull/4998
* initialize interval future in init by @tinalenguyen in https://github.com/livekit/agents/pull/5013
* Fix/elevenlabs update default voice non expiring by @yusuf-eren in https://github.com/livekit/agents/pull/5010
* [Inworld] Flush to drain decoder on every audio chunk from server by @ianbbqzy in https://github.com/livekit/agents/pull/4983
* (google): support passing credentials through realtime and llm by @tinalenguyen in https://github.com/livekit/agents/pull/5015
* use default voice accessible to free tier users by @tmshapland in https://github.com/livekit/agents/pull/5020
* make commit_user_turn() return a Future with the audio transcript by @longcw in https://github.com/livekit/agents/pull/5019
* Add GPT-5.4 to OpenAI plugin by @Topherhindman in https://github.com/livekit/agents/pull/5022
* Generate and upload markdown docs by @Topherhindman in https://github.com/livekit/agents/pull/4993
* Add GPT-5.4 and GPT-5.3 Chat Latest support by @Topherhindman in https://github.com/livekit/agents/pull/5030
* Improve Audio Generation Quality for Cartesia TTS Plugin by @tycartesia in https://github.com/livekit/agents/pull/5032
* fix(elevenlabs): handle empty words in _to_timed_words by @MonkeyLeeT in https://github.com/livekit/agents/pull/5036
* fix(deepgram): include word confidence for stt v2 alternatives by @inickt in https://github.com/livekit/agents/pull/5034
* fix: generate final LLM response when max_tool_steps is reached by @IanSteno in https://github.com/livekit/agents/pull/4747
* fix: guard against negative sleep duration in voice agent scheduling by @jnMetaCode in https://github.com/livekit/agents/pull/5040
* add modality-aware Instructions with audio/text variants by @longcw in https://github.com/livekit/agents/pull/4987
* fix(core): move callbacks to the caller by @chenghao-mou in https://github.com/livekit/agents/pull/5039
* Added raw logging of API errors via the LiveKit plugins for both STT and TTS. by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/5025
* Log LemonSlice API error + new agent_idle_prompt arg by @jp-lemon in https://github.com/livekit/agents/pull/5052
* Sarvam v3 tts addns by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/4976
* fix(google): avoid session restart on update_instructions, use mid-session client content by @D-zigi in https://github.com/livekit/agents/pull/5049
* (responses llm): override provider property and set use_websocket to False for wrappers by @tinalenguyen in https://github.com/livekit/agents/pull/5055
* feat(mcp): add MCPToolResultResolver callback for customizing tool call results by @longcw in https://github.com/livekit/agents/pull/5046
* docs: add development instructions to README and example READMEs by @bcherry in https://github.com/livekit/agents/pull/2636
* Improve plugin READMEs with installation, pre-requisites, and docs links by @bcherry in https://github.com/livekit/agents/pull/3025
* Add `generate_reply` and `update_chat_ctx` support to Phonic Plugin by @qionghuang6 in https://github.com/livekit/agents/pull/5058
* feat: enhance worker load management with reserved slots and effective load calculation by @ProblematicToucan in https://github.com/livekit/agents/pull/4911
* fix(core): render error message with full details in traceback by @chenghao-mou in https://github.com/livekit/agents/pull/5047
* feat(core): allow skip_reply when calling commit_user_turn by @chenghao-mou in https://github.com/livekit/agents/pull/5066
* fix(mcp): replace deprecated streamablehttp_client with streamable_http_client by @longcw in https://github.com/livekit/agents/pull/5048
* fix: disable aec warmup timer when audio is disabled by @longcw in https://github.com/livekit/agents/pull/5065
* feat(openai): add transcript_confidence from OpenAI realtime logprobs by @theomonnom in https://github.com/livekit/agents/pull/5070
* Enhance LK Inference STT and TTS options with new parameters and models by @russellmartin-livekit in https://github.com/livekit/agents/pull/4949
* Move Instructions to beta exports by @theomonnom in https://github.com/livekit/agents/pull/5075
* livekit-agents 1.4.5 by @theomonnom in https://github.com/livekit/agents/pull/5076

## New Contributors
* @giulio-leone made their first contribution in https://github.com/livekit/agents/pull/4973
* @qionghuang6 made their first contribution in https://github.com/livekit/agents/pull/4980
* @zelidrag-arbo made their first contribution in https://github.com/livekit/agents/pull/4992
* @tmshapland made their first contribution in https://github.com/livekit/agents/pull/5020
* @tycartesia made their first contribution in https://github.com/livekit/agents/pull/5032
* @inickt made their first contribution in https://github.com/livekit/agents/pull/5034
* @jnMetaCode made their first contribution in https://github.com/livekit/agents/pull/5040
* @D-zigi made their first contribution in https://github.com/livekit/agents/pull/5049
* @ProblematicToucan made their first contribution in https://github.com/livekit/agents/pull/4911

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.4.4...livekit-agents@1.4.5
</Release>

<Release version="livekit-agents@1.4.4" date="March 3, 2026" published="2026-03-03T01:13:00.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.4.4">
## What's Changed
* Upgrading Cartesia TTS default to Sonic 3 by @chongzluong in https://github.com/livekit/agents/pull/4922
* (google stt): add denoiser support and explicit adaptation param by @tinalenguyen in https://github.com/livekit/agents/pull/4918
* feat: add Telnyx STT and TTS plugins by @fmv1992 in https://github.com/livekit/agents/pull/4665
* feat: add livekit-plugins-sambanova with LLM support by @mahimairaja in https://github.com/livekit/agents/pull/4910
* skip adding run event when run result is done by @longcw in https://github.com/livekit/agents/pull/4925
* guard against RuntimeError when restoring allow_interruptions in AgentTask by @longcw in https://github.com/livekit/agents/pull/4930
* Add support for Gradium pronunciation ids. by @LaurentMazare in https://github.com/livekit/agents/pull/4932
* feat: optimize wav decoding by @davidzhao in https://github.com/livekit/agents/pull/4905
* fix: drain buffered log records before closing LogQueueListener by @longcw in https://github.com/livekit/agents/pull/4928
* fix(voice): return ToolError for unknown function calls instead of si… by @yusuf-eren in https://github.com/livekit/agents/pull/4935
* Update readme to include mcp and skill information by @Topherhindman in https://github.com/livekit/agents/pull/4937
* fix: migrate HttpServer to AppRunner for proper connection lifecycle by @longcw in https://github.com/livekit/agents/pull/4945
* ignore unknown tools from xai realtime by @longcw in https://github.com/livekit/agents/pull/4941
* soniox stt: populate timing and confidence from token metadata by @longcw in https://github.com/livekit/agents/pull/4939
* fix(openai): preserve non-instruction system messages in update_chat_ctx for realtime models by @longcw in https://github.com/livekit/agents/pull/4942
* feat(openai): add gpt-realtime-1.5 to RealtimeModels by @yusuf-eren in https://github.com/livekit/agents/pull/4947
* standardize language handling by @davidzhao in https://github.com/livekit/agents/pull/4926
* fix: avoid blocking event loop with unconditional psutil call in _load_task by @msaelices in https://github.com/livekit/agents/pull/4946
* add AEC warmup to suppress false interruptions on first speech by @longcw in https://github.com/livekit/agents/pull/4813
* initial by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/4923
* fix asyncio.Future crash in console mode by @davidzhao in https://github.com/livekit/agents/pull/4952
* fix(11labs): Default to original alignment for CJK scripts by @chenghao-mou in https://github.com/livekit/agents/pull/4968
* support openai responses websocket mode by @tinalenguyen in https://github.com/livekit/agents/pull/4931
* Keyframe Labs Plugin by @kradkfl in https://github.com/livekit/agents/pull/4950
* hotfix: import issue in `agent_worker.py` by @kradkfl in https://github.com/livekit/agents/pull/4970
* feat(stt): add keyterms parameter in Elevenlabs STT plugin by @Arjun-A-I in https://github.com/livekit/agents/pull/4967
* feat(elevenlabs): report STT audio duration via RECOGNITION_USAGE events by @BkSouX in https://github.com/livekit/agents/pull/4953
* Fix/sarvam tts update options language code by @yusuf-eren in https://github.com/livekit/agents/pull/4957
* Fix: call playback started in sound device callback (console mode) by @chenghao-mou in https://github.com/livekit/agents/pull/4958
* fix: close duplex wrapper and log listener on process start failure by @longcw in https://github.com/livekit/agents/pull/4977
* feat(assemblyai): add u3-rt-pro model plus mid-stream updates, SpeechStarted, and ForceEndpoint support by @gsharp-aai in https://github.com/livekit/agents/pull/4965
* feat(stt): add support for AssemblyAI u3-rt-pro model and mid-session updates by @russellmartin-livekit in https://github.com/livekit/agents/pull/4961
* rename Language to LanguageCode by @theomonnom in https://github.com/livekit/agents/pull/4981
* livekit-agents 1.4.4 by @theomonnom in https://github.com/livekit/agents/pull/4982

## New Contributors
* @fmv1992 made their first contribution in https://github.com/livekit/agents/pull/4665
* @mahimairaja made their first contribution in https://github.com/livekit/agents/pull/4910
* @yusuf-eren made their first contribution in https://github.com/livekit/agents/pull/4935
* @Topherhindman made their first contribution in https://github.com/livekit/agents/pull/4937
* @kradkfl made their first contribution in https://github.com/livekit/agents/pull/4950
* @Arjun-A-I made their first contribution in https://github.com/livekit/agents/pull/4967
* @BkSouX made their first contribution in https://github.com/livekit/agents/pull/4953
* @gsharp-aai made their first contribution in https://github.com/livekit/agents/pull/4965

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.4.3...livekit-agents@1.4.4
</Release>

<Release version="livekit-agents@1.4.3" date="February 23, 2026" published="2026-02-23T04:07:10.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.4.3">
## What's Changed
* fix: use data.payload for browser navigate RPC by @theomonnom in https://github.com/livekit/agents/pull/4871
* Adjust dependency version requirement for Speechmatics STT by @sam-s10s in https://github.com/livekit/agents/pull/4873
* Not raising an error when JWT token is given for Neuphonic by @alexshelkov in https://github.com/livekit/agents/pull/4874
* Fix: Preserve OpenAI item ID on FunctionCall in Realtime sessions by @StianHanssen in https://github.com/livekit/agents/pull/4876
* gracefully stop AgentTask and parent agents when session close by @longcw in https://github.com/livekit/agents/pull/4730
* feat: add sip_headers param to WarmTransferTask by @theomonnom in https://github.com/livekit/agents/pull/4890
* Add vad_threshold parameter to AssemblyAI STT plugin by @AhmadIbrahiim in https://github.com/livekit/agents/pull/4880
* Update Simli integation endpoint by @Antonyesk601 in https://github.com/livekit/agents/pull/4894
* Upgrade the default drive thru LLM model to gpt 5 mini by @chenghao-mou in https://github.com/livekit/agents/pull/4897
* chore: remove models to be deprecated on March 19 2026 by @chenghao-mou in https://github.com/livekit/agents/pull/4895
* fix: skip OTLP log exporter setup when recording is disabled by @theomonnom in https://github.com/livekit/agents/pull/4892
* Drop unsupported params for reasoning models by @theomonnom in https://github.com/livekit/agents/pull/4908
* chore: update Async API base URL and default model name by @ashotbagh in https://github.com/livekit/agents/pull/4896
* (inworld tts): fix output emitter flush by @tinalenguyen in https://github.com/livekit/agents/pull/4912
* show turn metrics in console mode by @theomonnom in https://github.com/livekit/agents/pull/4916
* fix(google): raise the correct errors for blocked/etc by @davidzhao in https://github.com/livekit/agents/pull/4917
* support claude computer use on livekit-plugins-browser by @theomonnom in https://github.com/livekit/agents/pull/4882
* livekit-agents 1.4.3 by @theomonnom in https://github.com/livekit/agents/pull/4920

## New Contributors
* @StianHanssen made their first contribution in https://github.com/livekit/agents/pull/4876

**Full Changelog**: https://github.com/livekit/agents/compare/browser-v0.1.4...livekit-agents@1.4.3
</Release>

<Release version="livekit-agents@1.4.2" date="February 17, 2026" published="2026-02-17T03:17:44.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.4.2">
Stability-focused release with significant reliability improvements. Fixes multiple memory leaks in the process pool — job counter leaks on cancellation, pending assignment leaks on timeout, socket leaks on startup failure, and orphaned executors on send failure. IPC pipeline reliability has been improved, and several edge-case hangs have been resolved (participant never joining, Ctrl+C propagation to child processes). STT/TTS fallback behavior is now more robust: STT fallback correctly skips the main stream during recovery, and TTS fallback no longer shares resamplers across streams. Other fixes include ChatContext.truncate no longer dropping developer messages, correct cgroups v2 CPU quota parsing, proper on_session_end callback ordering, and log uploads even when sessions fail to start. Workers now automatically reject jobs when draining or full, and the proc pool correctly spawns processes under high load.

### New `RecordingOptions` API

The `record` parameter on `AgentSession.start()` now accepts granular options in addition to `bool`. All keys default to `True` when omitted.

```python
# record everything (default)
await session.start(agent, record=True)

# record nothing
await session.start(agent, record=False)

# granular: record audio but disable traces, logs, and transcript
await session.start(agent, record={"audio": True, "traces": False, "logs": False, "transcript": False})
```

## What's Changed
* fix multichannel input on speaking rate by @theomonnom in https://github.com/livekit/agents/pull/4740
* livekit-agents 1.4.1 by @theomonnom in https://github.com/livekit/agents/pull/4742
* fix ruff & type checks by @theomonnom in https://github.com/livekit/agents/pull/4743
* rename camb plugin to cambai by @tinalenguyen in https://github.com/livekit/agents/pull/4744
* fix ruff by @davidzhao in https://github.com/livekit/agents/pull/4749
* (liveavatar): change avatar mode from CUSTOM to LITE by @tinalenguyen in https://github.com/livekit/agents/pull/4748
* sarvam v3:stt and tts models by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/4603
* export ToolContext by @theomonnom in https://github.com/livekit/agents/pull/4750
* fix: correct typo 'occured' to 'occurred' by @thecaptain789 in https://github.com/livekit/agents/pull/4751
* fix: correct typo 'dont't' to 'don't' by @thecaptain789 in https://github.com/livekit/agents/pull/4752
* Add jwt_token auth option for Neuphonic by @alexshelkov in https://github.com/livekit/agents/pull/4734
* fix get_event_loop on py3.14 by @theomonnom in https://github.com/livekit/agents/pull/4757
* feat: add missing OpenTelemetry GenAI attributes (gen_ai.provider.name, gen_ai.operation.name) by @Mr-Neutr0n in https://github.com/livekit/agents/pull/4759
* add input_details to SpeechHandle by @longcw in https://github.com/livekit/agents/pull/4701
* suppress tee aclose exception by @chenghao-mou in https://github.com/livekit/agents/pull/4766
* fix 3.14 syntax warning by @chenghao-mou in https://github.com/livekit/agents/pull/4763
* update issue template community link by @tinalenguyen in https://github.com/livekit/agents/pull/4772
* remove browser plugin by @theomonnom in https://github.com/livekit/agents/pull/4760
* write_int signed by @theomonnom in https://github.com/livekit/agents/pull/4776
* add lemonslice to video avatars section in README by @tinalenguyen in https://github.com/livekit/agents/pull/4778
* Added TruGen Avatar Plugin.  by @hari-trugen in https://github.com/livekit/agents/pull/4430
* Bump cryptography from 46.0.4 to 46.0.5 by @dependabot[bot] in https://github.com/livekit/agents/pull/4788
* Updated Speechmatics STT integration by @sam-s10s in https://github.com/livekit/agents/pull/4703
* Bump pillow from 12.1.0 to 12.1.1 by @dependabot[bot] in https://github.com/livekit/agents/pull/4791
* automatically reject jobs if the worker is draining/full by @theomonnom in https://github.com/livekit/agents/pull/4794
* add instruction on error-handling by @chenghao-mou in https://github.com/livekit/agents/pull/4790
* replace asyncio with inspect for iscoroutinefunction by @chenghao-mou in https://github.com/livekit/agents/pull/4789
* Add Hindi to the list of languages supported by the turn detector plu… by @darryncampbell in https://github.com/livekit/agents/pull/4797
* generate_reply accepts ChatMessage as user_input by @longcw in https://github.com/livekit/agents/pull/4808
* await interruption in _default_text_input_cb by @longcw in https://github.com/livekit/agents/pull/4807
* Add google stt voice activity timeout by @AhmadIbrahiim in https://github.com/livekit/agents/pull/4361
* fix: Update AvatarSession to use FormData format for expression model… by @CathyL0 in https://github.com/livekit/agents/pull/4799
* Inworld tts auto mode by @ianbbqzy in https://github.com/livekit/agents/pull/4655
* [inworld] add User-Agent and X-Request-Id for better traceability by @ianbbqzy in https://github.com/livekit/agents/pull/4784
* [inworld] support async timestamps mode by @ianbbqzy in https://github.com/livekit/agents/pull/4793
* ensure proc pool spawns processes for waiting jobs under high load by @theomonnom in https://github.com/livekit/agents/pull/4820
* (openai responses): update field names and image inputs by @tinalenguyen in https://github.com/livekit/agents/pull/4819
* chore(assemblyai): improve latency by default by @davidzhao in https://github.com/livekit/agents/pull/4827
* fix: a few defensive fixes to guard for exceptions by @davidzhao in https://github.com/livekit/agents/pull/4828
* Improve error handling and developer experience by @theomonnom in https://github.com/livekit/agents/pull/4826
* fix _jobs_waiting_for_process counter leak on cancellation by @theomonnom in https://github.com/livekit/agents/pull/4821
* fix cgroups v2 CPU quota parsing by @davidzhao in https://github.com/livekit/agents/pull/4844
* improve IPC pipeline reliability by @theomonnom in https://github.com/livekit/agents/pull/4825
* fix socket leak in supervised_proc._start() on failure by @theomonnom in https://github.com/livekit/agents/pull/4823
* fix: ChatContext.truncate dropping "developer" message by @davidzhao in https://github.com/livekit/agents/pull/4845
* fix: do not share resampler in tts fallback adapter by @davidzhao in https://github.com/livekit/agents/pull/4840
* fix _pending_assignments memory leak on assignment timeout by @theomonnom in https://github.com/livekit/agents/pull/4822
* fix launch_job send failure leaving executor orphaned by @theomonnom in https://github.com/livekit/agents/pull/4824
* fix(stt): correct log key mislabeled as "tts" in STT retry logs by @SezginKahraman in https://github.com/livekit/agents/pull/4830
* allow flexible recording options by @davidzhao in https://github.com/livekit/agents/pull/4758
* fix: clean up inference tasks after completion by @davidzhao in https://github.com/livekit/agents/pull/4841
* fix: prevent leak when channel task has been cancelled by @davidzhao in https://github.com/livekit/agents/pull/4848
* fix: call speech_handle.add_done_callback even when task is done by @davidzhao in https://github.com/livekit/agents/pull/4851
* upload logs to server even when session fails to start by @davidzhao in https://github.com/livekit/agents/pull/4846
* ensure exception is seen by all peers of tee by @davidzhao in https://github.com/livekit/agents/pull/4853
* add livekit-plugins-browser by @theomonnom in https://github.com/livekit/agents/pull/4859
* fix: ruff and mypy issues in livekit-plugins-browser by @theomonnom in https://github.com/livekit/agents/pull/4860
* fix: correct samples_per_channel in speaking rate stream by @theomonnom in https://github.com/livekit/agents/pull/4863
* fix: run on_session_end callback before internal session cleanup by @theomonnom in https://github.com/livekit/agents/pull/4862
* fix: STT fallback does not skip main_stream when recovering streams fail by @davidzhao in https://github.com/livekit/agents/pull/4835
* bump livekit sdk to 1.1.1 by @theomonnom in https://github.com/livekit/agents/pull/4865
* fix: prevent hang if participant never joins by @davidzhao in https://github.com/livekit/agents/pull/4864
* fix: prevent KeyboardInterrupt in child processes on Ctrl+C by @theomonnom in https://github.com/livekit/agents/pull/4866
* bump livekit sdk to 1.1.2 by @theomonnom in https://github.com/livekit/agents/pull/4867
* livekit-agents 1.4.2 by @theomonnom in https://github.com/livekit/agents/pull/4868
* browser plugin: add navigation RPCs + bump to 0.1.2 by @theomonnom in https://github.com/livekit/agents/pull/4870

## New Contributors
* @thecaptain789 made their first contribution in https://github.com/livekit/agents/pull/4751
* @Mr-Neutr0n made their first contribution in https://github.com/livekit/agents/pull/4759
* @hari-trugen made their first contribution in https://github.com/livekit/agents/pull/4430
* @dependabot[bot] made their first contribution in https://github.com/livekit/agents/pull/4788
* @darryncampbell made their first contribution in https://github.com/livekit/agents/pull/4797
* @AhmadIbrahiim made their first contribution in https://github.com/livekit/agents/pull/4361
* @ianbbqzy made their first contribution in https://github.com/livekit/agents/pull/4655
* @SezginKahraman made their first contribution in https://github.com/livekit/agents/pull/4830

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.4.0...livekit-agents@1.4.2
</Release>

<Release version="browser-v0.1.3" date="February 16, 2026" published="2026-02-16T22:41:51.000Z" url="https://github.com/livekit/agents/releases/tag/browser-v0.1.3">
## Browser v0.1.3

CEF native binaries for livekit-browser v0.1.3. Supports Python 3.12-3.14 on macOS arm64, Linux x64, and Linux arm64.
</Release>

<Release version="browser-v0.1.2" date="February 16, 2026" published="2026-02-16T05:40:51.000Z" url="https://github.com/livekit/agents/releases/tag/browser-v0.1.2">
## Browser v0.1.2

CEF native binaries for livekit-browser v0.1.2. Supports Python 3.12-3.14 on macOS arm64, Linux x64, and Linux arm64.
</Release>

<Release version="livekit-agents@1.4.0" date="February 6, 2026" published="2026-02-06T21:10:44.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.4.0">
## Python 3.14 Support & Python 3.9 Dropped

This release adds **Python 3.14 support** and **drops Python 3.9**. The minimum supported version is now **Python 3.10**.

## Tool Improvements

Tools and toolsets now have **stable unique IDs**, making it possible to reference and filter tools programmatically. Changes to agent configuration (instructions, tools) are now tracked in conversation history via `AgentConfigUpdate`.

## `LLMStream.collect()` API

A new `LLMStream.collect()` API makes it significantly easier to use LLMs outside of `AgentSession`. You can now call an LLM, collect the full response, and execute tool calls with a straightforward API — useful for background tasks, pre-processing, or any workflow where you need LLM capabilities without the full voice agent pipeline.

```python
from livekit.agents import llm

response = await my_llm.chat(chat_ctx=ctx, tools=tools).collect()

for tc in response.tool_calls:
    result = await llm.execute_function_call(tc, tool_ctx)
    ctx.insert(result.fnc_call)
    if result.fnc_call_out:
        ctx.insert(result.fnc_call_out)
```

## Manual Turn Detection for Realtime Models

Realtime models now support `commit_user_turn`, enabling `turn_detection="manual"` mode. This gives you full control over when user turns are committed — useful for push-to-talk interfaces or scenarios where automatic VAD-based turn detection isn't ideal.

```python
@ctx.room.local_participant.register_rpc_method("end_turn")
async def end_turn(data: rtc.RpcInvocationData):
    session.input.set_audio_enabled(False)
    session.commit_user_turn(
        transcript_timeout=10.0,
        stt_flush_duration=2.0,
    )
```

## Job Migration on Reconnection

When the agent server temporarily loses connection and reconnects, **active jobs are now automatically migrated** rather than being dropped. This significantly improves reliability during transient network issues.

## False Interruption Fix

Fixed a bug where late end-of-speech events could trigger duplicate false interruption timers, causing the agent to incorrectly stop speaking. The agent now properly deduplicates these events and tracks STT completion state more reliably.

### New Providers & Plugins

- **xAI Responses LLM** — Use xAI's Responses API via `xai.responses.LLM()`
- **Azure OpenAI Responses** — Azure-hosted Responses API via `azure.responses.LLM()`, with support for deployments and Azure auth
- **Camb.ai TTS** — New TTS plugin powered by the MARS model family (mars-flash, mars-pro, mars-instruct), with voice selection, language control, and style instructions
- **Avatario Avatar** — Virtual avatar plugin with session management and API client

## What's Changed
* feat(azure/stt): TrueText post processing option added to STTOptions by @rafallezanko in https://github.com/livekit/agents/pull/4557
* chore(README): remove STT and LLM API key configuration from LemonSlice example as not needed. by @codeSTACKr in https://github.com/livekit/agents/pull/4589
* fix: Add thread-safe initialization to _DefaultLoadCalc singleton by @darshankparmar in https://github.com/livekit/agents/pull/4585
* add missing plugins to dependencies by @tinalenguyen in https://github.com/livekit/agents/pull/4593
* _setup_cloud_tracer still overrides TracerProviders due to checking the wrong base class by @hudson-worden in https://github.com/livekit/agents/pull/4584
* fix(google): add thought_signature support for Gemini 2.5 models by @gdoermann in https://github.com/livekit/agents/pull/4595
* remove shortcut inference STT model name by @longcw in https://github.com/livekit/agents/pull/4594
* Increase read_bufsize in minimax tts plugin by @jose-speak in https://github.com/livekit/agents/pull/4590
* refactor(rtzr): FlushSentinel-based segment control and type safety improvements by @kimdwkimdw in https://github.com/livekit/agents/pull/4565
* improve EndCallTool by @longcw in https://github.com/livekit/agents/pull/4563
* Fix: Add 'required' field to function_tool schema for Groq compatibility by @VinayJogani14 in https://github.com/livekit/agents/pull/4613
* fix: avoid modifying original raw tool description by @davidzhao in https://github.com/livekit/agents/pull/4616
* continue instead of return in InferenceProcExecutor loop by @chenghao-mou in https://github.com/livekit/agents/pull/4612
* add xai responses llm by @tinalenguyen in https://github.com/livekit/agents/pull/4618
* move xAI tools to separate file by @tinalenguyen in https://github.com/livekit/agents/pull/4624
* (xAI): backward compatibility for tools by @tinalenguyen in https://github.com/livekit/agents/pull/4625
* update inference models to match the latest by @davidzhao in https://github.com/livekit/agents/pull/4597
* AssemblyAI added EU streaming endpoint option by @ftsef in https://github.com/livekit/agents/pull/4571
* feat: Add Camb.ai TTS plugin by @eRuaro in https://github.com/livekit/agents/pull/4442
* prevent duplicate false interruption due to late end of speech by @chenghao-mou in https://github.com/livekit/agents/pull/4621
* feat: add customization bithuman gpu avatar endpoint handling by @CathyL0 in https://github.com/livekit/agents/pull/4390
* plugin/liveavatar implement sandbox on liveavatar by @arthurnumen in https://github.com/livekit/agents/pull/4635
* add asyncai to pyproject by @tinalenguyen in https://github.com/livekit/agents/pull/4636
* feat: avatario avatar plugin by @Saksham209 in https://github.com/livekit/agents/pull/4114
* add azure openai responses by @tinalenguyen in https://github.com/livekit/agents/pull/4619
* (openai realtime): add truncation param by @tinalenguyen in https://github.com/livekit/agents/pull/4642
* fix: 11Labs Scribe v2 model not working with EOT prediction model by @Ludobaka in https://github.com/livekit/agents/pull/4601
* (taskgroup): support on_complete callback functions by @tinalenguyen in https://github.com/livekit/agents/pull/4628
* add `id` to tools  by @theomonnom in https://github.com/livekit/agents/pull/4653
* allow 499 retry by @chenghao-mou in https://github.com/livekit/agents/pull/4637
* AGT-2474: add commit user turn support for realtime models by @chenghao-mou in https://github.com/livekit/agents/pull/4622
* fix(liveavatar): emit playback_finished on AudioSegmentEnd by @MSameerAbbas in https://github.com/livekit/agents/pull/4669
* add `AgentConfigUpdate` & initial judges by @theomonnom in https://github.com/livekit/agents/pull/4547
* fix tests & ruff by @theomonnom in https://github.com/livekit/agents/pull/4672
* (minimax): add language boost param by @tinalenguyen in https://github.com/livekit/agents/pull/4667
* remove accidentally committed files  by @theomonnom in https://github.com/livekit/agents/pull/4673
* fix duplicated openai realtime remote content by @longcw in https://github.com/livekit/agents/pull/4657
* use text streams & custom rpc logic by @theomonnom in https://github.com/livekit/agents/pull/4677
* remove chat_ctx size limit by @theomonnom in https://github.com/livekit/agents/pull/4678
* clean up metrics export from traces by @davidzhao in https://github.com/livekit/agents/pull/4679
* `LLMStream.collect` API & external easier tool executions by @theomonnom in https://github.com/livekit/agents/pull/4680
* update openai responses default model by @tinalenguyen in https://github.com/livekit/agents/pull/4681
* fix(google): improve error message for model/API mismatch in Realtime API by @cdutr in https://github.com/livekit/agents/pull/4611
* fix keyterm in Deepgram by @chenghao-mou in https://github.com/livekit/agents/pull/4684
* Expose ws close code and error messages by @chenghao-mou in https://github.com/livekit/agents/pull/4683
* fix: improve handling of 499 status code by @davidzhao in https://github.com/livekit/agents/pull/4685
* support wrapped tools with a warning message by @longcw in https://github.com/livekit/agents/pull/4674
* fix(transcription): prevent stale synchronizer impls (#4486) by @furious-luke in https://github.com/livekit/agents/pull/4686
* Add rtzr plugin to optional dependencies by @zach-iee in https://github.com/livekit/agents/pull/4631
* feat(langgraph): add custom stream mode support in LangChain LLMAdapter by @keenranger in https://github.com/livekit/agents/pull/4511
* Add room deletion timeout and cancellation by @chenghao-mou in https://github.com/livekit/agents/pull/4638
* add TaskCompletedEvent import by @tinalenguyen in https://github.com/livekit/agents/pull/4688
* prevent tool cancellation when AgentTask is called inside it by @longcw in https://github.com/livekit/agents/pull/4586
* fix gemini live tool execution interrupted by generation_complete event by @longcw in https://github.com/livekit/agents/pull/4699
* add STT usage for google by @chenghao-mou in https://github.com/livekit/agents/pull/4599
* fix: commit user turn with STT and realtime by @chenghao-mou in https://github.com/livekit/agents/pull/4663
* add exclude_config_update to ChatContext copy by @longcw in https://github.com/livekit/agents/pull/4700
* add require_confirmation param for built-in tasks by @tinalenguyen in https://github.com/livekit/agents/pull/4698
* Fix wrong "timestamp" parameter in livekit-plugins-spitch stt.py by @pabloFuente in https://github.com/livekit/agents/pull/4702
* Update readme and examples to use deepgram nova-3 by @bcherry in https://github.com/livekit/agents/pull/4697
* set exclude_config_update by @longcw in https://github.com/livekit/agents/pull/4709
* Restore Python 3.14 support by updating livekit-blingfire to 1.1 by @Abivarman123 in https://github.com/livekit/agents/pull/4710
* add ChatContext.messages() by @theomonnom in https://github.com/livekit/agents/pull/4712
* migrate jobs on reconnection by @theomonnom in https://github.com/livekit/agents/pull/4711
* use ChatMessage.messages() where applicable by @theomonnom in https://github.com/livekit/agents/pull/4713
* chore(docs): ditch the v0 docs and promote v1 docs to main path by @rektdeckard in https://github.com/livekit/agents/pull/4695
* filter tools by id by @tinalenguyen in https://github.com/livekit/agents/pull/4723
* support python 3.14 by @theomonnom in https://github.com/livekit/agents/pull/4727
* Fix: Added stt lang parsing and tts voice parsing to the constructors by @adrian-cowham in https://github.com/livekit/agents/pull/4726
* fix (liveavatar): restore interruption handling and track avatar speaking state by @tinalenguyen in https://github.com/livekit/agents/pull/4725
* update padding warning message and silence subsequent ones by @chenghao-mou in https://github.com/livekit/agents/pull/4733
* fix: Add default google tts model selection for backward compatibility by @chenghao-mou in https://github.com/livekit/agents/pull/4731
* fix uv lock file & drop python 3.9 support & upgrade dependencies by @theomonnom in https://github.com/livekit/agents/pull/4728
* automatically close openai client  by @theomonnom in https://github.com/livekit/agents/pull/4735
* update gitignore by @theomonnom in https://github.com/livekit/agents/pull/4737
* fix speaking_rate inference by @theomonnom in https://github.com/livekit/agents/pull/4738
* livekit-agents 1.4.0 by @theomonnom in https://github.com/livekit/agents/pull/4739

## New Contributors
* @codeSTACKr made their first contribution in https://github.com/livekit/agents/pull/4589
* @hudson-worden made their first contribution in https://github.com/livekit/agents/pull/4584
* @gdoermann made their first contribution in https://github.com/livekit/agents/pull/4595
* @jose-speak made their first contribution in https://github.com/livekit/agents/pull/4590
* @VinayJogani14 made their first contribution in https://github.com/livekit/agents/pull/4613
* @ftsef made their first contribution in https://github.com/livekit/agents/pull/4571
* @eRuaro made their first contribution in https://github.com/livekit/agents/pull/4442
* @arthurnumen made their first contribution in https://github.com/livekit/agents/pull/4635
* @Saksham209 made their first contribution in https://github.com/livekit/agents/pull/4114
* @Ludobaka made their first contribution in https://github.com/livekit/agents/pull/4601
* @cdutr made their first contribution in https://github.com/livekit/agents/pull/4611
* @keenranger made their first contribution in https://github.com/livekit/agents/pull/4511
* @Abivarman123 made their first contribution in https://github.com/livekit/agents/pull/4710

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.12...livekit-agents@1.4.0
</Release>

<Release version="livekit-agents@1.3.12" date="January 21, 2026" published="2026-01-21T22:13:55.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.12">
## What's Changed
* improve text mode CLI rendering by @theomonnom in https://github.com/livekit/agents/pull/4522
* fix `Worker.aclose` raising RuntimeError  by @theomonnom in https://github.com/livekit/agents/pull/4523
* better cli rendering for audio by @theomonnom in https://github.com/livekit/agents/pull/4524
* fix frame capture order and add playback start callback in console mode by @chenghao-mou in https://github.com/livekit/agents/pull/4516
* Add Connector to default participant kinds by @cnderrauber in https://github.com/livekit/agents/pull/4526
* add support for language detection for assembly ai by @chenghao-mou in https://github.com/livekit/agents/pull/4527
* Support static context in integration with langchain by @benlangfeld in https://github.com/livekit/agents/pull/4504
* feat(google): add warnings when system messages are dropped in Gemini realtime model by @dhruvnigam93 in https://github.com/livekit/agents/pull/4513
* chore: change deprecated cartesia voice id by @davidzhao in https://github.com/livekit/agents/pull/4528
* #4481 Added Opus and PCM encoding to ElevenLabs TTS by @rafallezanko in https://github.com/livekit/agents/pull/4525
* interrupt the same speech handle by @chenghao-mou in https://github.com/livekit/agents/pull/4536
* pin livekit-rtc version by @theomonnom in https://github.com/livekit/agents/pull/4531
* fix(elevenlabs/stt): allow specifying scribe_v2 non-realtime model by @bml1g12 in https://github.com/livekit/agents/pull/4515
* add reasoning param for openai responses LLM by @tinalenguyen in https://github.com/livekit/agents/pull/4548
* Defensive fixes by @chenghao-mou in https://github.com/livekit/agents/pull/4546
* LemonSlice Plugin by @jp-lemon in https://github.com/livekit/agents/pull/4539
* feat (google STT): support profanity filter by @tinalenguyen in https://github.com/livekit/agents/pull/4573
* fix(baseten): correct metadata and response field names for STT by @toubatbrian in https://github.com/livekit/agents/pull/4572
* drop frames when the ConsoleAudioInput is detached by @longcw in https://github.com/livekit/agents/pull/4576
* fix audio recording in console mode by @longcw in https://github.com/livekit/agents/pull/4575
* Chatterbox model support by @plangary in https://github.com/livekit/agents/pull/4541
* Inworld websocket improvements by @cshape in https://github.com/livekit/agents/pull/4533
* fix(deepgram): expose close code and reason on unexpected disconnects by @vadimatmurphy in https://github.com/livekit/agents/pull/4569
* playback started call for DataStreamAudioOutput and QueueAudioOutput by @chenghao-mou in https://github.com/livekit/agents/pull/4570
* feat(azure): add lexicon_uri option to TTS by @zach-iee in https://github.com/livekit/agents/pull/4485
* feat(tts): integrate AsyncAI TTS engine into livekit by @ashotbagh in https://github.com/livekit/agents/pull/3596
* Simplismart Integration in Livekit by @Tushar-ml in https://github.com/livekit/agents/pull/4349
* handle invalid bytes error by @chenghao-mou in https://github.com/livekit/agents/pull/4579
* Fixes #4388: Correct transcription_delay metric calculation in STT turn detec… by @devbyteai in https://github.com/livekit/agents/pull/4396
* fix(mcp): Error message based on text attribute instead of str(part) by @rafallezanko in https://github.com/livekit/agents/pull/4582
* livekit-agents 1.3.12 by @theomonnom in https://github.com/livekit/agents/pull/4583

## New Contributors
* @cnderrauber made their first contribution in https://github.com/livekit/agents/pull/4526
* @benlangfeld made their first contribution in https://github.com/livekit/agents/pull/4504
* @dhruvnigam93 made their first contribution in https://github.com/livekit/agents/pull/4513
* @jp-lemon made their first contribution in https://github.com/livekit/agents/pull/4539
* @vadimatmurphy made their first contribution in https://github.com/livekit/agents/pull/4569
* @zach-iee made their first contribution in https://github.com/livekit/agents/pull/4485
* @ashotbagh made their first contribution in https://github.com/livekit/agents/pull/3596
* @Tushar-ml made their first contribution in https://github.com/livekit/agents/pull/4349
* @devbyteai made their first contribution in https://github.com/livekit/agents/pull/4396

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.11...livekit-agents@1.3.12
</Release>

<Release version="livekit-agents@1.3.11" date="January 14, 2026" published="2026-01-14T18:45:33.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.11">
## What's Changed
* Add allowed_tools and transport_type parameters to MCPServerHTTP by @wasaybaig201 in https://github.com/livekit/agents/pull/4365
* better `transport_type` type in MCPServer by @theomonnom in https://github.com/livekit/agents/pull/4375
* fix typo: double the - in multiple livekit-plugin providers by @ChristianBernhard in https://github.com/livekit/agents/pull/4358
* feat(AWS STT): use ChainedIdentityResolver by @itskyf in https://github.com/livekit/agents/pull/4356
* support next_in_chain for RoomIO text output by @longcw in https://github.com/livekit/agents/pull/4353
* standardize Tool interface by @longcw in https://github.com/livekit/agents/pull/4368
* add tests for function tool parsing and execution by @longcw in https://github.com/livekit/agents/pull/4384
* add EndCallTool by @longcw in https://github.com/livekit/agents/pull/4377
* chore(google): update doc string to reflect default realtime models by @davidzhao in https://github.com/livekit/agents/pull/4398
* fix AttributeError in NVIDIA Riva STT by @gau-nernst in https://github.com/livekit/agents/pull/4391
* fix aws credentials when using env vals by @chenghao-mou in https://github.com/livekit/agents/pull/4403
* fix (gemini streaming tts): change default audio encoding and voice  by @tinalenguyen in https://github.com/livekit/agents/pull/4393
* fix (mistral-ai): add flexibility for timestamps  by @tinalenguyen in https://github.com/livekit/agents/pull/4404
* remove shutdown models from google gemini live  by @tinalenguyen in https://github.com/livekit/agents/pull/4421
* update groq tts models, voices, and defaults by @tinalenguyen in https://github.com/livekit/agents/pull/4422
* fix (google stt): set enable_word_time_offsets to False for chirp 3 by @tinalenguyen in https://github.com/livekit/agents/pull/4420
* fix: return 503 health check when worker fails to connect to LiveKit by @rusg77 in https://github.com/livekit/agents/pull/4419
* Add retrieval config support for google LLM by @chenghao-mou in https://github.com/livekit/agents/pull/4408
* allow pushing frames to VAD when agent speech is uninterruptible by @chenghao-mou in https://github.com/livekit/agents/pull/4418
* Add extra comments about Google model deprecation by @chenghao-mou in https://github.com/livekit/agents/pull/4424
* fix (gemini filesearch): require only filestore names by @tinalenguyen in https://github.com/livekit/agents/pull/4428
* update docker dependencies by @chenghao-mou in https://github.com/livekit/agents/pull/4431
* chore: minor fixup of console room name by @davidzhao in https://github.com/livekit/agents/pull/4433
* Inference: Improved support for mid session TTS updates by @adrian-cowham in https://github.com/livekit/agents/pull/4412
* fix: acquire lock in _DefaultLoadCalc.get_load() to prevent race condition by @martin-purplefish in https://github.com/livekit/agents/pull/4435
* fix vad rnn state by @theomonnom in https://github.com/livekit/agents/pull/4437
* restore old behavior by @chenghao-mou in https://github.com/livekit/agents/pull/4434
* fix: avoid double RoomIO.aclose during shutdown by @darshankparmar in https://github.com/livekit/agents/pull/4446
* add connect CLI command by @tinalenguyen in https://github.com/livekit/agents/pull/4452
* fix function call created_at by @longcw in https://github.com/livekit/agents/pull/4453
* Update STT tests and add batch recognition flag by @chenghao-mou in https://github.com/livekit/agents/pull/4425
* allow tests on external PRs when triggered by members by @chenghao-mou in https://github.com/livekit/agents/pull/4456
* Adding model query param to the STT and TTS websocket connection string. by @adrian-cowham in https://github.com/livekit/agents/pull/4457
* refactor connect CLI command by @tinalenguyen in https://github.com/livekit/agents/pull/4458
* OpenAI Responses API Plugin by @tinalenguyen in https://github.com/livekit/agents/pull/4192
* fix transcription truncate when agent is interrupted in console mode by @longcw in https://github.com/livekit/agents/pull/4473
* feat(rtzr): add keyword boosting to streaming STT by @lalq in https://github.com/livekit/agents/pull/4405
* Revise AWS Plugin README for accuracy and clarity by @guiruggiero in https://github.com/livekit/agents/pull/4468
* close log_handler when process initialize failed by @longcw in https://github.com/livekit/agents/pull/4472
* feat(deepgram): make vad_events configurable by @vchulski in https://github.com/livekit/agents/pull/4476
* Enables continuous language ID for Azure STT by @MSameerAbbas in https://github.com/livekit/agents/pull/4479
* fix: OpenAI realtime division by zero by @darshankparmar in https://github.com/livekit/agents/pull/4490
* update avatar example and openai readmes by @tinalenguyen in https://github.com/livekit/agents/pull/4495
* type cleanup, include all plugins into type checker by @davidzhao in https://github.com/livekit/agents/pull/4491
* agents.md and claude.md by @davidzhao in https://github.com/livekit/agents/pull/4493
* update examples to use LK Inference by @davidzhao in https://github.com/livekit/agents/pull/4494
* #4500 Fix for Race condition in _send_kill_signal: ValueError: process object is closed after SIGUSR1 by @rafallezanko in https://github.com/livekit/agents/pull/4501
* support diarization for soniox stt by @longcw in https://github.com/livekit/agents/pull/4510
* fix 11labs tts hang after update_options in tool call by @longcw in https://github.com/livekit/agents/pull/4499
* AGT-2316: refine timestamps in spans and recording alignment by @chenghao-mou in https://github.com/livekit/agents/pull/4131

## New Contributors
* @wasaybaig201 made their first contribution in https://github.com/livekit/agents/pull/4365
* @ChristianBernhard made their first contribution in https://github.com/livekit/agents/pull/4358
* @gau-nernst made their first contribution in https://github.com/livekit/agents/pull/4391
* @rusg77 made their first contribution in https://github.com/livekit/agents/pull/4419
* @lalq made their first contribution in https://github.com/livekit/agents/pull/4405
* @guiruggiero made their first contribution in https://github.com/livekit/agents/pull/4468
* @vchulski made their first contribution in https://github.com/livekit/agents/pull/4476
* @MSameerAbbas made their first contribution in https://github.com/livekit/agents/pull/4479
* @rafallezanko made their first contribution in https://github.com/livekit/agents/pull/4501

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.10...livekit-agents@1.3.11
</Release>

<Release version="livekit-agents@1.3.10" date="December 23, 2025" published="2025-12-23T19:43:54.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.10">
## What's Changed
* fix(google): improve handling of empty responses by @davidzhao in https://github.com/livekit/agents/pull/4330
* Add support for audio frame processor by @lukasIO in https://github.com/livekit/agents/pull/4145
* Update doc for min_endpointing_delay by @MonkeyLeeT in https://github.com/livekit/agents/pull/4327
* force interruption when closing the session by @longcw in https://github.com/livekit/agents/pull/4346
* add ProviderTool & support built-in tools for xai & gemini realtime by @theomonnom in https://github.com/livekit/agents/pull/4344
* fix dynamic tool updates in llm_node by @davidzhao in https://github.com/livekit/agents/pull/4355
* Proper support for V1 models for Google STT by @chenghao-mou in https://github.com/livekit/agents/pull/4338
* Add Grok example by @ShayneP in https://github.com/livekit/agents/pull/4363
* allow aws realtime to accept str tool results by @tinalenguyen in https://github.com/livekit/agents/pull/4364
* (gemini realtime) check for vertexai for api version by @tinalenguyen in https://github.com/livekit/agents/pull/4366
* Enable Soniox STT turn detection & metrics by @matejmarinko-soniox in https://github.com/livekit/agents/pull/4332

### Provider tools

This release brings the ability to use tools that are specific to model providers with [provider tools](https://docs.livekit.io/agents/logic/tools/#provider-tools). You can now mix & match function tools and provider tools in your agent by specifying `Agent(tools=[..])`.

For those that were using the experimental `_gemini_tools` parameter with Google LLMs, that experimental parameter has been removed in favor of provider tools. See usage example [here](https://docs.livekit.io/agents/models/llm/plugins/gemini/#provider-tools).

## New Contributors
* @MonkeyLeeT made their first contribution in https://github.com/livekit/agents/pull/4327

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.9...livekit-agents@1.3.10
</Release>

<Release version="livekit-agents@1.3.9" date="December 19, 2025" published="2025-12-19T06:27:05.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.9">
## What's Changed
* chore(xai): update voice names according to docs by @davidzhao in https://github.com/livekit/agents/pull/4295
* Add local dev commands for linking to rtc-sdk by @lukasIO in https://github.com/livekit/agents/pull/4258
* Ensure makefile checks for livekit_lib_path by @lukasIO in https://github.com/livekit/agents/pull/4298
* feat(gemini3) : Add Gemini 3 support with thinking_level and thought_signature by @varghesepaul in https://github.com/livekit/agents/pull/4027
* fix list mutation during iteration by @theomonnom in https://github.com/livekit/agents/pull/4304
* add gemini 3 flash model by @tinalenguyen in https://github.com/livekit/agents/pull/4301
* Websockets improvement by @cshape in https://github.com/livekit/agents/pull/4303
* Allow for Cartesia TTS language auto-detection by @yuyuma in https://github.com/livekit/agents/pull/4300
* Add Amazon Nova 2.0 Sonic Support with Text Input and Enhanced Features by @kachenjr in https://github.com/livekit/agents/pull/4176
* fix dynamic FieldInfo for pydantic 2.12 by @longcw in https://github.com/livekit/agents/pull/4290
* re-export TurnDetection for xAI by @tinalenguyen in https://github.com/livekit/agents/pull/4306
* fix commit_user_turn when last_final_transcript_time is None by @longcw in https://github.com/livekit/agents/pull/4308
* feat(soniox): add language_hints_strict option for STT by @cateet in https://github.com/livekit/agents/pull/4281
* feat(google-tts): add prompt to normal synthesize for Gemini TTS by @NXV5111 in https://github.com/livekit/agents/pull/4208
* Adding extra content to OpenAI LLM. Improving function call grouping. by @russellmartin-livekit in https://github.com/livekit/agents/pull/4170
* feat(gemini3) use low latency thinking_level by default for gemini 3 models by @pushkar-nurix in https://github.com/livekit/agents/pull/4311
* fix handoff to Realtime model with existing session context by @davidzhao in https://github.com/livekit/agents/pull/4310
* tts metrics update by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/4117
* AGT-2302: add aligned_transcript to STT by @chenghao-mou in https://github.com/livekit/agents/pull/4155
* Minor readme doc fixes by @kachenjr in https://github.com/livekit/agents/pull/4320
* vad enabled by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/4321
* handle exceptions in task_results by @tinalenguyen in https://github.com/livekit/agents/pull/4323
* add `livekit-durable` functions by @theomonnom in https://github.com/livekit/agents/pull/4272
* fix py3.10-py3.12 &`livekit-durable` cibw by @theomonnom in https://github.com/livekit/agents/pull/4324
* stringify cartesia error to be pickleable by @tinalenguyen in https://github.com/livekit/agents/pull/4328
* livekit-agents 1.3.9 by @theomonnom in https://github.com/livekit/agents/pull/4329

## New Contributors
* @varghesepaul made their first contribution in https://github.com/livekit/agents/pull/4027
* @NXV5111 made their first contribution in https://github.com/livekit/agents/pull/4208
* @russellmartin-livekit made their first contribution in https://github.com/livekit/agents/pull/4170
* @dhruvladia-sarvam made their first contribution in https://github.com/livekit/agents/pull/4117

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.8...livekit-agents@1.3.9
</Release>

<Release version="livekit-agents@1.3.8" date="December 17, 2025" published="2025-12-17T06:28:24.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.8">
## What's Changed
* add init for xai by @tinalenguyen in https://github.com/livekit/agents/pull/4286
* fix(xai): list openai as a dependency, fix exports by @davidzhao in https://github.com/livekit/agents/pull/4287
* fix(xai): a few more exports by @davidzhao in https://github.com/livekit/agents/pull/4288
* Update default model by @gyang-xai in https://github.com/livekit/agents/pull/4289
* chore(xai): list supported voices by @davidzhao in https://github.com/livekit/agents/pull/4292

## New Contributors
* @gyang-xai made their first contribution in https://github.com/livekit/agents/pull/4289

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.7...livekit-agents@1.3.8
</Release>

<Release version="livekit-agents@1.3.7" date="December 16, 2025" published="2025-12-16T22:06:48.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.7">
## What's Changed
* fix OTEL types by @theomonnom in https://github.com/livekit/agents/pull/4164
* feat(background-audio): add several builtin audio clips by @rektdeckard in https://github.com/livekit/agents/pull/4165
* fix gemini function tool parameter enum typing by @tinalenguyen in https://github.com/livekit/agents/pull/4166
* use inference gateway in the readme by @theomonnom in https://github.com/livekit/agents/pull/3665
* update warm transfer readme and extra instructions by @longcw in https://github.com/livekit/agents/pull/4168
* terminate on `JobRequest.reject` by @theomonnom in https://github.com/livekit/agents/pull/4172
* add terminate argument to JobRequest.reject by @theomonnom in https://github.com/livekit/agents/pull/4173
* update documentation link for LiveAvatar by @tinalenguyen in https://github.com/livekit/agents/pull/4178
* fix logging style format is not respected by @longcw in https://github.com/livekit/agents/pull/4169
* fix _on_reject when no answer by @longcw in https://github.com/livekit/agents/pull/4180
* expose elevenlabs TTS error message by @longcw in https://github.com/livekit/agents/pull/4182
* fix(aws): Handle nested schema in Nova Sonic tool parameter extraction by @somoore in https://github.com/livekit/agents/pull/4177
* Restore otel chat message by @chenghao-mou in https://github.com/livekit/agents/pull/4118
* fix record.exc_info is not pickable when using LogQueueHandler by @longcw in https://github.com/livekit/agents/pull/4185
* Feat/mistralai models update by @fabitokki in https://github.com/livekit/agents/pull/4156
* feat(rime): expand update_options to accept all TTS parameters by @gokuljs in https://github.com/livekit/agents/pull/4095
* Fallback API for Inference by @adrian-cowham in https://github.com/livekit/agents/pull/4099
* Add LiveAvatar Stop Session API Call + README Fix by @tinalenguyen in https://github.com/livekit/agents/pull/4195
* feat(google): add streaming support for Gemini TTS models by @plumber0 in https://github.com/livekit/agents/pull/4189
* fix watchfiles prevent agent prcoess exit on sigterm by @longcw in https://github.com/livekit/agents/pull/4194
* fix race condition when stop background audio play handle by @longcw in https://github.com/livekit/agents/pull/4197
* Inference: Rename fallback model name param by @adrian-cowham in https://github.com/livekit/agents/pull/4202
* fix inworld punctuation handling by @cshape in https://github.com/livekit/agents/pull/4215
* ensure playback_segments_count is consistent in the audio output chain by @longcw in https://github.com/livekit/agents/pull/4211
* clear _q_updated right after await to avoid race conditions by @longcw in https://github.com/livekit/agents/pull/4209
* fix blocked send task in liveavatar plugin by @tinalenguyen in https://github.com/livekit/agents/pull/4214
* feat(warm-transfer): add sip_number parameter for outbound caller ID by @Hormold in https://github.com/livekit/agents/pull/4216
* add keep alive task for liveavatar plugin by @tinalenguyen in https://github.com/livekit/agents/pull/4231
* turn-detector: remove english model from readme by @lwestn in https://github.com/livekit/agents/pull/4233
* feature: GPT-5.2 support by @pushkar-nurix in https://github.com/livekit/agents/pull/4235
* disable interruptions for agent greeting by @hiroshihorie in https://github.com/livekit/agents/pull/4223
* AGT-2328: negative threshold in silero by @chenghao-mou in https://github.com/livekit/agents/pull/4228
* fix: image token usage not being tracked for OpenAI realtime models by @GigaDroid in https://github.com/livekit/agents/pull/4238
* check for type key in _ensure_strict_json_schema by @tinalenguyen in https://github.com/livekit/agents/pull/4236
* fix(openai): migrate realtime STT to GA API by @Hormold in https://github.com/livekit/agents/pull/4232
* fix(google): handle content blocking and generation failures by @davidzhao in https://github.com/livekit/agents/pull/4249
* feat(google): update default realtime model to gemini-2.5 12-2025 by @davidzhao in https://github.com/livekit/agents/pull/4248
* fix generate_reply timeout for gemini by @longcw in https://github.com/livekit/agents/pull/4237
* fix: correct sample count calculation in AudioByteStream.flush() for multi-channel audio by @darshankparmar in https://github.com/livekit/agents/pull/4245
* Fix AudioByteStream buffer slicing performance issue by @darshankparmar in https://github.com/livekit/agents/pull/4247
* AGT-2317: wait for user silence before speaking by @chenghao-mou in https://github.com/livekit/agents/pull/4102
* Add Proactive Session Recycling for Nova Sonic resume by @kachenjr in https://github.com/livekit/agents/pull/4250
* feat(tts): Support dynamic base URL updates via update_options in Rime TTS plugin by @gokuljs in https://github.com/livekit/agents/pull/4257
* Auto assign reviewer for internal PRs by @chenghao-mou in https://github.com/livekit/agents/pull/4230
* fix(aws): set aws_credentials_identity_resolver as value instead of tuple by @davidzhao in https://github.com/livekit/agents/pull/4259
* pybind fix path by @theomonnom in https://github.com/livekit/agents/pull/4260
* blingfire: add version constraints for pybind by @jjmaldonis in https://github.com/livekit/agents/pull/3913
* Revert "pybind fix path" by @theomonnom in https://github.com/livekit/agents/pull/4261
* unnecessary pybind11 version constraints by @theomonnom in https://github.com/livekit/agents/pull/4262
* fix team name typo by @theomonnom in https://github.com/livekit/agents/pull/4266
* chore: add `nvidia` optional dependency by @davidzhao in https://github.com/livekit/agents/pull/4264
* livekit-blingfire 1.1.0 & add python 3.14 support by @theomonnom in https://github.com/livekit/agents/pull/4265
* add interruption timeout to SpeechHandle by @longcw in https://github.com/livekit/agents/pull/4218
* chore: skip summarize test when OpenAI API key is missing by @davidzhao in https://github.com/livekit/agents/pull/4278
* catch client response error by @chenghao-mou in https://github.com/livekit/agents/pull/4254
* fix gemini realtime generate_reply during response is playing by @longcw in https://github.com/livekit/agents/pull/4273
* add pause support for ConsoleAudioOutput by @longcw in https://github.com/livekit/agents/pull/4251
* xAI plugin by @tinalenguyen in https://github.com/livekit/agents/pull/4284

## New Contributors
* @somoore made their first contribution in https://github.com/livekit/agents/pull/4177
* @plumber0 made their first contribution in https://github.com/livekit/agents/pull/4189
* @pushkar-nurix made their first contribution in https://github.com/livekit/agents/pull/4235
* @hiroshihorie made their first contribution in https://github.com/livekit/agents/pull/4223
* @GigaDroid made their first contribution in https://github.com/livekit/agents/pull/4238
* @darshankparmar made their first contribution in https://github.com/livekit/agents/pull/4245

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.6...livekit-agents@1.3.7
</Release>

<Release version="livekit-agents@1.3.6" date="December 3, 2025" published="2025-12-03T19:12:03.000Z" url="https://github.com/livekit/agents/releases/tag/livekit-agents%401.3.6">
## What's Changed
* more readable logs rendering by @theomonnom in https://github.com/livekit/agents/pull/4093
* fix prometheus multiprocess mode by @theomonnom in https://github.com/livekit/agents/pull/4108
* fix RecorderAudioOutput sample rate by @longcw in https://github.com/livekit/agents/pull/4098
* refresh jwt used in otlp requests before it expires by @paulwe in https://github.com/livekit/agents/pull/4107
* AGT-2269 insert silence during pauses for RecorderIO by @chenghao-mou in https://github.com/livekit/agents/pull/4088
* fix agent_turn and agent_speaking spans hierarchy & add agent_turn for tts_task by @longcw in https://github.com/livekit/agents/pull/4100
* Replaced deprecated amazon-transcribe SDK with new aws-sdk-transcribe-streaming by @pabloFuente in https://github.com/livekit/agents/pull/4111
* make generation_id private in SpeechHandle by @longcw in https://github.com/livekit/agents/pull/4124
* skip sig masking on windows by @chenghao-mou in https://github.com/livekit/agents/pull/4119
* Fix realtime compatibility with aws-sdk-bedrock-runtime 0.2.0 upgrade by @kachenjr in https://github.com/livekit/agents/pull/4134
* Enable Deepgram Nova-3 multilingual keyterm prompting by @jkroll-deepgram in https://github.com/livekit/agents/pull/4136
* copy logger levels configuration to job processes by @theomonnom in https://github.com/livekit/agents/pull/4139
* fix log text overflow by @theomonnom in https://github.com/livekit/agents/pull/4141
* fix logging.getChildren for py<3.12 by @theomonnom in https://github.com/livekit/agents/pull/4142
* fix traceback print when using LogQueueHandler by @longcw in https://github.com/livekit/agents/pull/4128
* add on_enter to AgentTask blocked_tasks if it's not done by @longcw in https://github.com/livekit/agents/pull/4113
* add WarmTransferTask  by @longcw in https://github.com/livekit/agents/pull/4126
* fix(anthropic): use passed client parameter instead of always creating new one (fixes #4129) by @joshiayush in https://github.com/livekit/agents/pull/4143
* heygen liveavatar plugin by @tinalenguyen in https://github.com/livekit/agents/pull/3948
* Gradium integration. by @LaurentMazare in https://github.com/livekit/agents/pull/4150
* Include mip_opt_out to batch deepgram STT requests by @eliooooooot in https://github.com/livekit/agents/pull/4144
* Inworld TTS Update by @cshape in https://github.com/livekit/agents/pull/4112
* Elevenlabs include pronunciation dictionary locators by @arvindvs in https://github.com/livekit/agents/pull/4097
* use log filter for log_context_fields by @longcw in https://github.com/livekit/agents/pull/4146
* fix: `AgentHandoff` unable to serialize and then deserialize [ONE-LINER] by @slado122 in https://github.com/livekit/agents/pull/4160
* fix OpenTelemetry breaking changes by @theomonnom in https://github.com/livekit/agents/pull/4162
* livekit-agents 1.3.6 by @theomonnom in https://github.com/livekit/agents/pull/4163

## New Contributors
* @pabloFuente made their first contribution in https://github.com/livekit/agents/pull/4111
* @jkroll-deepgram made their first contribution in https://github.com/livekit/agents/pull/4136
* @joshiayush made their first contribution in https://github.com/livekit/agents/pull/4143
* @LaurentMazare made their first contribution in https://github.com/livekit/agents/pull/4150
* @cshape made their first contribution in https://github.com/livekit/agents/pull/4112
* @arvindvs made their first contribution in https://github.com/livekit/agents/pull/4097
* @slado122 made their first contribution in https://github.com/livekit/agents/pull/4160

**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.3.5...livekit-agents@1.3.6
</Release>

<Pagination page="1" total-pages="6" total-items="102" next="https://releases.sh/livekit/livekit-agents-python.md?page=2" />
