Hello,
I’m using Gemini Live with LiveKit for a voice app, and as part of my onboarding process I get the agent to call tools to set the user’s profile. However, it seems these calls are asynchronous and often the agent will speak a second time after a tool call is completed. In the Gemini Live docs, there seems to be a way to make tool calls syncronous, is there a way I can enable that through use with LiveKit? Is there another solution to this?
Cheers
Yes. With Gemini 2.5 Live, tool calls are handled asynchronously, so the model may produce a follow-up utterance after your tool completes, which sounds like it “speaks twice.”
If you switch to gemini-3.1-flash-live-preview, asynchronous function calling is not supported — the model pauses and waits for your tool response before continuing, effectively making tool calls synchronous from your app’s perspective. This behavior is described in the Gemini 3.1 compatibility section of the Gemini Live API plugin docs.
Alternatively, you can move profile updates into provider tools (executed server-side in a single pass) or restructure onboarding to avoid mid-turn tool responses.