Optimizations
- Run loop blocking detection. The agent now detects code that blocks the
asyncio event loop and surfaces the offending call in Agent Insights, so you
can find stalls without attaching a profiler. - Faster agent startup. The prefork server preloads libraries before
forking, cutting agent startup time by up to 800ms. - Improved agent lifecycle tracing. Traces now cover the full agent
lifecycle, including initial dispatch latency, making it clear where time goes
between a job request and a session going live.
Full changelog
- feat(speechify): send Speechify-Caller-Version attribution header by @luke-speechify in #7166
- fix(llm): reposition mid-conversation instructions for Gemini gateway and Mistral by @L65FREAD in #6591
- feat(voice): log which participant RoomIO links to by @itsnicjohn in #7210
- chore(openai): remove dead VertexModels type alias by @detail-app[bot] in #7223
- fix: refuse to start a DuplexModel under a text simulation by @u9g in #7236
- (deepgram stt): detect a silently dropped socket instead of hanging by @GregHolmes in #7206
- fix(deps): pin anthropic below 1 by @omChauhanDev in #7242
- Add Synthesia interactive-avatar plugin by @swarnimkulkarni-synth in #7216
- feat(telemetry): trace the end-of-turn wait and the turn handoff by @davidzhao in #7130
- feat(telemetry): trace dispatch, startup, and shutdown by @davidzhao in #7131
- feat(telemetry): trace RPC calls made and handled by @davidzhao in #7134
- feat(telemetry): interruption detail, handoff span, fallback events, text input by @davidzhao in #7137
- feat(telemetry): one agent_turn span per speech handle by @davidzhao in #7143
- tests: trace-shape schema and checker by @davidzhao in #7148
- feat(elevenlabs): secondary languages and language detection for realtime STT by @captainbanan in #6902
- fix(aio): drain blocked senders when closing channels by @Kuang-xianxin in #7257
- fix(elevenlabs): remove the duplicated secondary_languages parameter by @longcw in #7262
- fix(duplex): keep late transcripts on the audio they describe by @longcw in #7264
- fix(room_io): frame output audio by a cap, not a fixed size by @longcw in #7261
- fix(cli): prebuffer console playback so realtime-paced audio doesn't underrun by @u9g in #7238
- fix(openai): ignore incomplete and duplicate GPT Live backend tool calls by @kiwijuicer in #7230
- ipc: add room_id to job logging_extra by @andrewnitu in #7241
- feat(rime): support Coda streaming in LiveKit by @naszzz in #6978
- Migrate Speechmatics STT plugin to Agent STT by @Smiljanic19A in #7028
- fix(openai): continue GPT Live only once every backend call is answered by @longcw in #7266
- Revert "fix(room_io): frame output audio by a cap, not a fixed size (#7261)" by @longcw in #7271
- fix(room_io): release a partial frame before the source runs dry by @longcw in #7272
- fix: prevent llm fallback retries after output by @chenghao-mou in #7233
- fix: reject inline tasks during agent handoff by @chenghao-mou in #7268
- (gemini live): add new models by @tinalenguyen in #7289
- livekit-agents@1.8.2 by @github-actions[bot] in #7292
New Contributors
- @L65FREAD made their first contribution in #6591
- @GregHolmes made their first contribution in #7206
- @swarnimkulkarni-synth made their first contribution in #7216
- @kiwijuicer made their first contribution in #7230
- @andrewnitu made their first contribution in #7241
- @Smiljanic19A made their first contribution in #7028
Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.8.1...livekit-agents@1.8.2