Providers
Google (Gemini)
Das Google-Plugin bietet Zugriff auf Gemini-Modelle über Google AI Studio sowie Bilderzeugung, Medienverständnis (Bild/Audio/Video), Text-to-Speech und Websuche über Gemini Grounding.
- Provider:
google - Authentifizierung:
GEMINI_API_KEYoderGOOGLE_API_KEY - API: Google Gemini API
- Runtime-Option:
agents.defaults.agentRuntime.id: "google-gemini-cli"verwendet Gemini CLI OAuth wieder, während Modellreferenzen kanonisch alsgoogle/*beibehalten werden.
Erste Schritte
Wählen Sie Ihre bevorzugte Authentifizierungsmethode aus und folgen Sie den Einrichtungsschritten.
API-Schlüssel
Am besten geeignet für: Standardzugriff auf die Gemini API über Google AI Studio.
Onboarding ausführen
openclaw onboard --auth-choice gemini-api-key
Oder übergeben Sie den Schlüssel direkt:
openclaw onboard --non-interactive \
--mode local \
--auth-choice gemini-api-key \
--gemini-api-key "$GEMINI_API_KEY"
Standardmodell festlegen
{
agents: {
defaults: {
model: { primary: "google/gemini-3.1-pro-preview" },
},
},
}
Prüfen, ob das Modell verfügbar ist
openclaw models list --provider google
Gemini CLI (OAuth)
Am besten geeignet für: Wiederverwendung einer vorhandenen Gemini CLI-Anmeldung über PKCE OAuth statt eines separaten API-Schlüssels.
Gemini CLI installieren
Der lokale gemini-Befehl muss auf PATH verfügbar sein.
# Homebrew
brew install gemini-cli
# or npm
npm install -g @google/gemini-cli
OpenClaw unterstützt sowohl Homebrew-Installationen als auch globale npm-Installationen, einschließlich gängiger Windows-/npm-Layouts.
Über OAuth anmelden
openclaw models auth login --provider google-gemini-cli --set-default
Prüfen, ob das Modell verfügbar ist
openclaw models list --provider google
- Standardmodell:
google/gemini-3.1-pro-preview - Runtime:
google-gemini-cli - Alias:
gemini-cli
Die Gemini API-Modell-ID von Gemini 3.1 Pro ist gemini-3.1-pro-preview. OpenClaw akzeptiert die kürzere Form google/gemini-3.1-pro als praktischen Alias und normalisiert sie vor Provider-Aufrufen.
Umgebungsvariablen:
OPENCLAW_GEMINI_OAUTH_CLIENT_IDOPENCLAW_GEMINI_OAUTH_CLIENT_SECRET
(Oder die GEMINI_CLI_*-Varianten.)
google-gemini-cli/*-Modellreferenzen sind Legacy-Kompatibilitätsaliasse. Neue
Konfigurationen sollten google/*-Modellreferenzen plus die Runtime google-gemini-cli
verwenden, wenn sie lokale Gemini CLI-Ausführung wünschen.
Fähigkeiten
| Fähigkeit | Unterstützt |
|---|---|
| Chat-Vervollständigungen | Ja |
| Bilderzeugung | Ja |
| Musikgenerierung | Ja |
| Text-to-Speech | Ja |
| Echtzeit-Sprache | Ja (Google Live API) |
| Bildverständnis | Ja |
| Audiotranskription | Ja |
| Videoverständnis | Ja |
| Websuche (Grounding) | Ja |
| Denken/Reasoning | Ja (Gemini 2.5+ / Gemini 3+) |
| Gemma 4-Modelle | Ja |
Websuche
Der gebündelte gemini-Websuche-Provider verwendet Gemini Google Search Grounding.
Konfigurieren Sie einen dedizierten Suchschlüssel unter plugins.entries.google.config.webSearch,
oder lassen Sie ihn nach GEMINI_API_KEY models.providers.google.apiKey wiederverwenden:
{
plugins: {
entries: {
google: {
config: {
webSearch: {
apiKey: "AIza...", // optional if GEMINI_API_KEY or models.providers.google.apiKey is set
baseUrl: "https://generativelanguage.googleapis.com/v1beta", // falls back to models.providers.google.baseUrl
model: "gemini-2.5-flash",
},
},
},
},
},
}
Die Reihenfolge der Anmeldedaten ist zuerst der dedizierte webSearch.apiKey, dann GEMINI_API_KEY,
dann models.providers.google.apiKey. webSearch.baseUrl ist optional und
für Operator-Proxys oder kompatible Gemini API-Endpunkte vorgesehen; wenn ausgelassen,
verwendet die Gemini-Websuche models.providers.google.baseUrl wieder. Siehe
Gemini-Suche für das providerspezifische Tool-Verhalten.
Bilderzeugung
Der gebündelte google-Provider für Bilderzeugung verwendet standardmäßig
google/gemini-3.1-flash-image-preview.
- Unterstützt außerdem
google/gemini-3-pro-image-preview - Erzeugen: bis zu 4 Bilder pro Anfrage
- Bearbeitungsmodus: aktiviert, bis zu 5 Eingabebilder
- Geometriesteuerungen:
size,aspectRatioundresolution
So verwenden Sie Google als Standard-Provider für Bilder:
{
agents: {
defaults: {
imageGenerationModel: {
primary: "google/gemini-3.1-flash-image-preview",
},
},
},
}
Videogenerierung
Das gebündelte google-Plugin registriert außerdem Videogenerierung über das gemeinsame
Tool video_generate.
- Standard-Videomodell:
google/veo-3.1-fast-generate-preview - Modi: Text-zu-Video, Bild-zu-Video und Referenzabläufe mit einem einzelnen Video
- Unterstützt
aspectRatio,resolutionundaudio - Aktuelle Begrenzung der Dauer: 4 bis 8 Sekunden
So verwenden Sie Google als Standard-Provider für Videos:
{
agents: {
defaults: {
videoGenerationModel: {
primary: "google/veo-3.1-fast-generate-preview",
},
},
},
}
Musikgenerierung
Das gebündelte google-Plugin registriert außerdem Musikgenerierung über das gemeinsame
Tool music_generate.
- Standard-Musikmodell:
google/lyria-3-clip-preview - Unterstützt außerdem
google/lyria-3-pro-preview - Prompt-Steuerungen:
lyricsundinstrumental - Ausgabeformat: standardmäßig
mp3, pluswavaufgoogle/lyria-3-pro-preview - Referenzeingaben: bis zu 10 Bilder
- Sitzungsbasierte Läufe werden über den gemeinsamen Task-/Statusablauf entkoppelt, einschließlich
action: "status"
So verwenden Sie Google als Standard-Provider für Musik:
{
agents: {
defaults: {
musicGenerationModel: {
primary: "google/lyria-3-clip-preview",
},
},
},
}
Text-to-Speech
Der gebündelte google-Sprach-Provider verwendet den Gemini API TTS-Pfad mit
gemini-3.1-flash-tts-preview.
- Standardstimme:
Kore - Authentifizierung:
messages.tts.providers.google.apiKey,models.providers.google.apiKey,GEMINI_API_KEYoderGOOGLE_API_KEY - Ausgabe: WAV für reguläre TTS-Anhänge, Opus für Sprachnotiz-Ziele, PCM für Talk/Telefonie
- Sprachnotiz-Ausgabe: Google PCM wird als WAV verpackt und mit
ffmpegin 48 kHz Opus transkodiert
Googles Batch-Gemini-TTS-Pfad gibt generiertes Audio in der abgeschlossenen
generateContent-Antwort zurück. Für gesprochene Unterhaltungen mit niedrigster Latenz verwenden Sie den
Google-Echtzeit-Sprach-Provider auf Basis der Gemini Live API statt Batch-
TTS.
So verwenden Sie Google als Standard-TTS-Provider:
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
audioProfile: "Speak professionally with a calm tone.",
},
},
},
},
}
Gemini API TTS verwendet natürlichsprachliches Prompting zur Stilsteuerung. Setzen Sie
audioProfile, um dem gesprochenen Text einen wiederverwendbaren Stil-Prompt voranzustellen. Setzen Sie
speakerName, wenn Ihr Prompt-Text auf einen benannten Sprecher verweist.
Gemini API TTS akzeptiert außerdem ausdrucksstarke Audio-Tags in eckigen Klammern im Text,
wie [whispers] oder [laughs]. Um Tags aus der sichtbaren Chat-Antwort herauszuhalten,
sie aber an TTS zu senden, setzen Sie sie in einen [[tts:text]]...[[/tts:text]]-
Block:
Here is the clean reply text.
[[tts:text]][whispers] Here is the spoken version.[[/tts:text]]
Echtzeit-Sprache
Das gebündelte google-Plugin registriert einen Echtzeit-Sprach-Provider auf Basis der
Gemini Live API für Backend-Audio-Bridges wie Voice Call und Google Meet.
| Einstellung | Konfigurationspfad | Standardwert |
|---|---|---|
| Modell | plugins.entries.voice-call.config.realtime.providers.google.model |
gemini-2.5-flash-native-audio-preview-12-2025 |
| Stimme | ...google.voice |
Kore |
| Temperatur | ...google.temperature |
(nicht gesetzt) |
| VAD-Startempfindlichkeit | ...google.startSensitivity |
(nicht gesetzt) |
| VAD-Endempfindlichkeit | ...google.endSensitivity |
(nicht gesetzt) |
| Stilledauer | ...google.silenceDurationMs |
(nicht gesetzt) |
| Aktivitätsbehandlung | ...google.activityHandling |
Google-Standardwert, start-of-activity-interrupts |
| Turn-Abdeckung | ...google.turnCoverage |
Google-Standardwert, only-activity |
| Automatische VAD deaktivieren | ...google.automaticActivityDetectionDisabled |
false |
| Sitzungsfortsetzung | ...google.sessionResumption |
true |
| Kontextkomprimierung | ...google.contextWindowCompression |
true |
| API-Schlüssel | ...google.apiKey |
Fällt auf models.providers.google.apiKey, GEMINI_API_KEY oder GOOGLE_API_KEY zurück |
Beispiel für die Voice Call-Echtzeitkonfiguration:
{
plugins: {
entries: {
"voice-call": {
enabled: true,
config: {
realtime: {
enabled: true,
provider: "google",
providers: {
google: {
model: "gemini-2.5-flash-native-audio-preview-12-2025",
voice: "Kore",
activityHandling: "start-of-activity-interrupts",
turnCoverage: "only-activity",
},
},
},
},
},
},
},
}
Führen Sie für die Live-Verifizierung durch Maintainer
OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts aus.
Der Google-Abschnitt prägt dieselbe eingeschränkte Live-API-Token-Form, die von Control
UI Talk verwendet wird, öffnet den Browser-WebSocket-Endpunkt, sendet die anfängliche Setup-Nutzlast
und wartet auf setupComplete.
Erweiterte Konfiguration
Direkte Wiederverwendung des Gemini-Caches
Bei direkten Gemini-API-Ausführungen (api: "google-generative-ai") übergibt OpenClaw
ein konfiguriertes cachedContent-Handle an Gemini-Anfragen.
- Konfigurieren Sie Parameter pro Modell oder global entweder mit
cachedContentoder dem Legacy-Parametercached_content - Wenn beide vorhanden sind, hat
cachedContentVorrang - Beispielwert:
cachedContents/prebuilt-context - Die Cache-Treffer-Nutzung von Gemini wird aus dem Upstream-Wert
cachedContentTokenCountin OpenClawcacheReadnormalisiert
{
agents: {
defaults: {
models: {
"google/gemini-2.5-pro": {
params: {
cachedContent: "cachedContents/prebuilt-context",
},
},
},
},
},
}
Hinweise zur JSON-Nutzung der Gemini CLI
Bei Verwendung des OAuth-Providers google-gemini-cli normalisiert OpenClaw
die JSON-Ausgabe der CLI wie folgt:
- Antworttext stammt aus dem CLI-JSON-Feld
response. - Die Nutzung fällt auf
statszurück, wenn die CLIusageleer lässt. stats.cachedwird in OpenClawcacheReadnormalisiert.- Wenn
stats.inputfehlt, leitet OpenClaw Eingabe-Tokens ausstats.input_tokens - stats.cachedab.
Umgebungs- und Daemon-Einrichtung
Wenn der Gateway als Daemon ausgeführt wird (launchd/systemd), stellen Sie sicher, dass GEMINI_API_KEY
für diesen Prozess verfügbar ist (zum Beispiel in ~/.openclaw/.env oder über
env.shellEnv).