Skip to content

livekit-agents@1.8.1

Latest

Choose a tag to compare

@tinalenguyen tinalenguyen released this 10 Sep 21:26
· 1 commit to main since this release
f9b53c3

Duplex Model Support

Speech models that are able to speak and listen simultaneously are now supported via the new DuplexModel class, with OpenAI's GPT-Live model as the first to be implemented.

session = AgentSession(
        llm=GPTLiveModel(
            voice="marin",
            # backend Responses model that handles reasoning and tools
            responses_options={
                "model": "gpt-5.6-luna",
                "instructions": "Use tools when current information is required.",
            },
        ),
    )

Read more about duplex models in our docs.

What's Changed

  • chore: isolate ruff dependencies in ci by @chenghao-mou in #7142
  • fix(telemetry): describe option objects in the session report by @davidzhao in #7127
  • chore: remove commented-out keepalive stub from Deepgram V2 STT by @detail-app[bot] in #7141
  • docs: remove stale example references after examples revamp by @detail-app[bot] in #6402
  • fix(openai): don't replace a TTS prewarm that is still in flight by @omChauhanDev in #7147
  • fix: drain unused adapter metrics streams by @chenghao-mou in #7146
  • fix: drop unused audio forwarding buffer by @chenghao-mou in #7144
  • fix(tests): run the deepgram handshake redaction check in CI by @omChauhanDev in #7152
  • plugins/phonic: add enable_watermarking realtime config option by @arunwpm-work in #7121
  • speechmatics: expose end_of_turn_config and vad_config options by @rrfunde in #6945
  • fix(worker): discard impossible cgroup v2 cpu samples by @longcw in #7113
  • fix(voice): fail remote session requests when transport closes by @EPxiaoma in #7149
  • fix(voice): report played audio across an audio sink swap by @longcw in #6967
  • fix(agents): don't close in-use connections when the pool is invalidated by @Rehansanjay in #7139
  • feat(spatius): warm up region, TLS, and session token at process init by @3DRX in #7025
  • fix(asyncai): invalidate the TTS pool when connection params change by @Rehansanjay in #7132
  • fix(neuphonic): invalidate the TTS pool when connection params change by @Rehansanjay in #7133
  • fix(cartesia): honour api_version on both the pooled socket and the REST header by @Rehansanjay in #7140
  • fix: close temporary speech stream adapters by @chenghao-mou in #7154
  • fix(hotel_receptionist): don't pass simulation runs the grading never checked by @u9g in #6797
  • perf(anam): start engine session with API key by @ao-anam in #6203
  • workflows: spell the value back once the caller refuses a confirmation by @u9g in #6990
  • fix: name VAD in the slow-inference warning by @claude[bot] in #7176
  • feat(meta): add Muse Voice streaming STT plugin by @seyeong-han in #7097
  • fix(voice): report e2e_latency for the first reply after a handoff by @longcw in #7167
  • fix(tests): run the false-interruption resume tests on virtual time by @omChauhanDev in #7179
  • feat(telemetry): flag synchronous code blocking the event loop by @davidzhao in #7128
  • fix(llm): preserve Annotated tool argument metadata by @Kuang-xianxin in #7126
  • fix(google): skip context replay on resumed realtime sessions by @he-yufeng in #6000
  • perf: skip discarded trace payload construction by @chenghao-mou in #7155
  • plugins/phonic: make allow_tool_chaining configurable per tool by @arunwpm-work in #7197
  • feat(openai): add LiveKit inference realtime model by @russellmartin-livekit in #6035
  • feat(plugins-tavus): default to the stock Lucy face when no face or pal is given by @carolin-tavus in #7211
  • feat: add DuplexModel for full-duplex speech models by @longcw in #6677
  • feat: add openai gpt-live duplex support by @chenghao-mou in #7212
  • livekit-agents@1.8.1 by @github-actions[bot] in #7214

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.8.0...livekit-agents@1.8.1