livekit-agents@1.7.0

livekit/agentslivekit-agents@1.7.0Aug 20, 2026by tinalenguyen

AI Summary

Major release introducing PII Redaction Support for Agent Observability and Expressive Mode for voice agents to enable natural prosody and emotion.

Key Highlights

  • PII Redaction support for Agent Observability (semantic redaction and filtering)
  • Expressive Mode allowing voice agents to speak with natural prosody and emotion
  • New Bland TTS plugin
  • Updated Spatius avatar plugin
  • Cerebras model support

Breaking Changes

  • Renamed sensitive trace attributes and log fields for PII redaction support. Update observability queries accordingly.

New Features

  • PII Redaction
  • Expressive Mode
  • Bland TTS
  • Spatius avatar
  • Cerebras support

Full Release Notes

# Introducing PII Redaction Support
This release adds PII redaction support for [Agent Observability](https://livekit.com/products/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`:

```python
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](https://docs.livekit.io/agents/models/tts/expressive/) and the [blog post ](https://livekit.com/blog/making-voice-agents-sound-human-with-expressive-mode)for more information.

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

## New Contributors
* @pawlowskipawel made their first contribution in https://github.com/livekit/agents/pull/6746
* @kevtae made their first contribution in https://github.com/livekit/agents/pull/6751
* @dubbl-a made their first contribution in https://github.com/livekit/agents/pull/6833
* @Bortlesboat made their first contribution in https://github.com/livekit/agents/pull/6568
* @Excelius-Wang made their first contribution in https://github.com/livekit/agents/pull/6912
* @ssgutierrez42 made their first contribution in https://github.com/livekit/agents/pull/6850
* @kamalmostafa made their first contribution in https://github.com/livekit/agents/pull/6046
* @YusufKeremKezer made their first contribution in https://github.com/livekit/agents/pull/6910
* @naszzz made their first contribution in https://github.com/livekit/agents/pull/6773

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