这是indexloc提供的服务,不要输入任何密码
Skip to content

Releases: livekit/agents

livekit-plugins-google@0.11.5

24 Jul 00:32
10e4a61
Compare
Choose a tag to compare

Patch Changes

livekit-agents@1.2.2

24 Jul 13:22
9defafa
Compare
Choose a tag to compare

Note

livekit-agents 1.2 introduced many new features. You can check out the changelog here.

New features

SpeechHandle

Waiting for the playout to finish inside the function tools could lead to deadlocks. In this version, an error will be raised instead. To wait for the assistant's spoken response prior of executing a tool, use RunContext.wait_for_playout.

@function_tool
async def my_function_tool(self, ctx: RunContext):
    await ctx.wait_for_playout() # wait for the assistant's spoken response that started the execution of this tool

False interruption detection

We're now emitting an event when the agent got interrupted, but we didn't receive any transcript. (Likely a false interruption).
This is useful to "re-regenerate" an assistant reply so the agent doesn't seems stuck.

@session.on("agent_false_interruption")
def on_false_interruption(ev: AgentFalseInterruptionEvent):
    session.generate_reply(instructions=ev.extra_instructions or NOT_GIVEN)

Initial conversation recording

We have begun implementing conversation recording directly within the Worker. Currently, it can be accessed using the console subcommand. A future update will provide API to use this in production.

python3 examples/drive-thru/drivethru_agent.py console --record

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.2.0...livekit-agents@1.2.2

livekit-agents@1.2.0

17 Jul 18:34
f7672c0
Compare
Choose a tag to compare

New Features

Evals & Testing:

You can now perform turn-by-turn evaluations on your agent interactions. Here's an example of how to validate expected behaviors:

result = await sess.run(user_input="Can I book an appointment? What's your availability for the next two weeks?")
result.expect.skip_next_event_if(type="message", role="assistant")
result.expect.next_event().is_function_call(name="list_available_slots")
result.expect.next_event().is_function_call_output()
await result.expect.next_event().is_message(role="assistant").judge(llm, intent="must confirm no availability")

Check out these practical examples: drive-thru, frontdesk

Documentation: https://docs.livekit.io/agents/build/testing/

Preemptive Generation

This feature enables speculative initiation of LLM and TTS processing before the user's turn concludes, significantly reducing response latency by overlapping processing with user audio. Disabled by default:

session = AgentSession(..., preemptive_generation=True)

Enhanced End-of-Turn (EOU) Detection

The end-of-turn model has been refined to reduce sensitivity to punctuation and better handle multilingual scenarios, notably improving Hindi language support.
'
Documentation: https://docs.livekit.io/agents/build/turns/turn-detector/#supported-languages

OpenTelemetry Integration

Agent now supports tracing for LLM/TTS requests and user callbacks using OpenTelemetry. See LangFuse example for detailed implementation.

Experimental Agent Tasks

AgentTask is a new experimental subset feature allowing agents to terminate upon achieving specific goals. You can await AgentTasks directly in your workflows:

@function_tool
async def schedule_appointment(self, ctx: RunContext[Userdata], slot_id: str) -> str:
    # Attempts to retrieve user email, allowing multiple agent-user interactions
    email_result = await beta.workflows.GetEmailTask(chat_ctx=self.chat_ctx)

Half-Duplex Pipeline

Combine Gemini or OpenAI's realtime STT/LLM with a separate TTS engine, optimizing your agent's voice interactions:

session = AgentSession(
    llm=openai.realtime.RealtimeModel(modalities=["text"]),
    # Alternatively: llm=google.beta.realtime.RealtimeModel(modalities=[Modality.TEXT]),
    tts=openai.TTS(voice="ash"),
)

View the complete example.

Documentation: https://docs.livekit.io/agents/integrations/realtime/#separate-tts

Improved Transcription Synchronization

Align transcripts accurately with speech outputs from TTS engines such as Cartesia and 11labs for improved synchronization:

session = AgentSession(..., use_tts_aligned_transcript=True)

Refer to the complete example.

Documentation: https://docs.livekit.io/agents/build/text/#tts-aligned-transcriptions

Upgraded Tokenization Engine

Transitioned to the Blingfire tokenization engine from the previous naive implementation, significantly enhancing handling and accuracy for multiple languages.

Complete changelog

Read more

livekit-agents@1.1.7

15 Jul 21:21
65380ea
Compare
Choose a tag to compare

What's Changed

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.1.6...livekit-agents@1.1.7

livekit-agents@1.1.6

10 Jul 17:32
f55d62c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.1.5...livekit-agents@1.1.6

livekit-agents@1.1.5

30 Jun 16:23
975cf0d
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.1.4...livekit-agents@1.1.5

livekit-agents@1.1.4

25 Jun 13:24
1efbe33
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.1.2...livekit-agents@1.1.4

livekit-agents@1.1.2

20 Jun 14:22
19f8dfe
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.1.0...livekit-agents@1.1.2

livekit-agents@1.1.0

10 Jun 11:19
eb017ef
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.0.23...livekit-agents@1.1.0

livekit-agents@1.0.23

29 May 20:18
3df5afc
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/livekit/agents/compare/livekit-agents@1.0.22...livekit-agents@1.0.23