Skip to content

fix(google): replay Gemini realtime tool result across session restart#6481

Open
ByteMaster-1 wants to merge 1 commit into
livekit:mainfrom
ByteMaster-1:fix/gemini-realtime-tool-update
Open

fix(google): replay Gemini realtime tool result across session restart#6481
ByteMaster-1 wants to merge 1 commit into
livekit:mainfrom
ByteMaster-1:fix/gemini-realtime-tool-update

Conversation

@ByteMaster-1

Copy link
Copy Markdown
Contributor

When update_tools() restarts the Gemini Live websocket mid-turn, a function-tool result produced in that window was sent on the closing session and never replayed, so the model never received it and the turn hung. Buffer the tool result while the socket is restarting and replay it via send_tool_response once the new session is established, then nudge the model to continue the turn.
Also decouple generation-completion handling from the model name so newer Live preview models work: track generation state explicitly via _generation_completed, drop trailing model_turn frames that arrive with no active generation, and allow generate_reply() for models without mutable_chat_context (gated on the capability, not a model-name literal). Fixes #6479

@ByteMaster-1
ByteMaster-1 requested a review from a team as a code owner July 18, 2026 14:10
devin-ai-integration[bot]

This comment was marked as resolved.

When update_tools() restarts the Gemini Live websocket mid-turn, a
function-tool result produced in that window was sent on the closing
session and never replayed, so the model never received it and the turn
hung. Buffer the tool result while the socket is restarting and replay it
via send_tool_response once the new session is established, then nudge the
model to continue the turn.
Also decouple generation-completion handling from the model name so newer
Live preview models work: track generation state explicitly via
_generation_completed, drop trailing model_turn frames that arrive with no
active generation, and allow generate_reply() for models without
mutable_chat_context (gated on the capability, not a model-name literal).
Fixes livekit#6479
@ByteMaster-1
ByteMaster-1 force-pushed the fix/gemini-realtime-tool-update branch from b16c719 to 30dea9c Compare July 18, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant