github livekit/agents livekit-agents@1.6.8
@livekit/agents@1.6.8

3 hours ago

What's Changed

Warning

console and dev modes are deprecated in favor of lk agent (#6656). Existing workflows that shell out to python agent.py console or python agent.py dev should migrate to the lk agent CLI.

Important

Inference Ink-2 speech onset fix (#6630) — if you rely on the STT model for interruption detection without a local VAD, upgrade for this fix. Previously the provider's speech-onset signal was delayed until first non-empty interim transcript, so STT interruptions could be delayed on Ink-2 via Inference. Setups with a local VAD in the pipeline are unaffected.

Features

  • feat(core): add user transcription timeout by @chenghao-mou in #6182
  • feat(voice): auto-disable realtime server-side turn detection by @longcw in #6495
  • feat(cli): deprecate console and dev modes in favor of lk agent by @u9g in #6656
  • feat(elevenlabs): support previous_text on realtime STT by @tulanisahil1-beep in #6534
  • feat(smallestai): add endpointing, keyword boosting, format, and sentence timestamps to Smallest STT by @harshitajain165 in #6565
  • (xai stt): expose vad_threshold, smart_turn, smart_turn_timeout, and keyterm params by @ajayarora1235 in #6587
  • (cartesia stt): expose ink-2 turn-detection thresholds and keyterm params by @ajayarora1235 in #6594
  • (inference): type Cartesia turn-detection params in CartesiaOptions by @ajayarora1235 in #6597
  • (inference openai llm): set default reasoning to none by @tinalenguyen in #6609
  • Update Cerebras models and default by @ryanl-cerebras in #6593
  • plugins/phonic: add configs_for_tools for per-tool behavior overrides by @arunwpm-work in #6634
  • (expressive mode): refactor options, remove prompt presets by @tinalenguyen in #6406
  • (expressive mode): register inference replaces presets by @cshape in #6632
  • (expressive mode): add fish audio by @cshape in #6631
  • (expressive mode): remove unconditional bracket stripping by @tinalenguyen in #6590
  • feat(inference): let the gateway mint the avatar worker token by @shawnfeldman in #6575
  • add agent id and deployment resource attrs by @jmcclanahan in #6570
  • feat(deps): relax opentelemetry constraint to >=1.39.0,<2 by @biztex in #6552
  • chore(krisp): adjust default noise_suppression_level by @lukasIO in #6640

Bug Fixes

  • fix: defer interim interruptions to local VAD by @chenghao-mou in #6599
  • fix(voice): retain concrete language for turn detection by @Oxygen56 in #6531
  • fix(openai realtime): treat create_response=False as client-side turn taking by @longcw in #6642
  • fix(inference): report Ink-2 speech onset when the provider detects it by @russellmartin-livekit in #6630
  • fix(inference): don't claim word alignment for models that send none by @russellmartin-livekit in #6629
  • fix(stt): send the turn commit when a flush yields no buffered audio by @chenghao-mou in #6598
  • fix: account for STT fallback transcript alignment by @chenghao-mou in #6633
  • fix(voice): tolerate formatting changes in preemptive transcripts by @swayamg20 in #6667
  • fix(elevenlabs): populate SpeechData.confidence from Scribe logprobs by @captainbanan in #6461
  • fix(sarvam): saaras:v3 does not support the config/prompt message by @biztex in #6617
  • fix(aws): emit streaming STT usage metrics by @swayamg20 in #6653
  • fix(voice): avoid dropping turns and resuming early while a speech is paused by @longcw in #6662
  • fix(voice): place a realtime user turn where the turn began by @u9g in #6616
  • fix(voice): reset tool call created_at at execution start in realtime replies by @u9g in #6615
  • fix(room_io): don't re-fire playback_started on resume by @longcw in #6636
  • fix(google): release the genai client when the realtime session closes by @biztex in #6643
  • voice: strip markdown emphasis in CJK text by @longcw in #6560
  • fix(llm): apply tool defaults across all schema shapes; keep response formats sentinel-free by @u9g in #6444
  • "ValueError: EOF while parsing a string" during tool calls by @AlvaroBalbin in #6382
  • fix(llm): tolerate list-shaped streaming delta content in strip_thinking_tokens by @biztex in #6625
  • fix(workflows): return corrective instructions as tool output instead of generate_reply by @u9g in #6372
  • fix(anthropic): disable vendor SDK retries by default by @axelray-dev in #6604
  • fix(aws): count cached tokens in Bedrock's prompt_tokens by @arthi-arumugam-git in #6663
  • fix: disable AEC warmup for outbound SIP calls by @chenghao-mou in #6608
  • fix(livekit-agents): propagate prewarm through the STT fallback and stream adapters by @fxhxdxd in #6583
  • fix(livekit-agents): forward prewarm to the primary LLM in the fallback adapter by @fxhxdxd in #6582
  • bithuman: skip the SDK dependency on Python 3.14 by @longcw in #6561
  • bithuman: fail closed on Python versions the SDK has no build for by @u9g in #6614
  • fix(examples): pass LemonSlice avatar options via extra_kwargs by @shawnfeldman in #6574
  • fix(evals): avoid overriding judge reasoning by @inickt in #6566

Other

  • Add homepage voice agent example by @ShayneP in #6422
  • docs: correct krisp noise_suppression_level default to 75 by @detail-app[bot] in #6651
  • fix(scripts): type-check for linux on every host OS, matching CI by @biztex in #6623
  • bump livekit sdk to 1.1.14 by @theomonnom in #6654
  • livekit-agents@1.6.8 by @github-actions[bot] in #6659

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.6.7...livekit-agents@1.6.8

Don't miss a new agents release

NewReleases is sending notifications on new releases.