github livekit/agents livekit-agents@1.7.0
@livekit/agents@1.7.0

3 hours ago

Introducing PII Redaction Support

This release adds PII redaction support for Agent Observability. It semantically redacts detected entities from chat history and audio recordings. It also filters sensitive data from logs and traces while retaining useful diagnostic context.

To support this feature, we renamed sensitive trace attributes and log fields emitted by the framework. If your third-party observability queries depend on these names, update them when you upgrade.

Introducing Expressive Mode

Expressive mode allows voice agents to speak with natural prosody and emotion. Speech delivery is determined by emotion tags generated from the context of the conversation. Enable expressive mode in your AgentSession:

from livekit.agents import AgentSession, inference

session = AgentSession(
stt=inference.STT(model="deepgram/nova-3", language="multi"),
llm=inference.LLM(model="google/gemma-4-31b-it"),
tts=inference.TTS(model="fishaudio/s2.1-pro", voice="b347db033a6549378b48d00acb0d06cd"),
expressive=True,
# ... vad, turn_detection
)

See the documentation and the blog post for more information.

What's Changed

  • ci: bump gh-action-pypi-publish for metadata 2.5 support by @u9g in #6836
  • ci: pin the publish action to a commit, not a tag object by @longcw in #6837
  • fix(elevenlabs): send keyterms on the realtime STT WebSocket by @pawlowskipawel in #6746
  • fix: emit completed tool events after interruption by @chenghao-mou in #6823
  • (expressive example): update readme by @tinalenguyen in #6829
  • fix: preserve Cartesia inference timestamp spacing by @chenghao-mou in #6848
  • fix(openai): fail generate_reply fast on conversation_already_has_act… by @ByteMaster-1 in #6818
  • fix(voice): answer every tool call by @longcw in #6785
  • fix: preserve adaptive interruption across tool calls by @chenghao-mou in #6564
  • chore(deps): update github actions (major) by @renovate[bot] in #6395
  • feat(spatius): forward avatar session extra params, update spatius to 1.0.5 by @3DRX in #6878
  • fix(voice): keep the turn transcript when the tts sends no word timings by @biztex in #6704
  • fix(voice): keep transcript pacing speed nonzero for syllable-free segments by @kevtae in #6751
  • fix(voice): capture the full on_enter output when starting with capture_run by @biztex in #6872
  • fix(audio): check AudioArrayBuffer frame size after resampling by @longcw in #6879
  • fix(telemetry): log a warning when the audio recording can't be read at upload time by @dubbl-a in #6833
  • fix(tokenize): include the last character in the final sentence span by @uuzzrm in #6866
  • fix(telemetry): report cached input tokens on LLM spans by @Panmax in #6852
  • feat(expressive): allow dynamic updates via Agent and update_options by @tinalenguyen in #6886
  • plugins/phonic: support built-in tools via phonic_tools + configs_for_tools by @arunwpm-work in #6853
  • feat: correlate inference requests with session ids by @chenghao-mou in #6863
  • fix(llm): preserve provider events on restart by @Bortlesboat in #6568
  • fix(agents): omit separator for empty exception details by @u9g in #6894
  • fix: wait for final user turn during close by @chenghao-mou in #6897
  • chore: bump local inference to 0.2.7 by @chenghao-mou in #6892
  • docs: fix typos in healthcare example by @Excelius-Wang in #6912
  • feat(ultravox): support server-side external TTS voices via externalVoice by @ssgutierrez42 in #6850
  • fix(cli): restore terminal settings on console exit by @kamalmostafa in #6046
  • fix: prevent wait_for_idle cancellation from poisoning user turns by @Excelius-Wang in #6913
  • fix(tts): include supported encodings in RuntimeError message by @YusufKeremKezer in #6910
  • fix: place Gemini realtime user turns before replies by @chenghao-mou in #6914
  • fix(rime): remove Arcana model support by @naszzz in #6773
  • feat(bland): BTTS ws integration by @rv-blandai in #6752
  • feat(telemetry): tag content-bearing trace and log keys with lk.pii. for redaction AGT-3074 by @chenghao-mou in #6356
  • fix(proto): one ChatItem serializer that carries every declared field by @u9g in #6756
  • livekit-agents@1.7.0 by @github-actions[bot] in #6928

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.6.10...livekit-agents@1.7.0

Don't miss a new agents release

NewReleases is sending notifications on new releases.