Providers
Google (Gemini)
Plugin Google zapewnia dostęp do modeli Gemini przez Google AI Studio, a także generowanie obrazów, rozumienie multimediów (obrazów/dźwięku/wideo), zamianę tekstu na mowę i wyszukiwanie w internecie za pośrednictwem Gemini Grounding.
- Dostawca:
google - Uwierzytelnianie:
GEMINI_API_KEYlubGOOGLE_API_KEY - API: Google Gemini API
- Opcja środowiska uruchomieniowego:
agentRuntime.id: "google-gemini-cli"ponownie wykorzystuje OAuth Gemini CLI, zachowując kanoniczne odwołania do modeli w postacigoogle/*.
Pierwsze kroki
Należy wybrać preferowaną metodę uwierzytelniania i wykonać odpowiednie czynności konfiguracyjne.
Klucz API
Najlepsze zastosowanie: standardowy dostęp do Gemini API przez Google AI Studio.
Uzyskanie klucza API
Bezpłatny klucz można utworzyć w Google AI Studio.
Uruchomienie wdrażania
openclaw onboard --auth-choice gemini-api-keyKlucz można też przekazać bezpośrednio:
openclaw onboard --non-interactive \ --mode local \ --auth-choice gemini-api-key \ --gemini-api-key "$GEMINI_API_KEY"Ustawienie modelu domyślnego
{ agents: { defaults: { model: { primary: "google/gemini-3.1-pro-preview" }, }, },}Sprawdzenie dostępności modelu
openclaw models list --provider googleGemini CLI (OAuth)
Najlepsze zastosowanie: logowanie przy użyciu konta Google przez OAuth Gemini CLI zamiast osobnego klucza API.
Instalacja Gemini CLI
Lokalne polecenie gemini musi być dostępne w PATH.
# Homebrewbrew install gemini-cli # lub npmnpm install -g @google/gemini-cliOpenClaw obsługuje zarówno instalacje Homebrew, jak i globalne instalacje npm, w tym typowe układy katalogów Windows/npm.
Logowanie przez OAuth
openclaw models auth login --provider google-gemini-cli --set-defaultSprawdzenie dostępności modelu
openclaw models list --provider google- Model domyślny:
google/gemini-3.1-pro-preview - Środowisko uruchomieniowe:
google-gemini-cli - Alias:
gemini-cli
Identyfikator modelu Gemini API dla Gemini 3.1 Pro to gemini-3.1-pro-preview. OpenClaw dla wygody akceptuje krótszy alias google/gemini-3.1-pro i normalizuje go przed wywołaniami dostawcy.
Zmienne środowiskowe:
OPENCLAW_GEMINI_OAUTH_CLIENT_ID/GEMINI_CLI_OAUTH_CLIENT_IDOPENCLAW_GEMINI_OAUTH_CLIENT_SECRET/GEMINI_CLI_OAUTH_CLIENT_SECRET
Automatyczne wykrywanie podczas wdrażania wyświetla istniejące logowanie Gemini CLI, ale nigdy nie testuje go automatycznie, ponieważ Gemini CLI nie udostępnia sondy niewymagającej narzędzi. Aby kontynuować, należy wybrać OAuth Gemini CLI lub klucz Gemini API.
Odwołania do modeli google-gemini-cli/* są starszymi aliasami zgodności. Nowe
konfiguracje powinny używać odwołań do modeli google/* oraz środowiska uruchomieniowego google-gemini-cli,
jeśli wymagane jest lokalne wykonywanie Gemini CLI.
Możliwości
| Możliwość | Obsługa |
|---|---|
| Uzupełnianie czatu | Tak |
| Generowanie obrazów | Tak |
| Generowanie muzyki | Tak |
| Zamiana tekstu na mowę | Tak |
| Głos w czasie rzeczywistym | Tak (Google Live API) |
| Rozumienie obrazów | Tak |
| Transkrypcja dźwięku | Tak |
| Rozumienie wideo | Tak |
| Wyszukiwanie w internecie (Grounding) | Tak |
| Myślenie/rozumowanie | Tak (Gemini 2.5+ / Gemini 3+) |
| Modele Gemma 4 | Tak |
Wyszukiwanie w internecie
Dołączony dostawca wyszukiwania w internecie gemini korzysta z ugruntowywania wyników Google Search przez Gemini.
Należy skonfigurować osobny klucz wyszukiwania w plugins.entries.google.config.webSearch
lub pozwolić mu ponownie wykorzystać models.providers.google.apiKey po GEMINI_API_KEY:
{ plugins: { entries: { google: { config: { webSearch: { apiKey: "AIza...", // opcjonalne, jeśli ustawiono GEMINI_API_KEY lub models.providers.google.apiKey baseUrl: "https://generativelanguage.googleapis.com/v1beta", // w razie braku używa models.providers.google.baseUrl model: "gemini-2.5-flash", }, }, }, }, },}Kolejność pierwszeństwa poświadczeń to osobne webSearch.apiKey, następnie GEMINI_API_KEY,
a potem models.providers.google.apiKey. webSearch.baseUrl jest opcjonalne i
służy do obsługi serwerów proxy operatora lub zgodnych punktów końcowych Gemini API; jeśli je pominięto,
wyszukiwanie Gemini w internecie ponownie wykorzystuje models.providers.google.baseUrl. Zachowanie narzędzia właściwe dla tego dostawcy opisano w sekcji
Wyszukiwanie Gemini.
Generowanie obrazów
Dołączony dostawca generowania obrazów google domyślnie używa
google/gemini-3.1-flash-image-preview.
- Obsługuje także
google/gemini-3-pro-image-preview - Generowanie: maksymalnie 4 obrazy na żądanie
- Tryb edycji: włączony, maksymalnie 5 obrazów wejściowych
- Sterowanie geometrią:
size,aspectRatioiresolution
Aby używać Google jako domyślnego dostawcy obrazów:
{ agents: { defaults: { imageGenerationModel: { primary: "google/gemini-3.1-flash-image-preview", }, }, },}Generowanie wideo
Dołączony plugin google rejestruje również generowanie wideo za pośrednictwem współdzielonego
narzędzia video_generate.
- Domyślny model wideo:
google/veo-3.1-fast-generate-preview - Tryby: zamiana tekstu na wideo, obrazu na wideo oraz przepływy z pojedynczym wideo referencyjnym
- Obsługuje
aspectRatio(16:9,9:16) iresolution(720P,1080P); Veo obecnie nie obsługuje wyjściowego dźwięku - Obsługiwane czasy trwania: 4, 6 lub 8 sekund (inne wartości są zaokrąglane do najbliższej dozwolonej wartości)
Aby używać Google jako domyślnego dostawcy wideo:
{ agents: { defaults: { videoGenerationModel: { primary: "google/veo-3.1-fast-generate-preview", }, }, },}Generowanie muzyki
Dołączony plugin google rejestruje również generowanie muzyki za pośrednictwem współdzielonego
narzędzia music_generate.
- Domyślny model muzyczny:
google/lyria-3-clip-preview - Obsługuje także
google/lyria-3-pro-preview - Sterowanie poleceniem:
lyricsiinstrumental - Format wyjściowy: domyślnie
mp3, a takżewavwgoogle/lyria-3-pro-preview - Dane referencyjne: maksymalnie 10 obrazów
- Uruchomienia korzystające z sesji są odłączane za pośrednictwem współdzielonego przepływu zadań/stanu, w tym
action: "status"
Aby używać Google jako domyślnego dostawcy muzyki:
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}Zamiana tekstu na mowę
Dołączony dostawca mowy google korzysta ze ścieżki TTS Gemini API z
gemini-3.1-flash-tts-preview.
- Domyślny głos:
Kore - Uwierzytelnianie:
messages.tts.providers.google.apiKey,models.providers.google.apiKey,GEMINI_API_KEYlubGOOGLE_API_KEY - Dane wyjściowe: WAV dla zwykłych załączników TTS, Opus dla docelowych wiadomości głosowych, PCM dla Talk/telefonii
- Dane wyjściowe wiadomości głosowych: format PCM Google jest opakowywany jako WAV i transkodowany do Opus 48 kHz za pomocą
ffmpeg
Wsadowa ścieżka Gemini TTS firmy Google zwraca wygenerowany dźwięk w ukończonej
odpowiedzi generateContent. W rozmowach głosowych wymagających najmniejszych opóźnień należy użyć
dostawcy głosu Google działającego w czasie rzeczywistym, opartego na Gemini Live API, zamiast wsadowego
TTS.
Aby używać Google jako domyślnego dostawcy TTS:
{ messages: { tts: { auto: "always", provider: "google", providers: { google: { model: "gemini-3.1-flash-tts-preview", speakerVoice: "Kore", audioProfile: "Mów profesjonalnie i spokojnym tonem.", }, }, }, },}TTS Gemini API używa poleceń w języku naturalnym do sterowania stylem. Należy ustawić
audioProfile, aby dodać wielokrotnie używane polecenie stylu przed wypowiadanym tekstem. Należy ustawić
speakerName, jeśli tekst polecenia odwołuje się do nazwanego mówcy.
TTS Gemini API akceptuje również ekspresyjne znaczniki dźwiękowe w nawiasach kwadratowych,
takie jak [whispers] lub [laughs]. Aby znaczniki nie pojawiały się w widocznej odpowiedzi czatu,
ale były wysyłane do TTS, należy umieścić je w bloku [[tts:text]]...[[/tts:text]]:
Oto czysty tekst odpowiedzi. [[tts:text]][whispers] Oto wersja mówiona.[[/tts:text]]Głos w czasie rzeczywistym
Dołączony plugin google rejestruje dostawcę głosu w czasie rzeczywistym opartego na
Gemini Live API dla mostów dźwiękowych zaplecza, takich jak Voice Call i Google Meet.
| Ustawienie | Ścieżka konfiguracji | Wartość domyślna |
|---|---|---|
| Model | plugins.entries.voice-call.config.realtime.providers.google.model |
gemini-3.1-flash-live-preview |
| Głos | ...google.voice |
Kore |
| Temperatura | ...google.temperature |
(nie ustawiono) |
| Czułość początku VAD | ...google.startSensitivity |
(nie ustawiono) |
| Czułość końca VAD | ...google.endSensitivity |
(nie ustawiono) |
| Czas trwania ciszy | ...google.silenceDurationMs |
(nie ustawiono) |
| Obsługa aktywności | ...google.activityHandling |
Wartość domyślna Google, start-of-activity-interrupts |
| Zakres tury | ...google.turnCoverage |
Wartość domyślna Google, audio-activity-and-all-video |
| Wyłączenie automatycznego VAD | ...google.automaticActivityDetectionDisabled |
false |
| Wznawianie sesji | ...google.sessionResumption |
true |
| Kompresja kontekstu | ...google.contextWindowCompression |
true |
| Klucz API | ...google.apiKey |
W razie braku używa models.providers.google.apiKey, GEMINI_API_KEY lub GOOGLE_API_KEY |
Przykładowa konfiguracja połączeń głosowych w czasie rzeczywistym:
{ plugins: { entries: { "voice-call": { enabled: true, config: { realtime: { enabled: true, provider: "google", providers: { google: { model: "gemini-3.1-flash-live-preview", speakerVoice: "Kore", activityHandling: "start-of-activity-interrupts", turnCoverage: "audio-activity-and-all-video", }, }, }, }, }, }, },}W celu weryfikacji na żywo przez opiekuna należy uruchomić
OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts.
Test dymny obejmuje również ścieżki zaplecza/WebRTC OpenAI; etap Google generuje token
Live API o takim samym ograniczonym formacie, jakiego używa funkcja rozmowy w interfejsie Control UI, otwiera punkt końcowy
WebSocket przeglądarki, wysyła początkowy ładunek konfiguracji i oczekuje na
setupComplete.
Konfiguracja zaawansowana
Bezpośrednie ponowne użycie pamięci podręcznej Gemini
W przypadku bezpośrednich uruchomień Gemini API (api: "google-generative-ai") OpenClaw
przekazuje skonfigurowany uchwyt cachedContent do żądań Gemini.
- Parametry dla modelu lub parametry globalne można skonfigurować za pomocą
cachedContentalbo starszegocached_content - Parametry z bardziej szczegółowego zakresu (poziom modelu zamiast globalnego) zawsze mają pierwszeństwo.
Jeśli oba klucze są ustawione w tym samym zakresie, pierwszeństwo ma
cached_content. Aby uniknąć niespodziewanego działania, należy używać tylko jednego klucza w każdym zakresie. - Przykładowa wartość:
cachedContents/prebuilt-context - Użycie wynikające z trafienia w pamięci podręcznej Gemini jest normalizowane do OpenClaw
cacheReadz nadrzędnegocachedContentTokenCount
{ agents: { defaults: { models: { "google/gemini-2.5-pro": { params: { cachedContent: "cachedContents/prebuilt-context", }, }, }, }, },}Uwagi dotyczące używania Gemini CLI
Podczas korzystania z dostawcy OAuth google-gemini-cli OpenClaw domyślnie używa danych wyjściowych
Gemini CLI stream-json i normalizuje użycie na podstawie końcowego
ładunku stats. Starsze nadpisania --output-format json nadal korzystają z
parsera JSON.
- Tekst odpowiedzi przesyłanej strumieniowo pochodzi ze zdarzeń asystenta
message. - W przypadku starszych danych wyjściowych JSON tekst odpowiedzi pochodzi z pola
responsew danych JSON interfejsu CLI. - Jeśli interfejs CLI pozostawi
usagepuste, użycie wykorzystuje zastępczostats. stats.cachedjest normalizowane do OpenClawcacheRead.- Jeśli brakuje
stats.input, OpenClaw wylicza tokeny wejściowe zstats.input_tokens - stats.cached.
Konfiguracja środowiska i demona
Jeśli Gateway działa jako demon (launchd/systemd), należy upewnić się, że GEMINI_API_KEY
jest dostępne dla tego procesu (na przykład w ~/.openclaw/.env lub za pośrednictwem
env.shellEnv).
Powiązane
Wybieranie dostawców, odwołań do modeli i sposobu przełączania awaryjnego.
Wspólne parametry narzędzia do obrazów i wybór dostawcy.
Wspólne parametry narzędzia do wideo i wybór dostawcy.
Wspólne parametry narzędzia do muzyki i wybór dostawcy.