In diesem Dokument wird beschrieben, wie Sie verschiedene Funktionen von Gemini-Modellen konfigurieren, wenn Sie die Gemini Live API verwenden. Sie können die Toolnutzung wie Funktionsaufrufe und Fundierung sowie Live-Audiofunktionen wie empathische Dialoge und proaktive Audioeingabe konfigurieren.
Toolnutzung konfigurieren
Mehrere Tools sind mit verschiedenen Versionen von Gemini Live API-unterstützten Modellen kompatibel, darunter:
Wenn Sie ein bestimmtes Tool in zurückgegebenen Antworten verwenden möchten, fügen Sie den Namen des Tools in die Liste tools ein, wenn Sie das Modell initialisieren. In den folgenden Abschnitten finden Sie Beispiele für die Verwendung der einzelnen integrierten Tools in Ihrem Code.
Wichtig:Die Gemini API unterstützt nicht die Kombination von Suchtools (z. B. googleSearch) mit Nicht-Suchtools (z. B. Funktionsaufrufe oder das Tool retrieval der Gemini Enterprise Agent Platform RAG Engine) in derselben Einrichtungsanfrage. Mehrere Tools werden nur unterstützt, wenn es sich ausschließlich um Suchtools handelt.
Funktionsaufrufe
Verwenden Sie Funktionsaufrufe, wenn das Modell mit externen Systemen oder APIs interagieren soll, die Sie verwalten. Verwenden Sie diese Funktion für Aufgaben wie das Prüfen einer Datenbank, das Senden einer E-Mail oder die Interaktion mit einer benutzerdefinierten API. Die Gemini Live API unterstützt asynchrone Funktionsaufrufe. Weitere Informationen finden Sie unter Asynchrone Funktionsaufrufe mit Gemini Live API.
Das Modell generiert einen Funktionsaufruf und Ihre Anwendung führt den Code aus und sendet die Ergebnisse zurück an das Modell.
Alle Funktionen müssen zu Beginn der Sitzung deklariert werden, indem Sie Tooldefinitionen als Teil der Nachricht LiveConnectConfig senden.
Wenn Sie Funktionsaufrufe aktivieren möchten, fügen Sie function_declarations in der Einrichtungsnachricht in die Liste tools ein:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, ) # Initialize the client. client = genai.Client( enterprise=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-3.8-live" def get_current_weather(location: str) -> str: """Example method. Returns the current weather. Args: location: The city and state, e.g. San Francisco, CA """ weather_map: dict[str, str] = { "Boston, MA": "snowing", "San Francisco, CA": "foggy", "Seattle, WA": "raining", "Austin, TX": "hot", "Chicago, IL": "windy", } return weather_map.get(location, "unknown") async def main(): config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[get_current_weather], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "Get the current weather in Boston." print(f"Input: {text_input}") await session.send_realtime_input(text=text_input) ) async for message in session.receive(): if message.tool_call: function_responses = [] for function_call in message.tool_call.function_calls: print(f"FunctionCall > {function_call}") # Execute the tool and send the response back to the model. result = get_current_weather(**function_call.args) function_responses.append( { "name": function_call.name, "response": {"result": result}, "id": function_call.id, } ) if function_responses: await session.send_tool_response(function_responses=function_responses) if __name__ == "__main__": asyncio.run(main())
Beispiele für die Verwendung von Funktionsaufrufen in Systemanweisungen finden Sie im Beispiel für Best Practices.
MCP-Tools (Model Context Protocol)
Das Google Gen AI SDK führt MCP-Toolaufrufe (Model Context Protocol) in Gemini Live API-Sitzungen nicht automatisch aus. Wenn Sie MCP-Tools in einer Gemini Live API-Sitzung verwenden möchten, haben Sie folgende Möglichkeiten:
- MCP-Toolaufrufe direkt verwalten: Wenn Sie das Google Gen AI SDK
direkt verwenden, muss Ihre Anwendung die MCP-Clientsitzung verwalten, Tool
aufrufe ausführen, wenn das Modell dies anfordert, und die Ergebnisse mit
send_tool_responsezurückgeben. - Das Agent Development Kit (ADK) verwenden: Verwenden Sie die
McpToolsetKlasse im ADK, die eine integrierte MCP Integration für die Gemini Live API bietet. Das ADK erkennt automatisch Tools von Ihrem MCP-Server, konvertiert ihre Schemas in Funktionsdeklarationen, führt MCP-Toolaufrufe während des bidirektionalen Streams aus und sendet die Toolantworten zurück an das Modell.
MCP-Tools mit dem ADK verwenden
Mit dem ADK können Sie MCP-Tools mit der Gemini Live API verbinden. Gehen Sie dazu so vor:
Installieren Sie das Paket
google-adkmit dem Extramcp:pip install "google-adk[mcp]"Erstellen Sie ein Skript mit dem Namen
live_mcp_example.py, dasMcpToolsetmit Ihrem MCP-Dienst verbindet. Verwenden Sie dazuStreamableHTTPConnectionParamsund streamen Sie Ereignisse mitrunner.run_live().Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-ID.MCP_SERVER_URL: URL Ihres streamfähigen HTTP-MCP-Servers (z. B.http://127.0.0.1:8765/mcp).
import asyncio import contextlib import os from google.adk.agents import Agent, LiveRequestQueue, RunConfig from google.adk.agents.run_config import StreamingMode from google.adk.runners import InMemoryRunner from google.adk.tools.mcp_tool import McpToolset, StreamableHTTPConnectionParams from google.genai import types os.environ.setdefault("GOOGLE_GENAI_USE_ENTERPRISE", "TRUE") os.environ.setdefault("GOOGLE_CLOUD_PROJECT", "PROJECT_ID") os.environ.setdefault("GOOGLE_CLOUD_LOCATION", "us-central1") async def main() -> None: # 1. Connect to the Streamable HTTP MCP service mcp_toolset = McpToolset( connection_params=StreamableHTTPConnectionParams( url="MCP_SERVER_URL", ) ) # 2. Create the ADK Agent with a Gemini Live model and the MCP toolset agent = Agent( name="mcp_live_agent", model="gemini-3.8-live", instruction="You are a helpful assistant. Use the provided MCP tools when needed.", tools=[mcp_toolset], ) runner = InMemoryRunner(agent=agent, app_name="mcp_live_demo") session = await runner.session_service.create_session( app_name="mcp_live_demo", user_id="user_1", ) # 3. Configure bidirectional streaming and send a prompt live_request_queue = LiveRequestQueue() run_config = RunConfig( streaming_mode=StreamingMode.BIDI, response_modalities=[types.Modality.AUDIO], output_audio_transcription=types.AudioTranscriptionConfig(), ) live_request_queue.send_content( types.Content( role="user", parts=[types.Part.from_text(text="What is the weather in Paris?")], ) ) # 4. Stream Live events (ADK automatically executes MCP tools) awaiting_post_tool_response = False saw_function_response = False has_model_output = False try: async with contextlib.aclosing( runner.run_live( user_id="user_1", session_id=session.id, live_request_queue=live_request_queue, run_config=run_config, ) ) as live_events: async for event in live_events: for call in event.get_function_calls(): print(f"[MCP Tool Call] {call.name}({call.args})") awaiting_post_tool_response = True saw_function_response = False has_model_output = False for resp in event.get_function_responses(): print(f"[MCP Tool Response] {resp.name} -> {resp.response}") saw_function_response = True if event.output_transcription and event.output_transcription.text: if not awaiting_post_tool_response or saw_function_response: has_model_output = True awaiting_post_tool_response = False if event.output_transcription.finished: print(f"[Transcript] {event.output_transcription.text}") # Wait for the final response turn after tool execution completes if event.turn_complete: if awaiting_post_tool_response or not has_model_output: continue live_request_queue.close() break finally: await mcp_toolset.close() await runner.close() if __name__ == "__main__": asyncio.run(main())
Fundierung mit der Google Suche
Verwenden Sie Fundierung mit der Google Suche, wenn das Modell genauere und sachlichere Antworten geben soll, indem es sie mit überprüfbaren Informationsquellen verknüpft. Verwenden Sie diese Funktion für Aufgaben wie die Websuche.
Im Gegensatz zu Funktionsaufrufen wird das Abrufen von Informationen automatisch durch die serverseitige Integration verarbeitet.
Wenn Sie die Fundierung mit der Google Suche aktivieren möchten, fügen Sie google_search in der Einrichtungsnachricht in die Liste tools ein:
Python
import asyncio from google import genai from google.genai.types import ( Content, LiveConnectConfig, Part, ) # Initialize the client. client = genai.Client( enterprise=True, project="GOOGLE_CLOUD_PROJECT", # Replace with your project ID location="LOCATION", # Replace with your location ) MODEL_ID = "gemini-3.8-live" async def main(): config = LiveConnectConfig( response_modalities=["AUDIO"], tools=[{"google_search": {}}], ) async with client.aio.live.connect( model=MODEL_ID, config=config, ) as session: text_input = "What is the current weather in Toronto, Canada?" print(f"Input: {text_input}") await session.send_realtime_input(text=text_input) async for message in session.receive(): # Consume the messages from the model. # In native audio, the model response is in audio format. pass if __name__ == "__main__": asyncio.run(main())
Empathischen Dialog konfigurieren
Die Konfiguration des empathischen Dialogs ist nur für gemini-live-2.5-flash-native-audio erforderlich. Dieser Abschnitt gilt nicht für gemini-3.8-live.
Wenn Empathischer Dialog aktiviert ist, versucht das Modell, den Tonfall und die emotionalen Äußerungen des Nutzers zu verstehen und darauf zu reagieren.
Wenn Sie den empathischen Dialog aktivieren möchten, setzen Sie enable_affective_dialog in der Einrichtungsnachricht auf true:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], enable_affective_dialog=True, )
Proaktive Audioeingabe konfigurieren
Die Konfiguration der proaktiven Audioeingabe ist nur für gemini-live-2.5-flash-native-audio erforderlich. Die proaktive Audioeingabe ist in gemini-3.8-live enthalten.
Mit der proaktiven Audioeingabe können Sie steuern, wann das Modell antwortet. Sie können Gemini beispielsweise auffordern, nur zu antworten, wenn Sie dazu aufgefordert werden oder wenn bestimmte Themen besprochen werden. Eine Videodemonstration der proaktiven Audioeingabe finden Sie unter Gemini Live API Native Audio Preview.
Wenn Sie die proaktive Audioeingabe aktivieren möchten, konfigurieren Sie das Feld proactivity in der Einrichtungsnachricht und setzen Sie proactive_audio auf true:
Python
config = LiveConnectConfig( response_modalities=["AUDIO"], proactivity=ProactivityConfig(proactive_audio=True), )
Beispiel für eine Unterhaltung
Das folgende Beispiel zeigt, wie eine Unterhaltung mit Gemini über das Kochen aussehen könnte:
Prompt: "You are an AI assistant in Italian cooking; only chime in when the topic is about Italian cooking."
Speaker A: "I really love cooking!" (No response from Gemini.)
Speaker B: "Oh yes, me too! My favorite is French cuisine." (No response from
Gemini.)
Speaker A: "I really like Italian food; do you know how to make a pizza?"
(Italian cooking topic triggers response from Gemini.)
Gemini Live API: "I'd be happy to help! Here's a recipe for a pizza."
Gängige Anwendungsfälle
Bei Verwendung der proaktiven Audioeingabe verhält sich Gemini so:
- Antwortet mit minimaler Latenz: Gemini antwortet, nachdem der Nutzer mit dem Sprechen fertig ist. So werden Unterbrechungen reduziert und Gemini verliert den Kontext nicht, wenn es zu einer Unterbrechung kommt.
- Vermeidet Unterbrechungen: Die proaktive Audioeingabe hilft Gemini, Unterbrechungen durch Hintergrundgeräusche oder externe Gespräche zu vermeiden. Außerdem verhindert sie, dass Gemini antwortet, wenn während einer Unterhaltung externe Gespräche geführt werden.
- Verarbeitet Unterbrechungen: Wenn der Nutzer während einer Antwort von Gemini unterbrechen muss, kann Gemini mit der proaktiven Audioeingabe besser angemessen reagieren (d. h. angemessene Unterbrechungen werden verarbeitet), als wenn ein Nutzer Füllwörter wie äh oder hm verwendet.
- Hört Audio mit: Gemini kann sich eine Audiodatei anhören, die nicht die Stimme des Sprechers enthält, und später in der Unterhaltung Fragen zu dieser Audiodatei beantworten.
Abrechnung
Während Gemini einer Unterhaltung zuhört, werden Audioeingabetokens in Rechnung gestellt.
Für Audioausgabetokens werden nur Kosten berechnet, wenn Gemini antwortet. Wenn Gemini nicht antwortet oder schweigt, werden keine Kosten für Ihre Audioausgabetokens berechnet.
Weitere Informationen finden Sie unter Agent Platform – Preise.
Nächste Schritte
Weitere Informationen zur Verwendung der Gemini Live API finden Sie unter:
- Übersicht über die Gemini Live API
- Referenzhandbuch für die Gemini Live API
- Live-Sitzungen starten und verwalten