Providers

Google (Gemini)

Plugin Google zapewnia dostęp do modeli Gemini za pośrednictwem Google AI Studio, a także generowanie obrazów, analizę multimediów (obrazów/dźwięku/wideo), syntezę mowy oraz wyszukiwanie w internecie przy użyciu Gemini Grounding.

  • Dostawca: google
  • Uwierzytelnianie: GEMINI_API_KEY lub GOOGLE_API_KEY
  • API: Google Gemini API
  • Opcja środowiska uruchomieniowego: agentRuntime.id: "google-gemini-cli" ponownie wykorzystuje uwierzytelnianie OAuth Gemini CLI, zachowując kanoniczne odwołania do modeli w postaci google/*.

Pierwsze kroki

Wybierz preferowaną metodę uwierzytelniania i wykonaj czynności konfiguracyjne.

Klucz API

Najlepsze zastosowanie: standardowy dostęp do Gemini API za pośrednictwem Google AI Studio.

  • Uruchom wdrażanie

    bash
    openclaw onboard --auth-choice gemini-api-key

    Możesz też przekazać klucz bezpośrednio:

    bash
    openclaw onboard --non-interactive \  --mode local \  --auth-choice gemini-api-key \  --gemini-api-key "$GEMINI_API_KEY"
  • Ustaw model domyślny

    json5
    {  agents: {    defaults: {      model: { primary: "google/gemini-3.1-pro-preview" },    },  },}
  • Sprawdź dostępność modelu

    bash
    openclaw models list --provider google
  • Gemini CLI (OAuth)

    Najlepsze zastosowanie: ponowne wykorzystanie istniejącego logowania Gemini CLI za pośrednictwem OAuth z PKCE zamiast osobnego klucza API.

  • Zainstaluj Gemini CLI

    Lokalne polecenie gemini musi być dostępne w PATH.

    bash
    # Homebrewbrew install gemini-cli # lub npmnpm install -g @google/gemini-cli

    OpenClaw obsługuje zarówno instalacje Homebrew, jak i globalne instalacje npm, w tym typowe układy katalogów Windows/npm.

  • Zaloguj się przez OAuth

    bash
    openclaw models auth login --provider google-gemini-cli --set-default
  • Sprawdź dostępność modelu

    bash
    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. Dla wygody OpenClaw 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_ID
    • OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET / GEMINI_CLI_OAUTH_CLIENT_SECRET

    Odwołania do modeli google-gemini-cli/* są starszymi aliasami zgodności. Nowe konfiguracje powinny używać odwołań do modeli google/* wraz ze środowiskiem uruchomieniowym google-gemini-cli, jeśli wymagają lokalnego wykonywania przez Gemini CLI.

    Możliwości

    Możliwość Obsługa
    Uzupełnianie konwersacji Tak
    Generowanie obrazów Tak
    Generowanie muzyki Tak
    Synteza mowy Tak
    Głos w czasie rzeczywistym Tak (Google Live API)
    Analiza obrazów Tak
    Transkrypcja dźwięku Tak
    Analiza wideo Tak
    Wyszukiwanie (Grounding) Tak
    Myślenie/rozumowanie Tak (Gemini 2.5+ / Gemini 3+)
    Modele Gemma 4 Tak

    Wyszukiwanie w internecie

    Dołączony dostawca wyszukiwania internetowego gemini korzysta z osadzania wyników Google Search w Gemini. Skonfiguruj dedykowany klucz wyszukiwania w plugins.entries.google.config.webSearch lub pozwól mu ponownie wykorzystać models.providers.google.apiKey po GEMINI_API_KEY:

    json5
    {  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 dedykowane webSearch.apiKey, następnie GEMINI_API_KEY, a potem models.providers.google.apiKey. Ustawienie 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 zostanie pominięte, wyszukiwanie internetowe Gemini ponownie wykorzysta models.providers.google.baseUrl. Informacje o zachowaniu narzędzia właściwym dla tego dostawcy znajdziesz 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 również google/gemini-3-pro-image-preview
    • Generowanie: do 4 obrazów na żądanie
    • Tryb edycji: włączony, do 5 obrazów wejściowych
    • Ustawienia geometrii: size, aspectRatio i resolution

    Aby używać Google jako domyślnego dostawcy obrazów:

    json5
    {  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ólnego narzędzia video_generate.

    • Domyślny model wideo: google/veo-3.1-fast-generate-preview
    • Tryby: tekst na wideo, obraz na wideo oraz przepływy z pojedynczym wideo referencyjnym
    • Obsługuje aspectRatio (16:9, 9:16) i resolution (720P, 1080P); obecnie Veo nie obsługuje wyjściowego dźwięku
    • Obsługiwany czas 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:

    json5
    {  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ólnego narzędzia music_generate.

    • Domyślny model muzyczny: google/lyria-3-clip-preview
    • Obsługuje również google/lyria-3-pro-preview
    • Ustawienia promptu: lyrics i instrumental
    • Format wyjściowy: domyślnie mp3, a ponadto wav w przypadku google/lyria-3-pro-preview
    • Dane referencyjne: do 10 obrazów
    • Przebiegi korzystające z sesji są odłączane za pośrednictwem wspólnego przepływu zadań i stanu, w tym action: "status"

    Aby używać Google jako domyślnego dostawcy muzyki:

    json5
    {  agents: {    defaults: {      musicGenerationModel: {        primary: "google/lyria-3-clip-preview",      },    },  },}

    Synteza mowy

    Dołączony dostawca mowy google korzysta ze ścieżki TTS Gemini API z modelem gemini-3.1-flash-tts-preview.

    • Domyślny głos: Kore
    • Uwierzytelnianie: messages.tts.providers.google.apiKey, models.providers.google.apiKey, GEMINI_API_KEY lub GOOGLE_API_KEY
    • Dane wyjściowe: WAV dla zwykłych załączników TTS, Opus dla docelowych wiadomości głosowych, PCM dla funkcji Talk/telefonii
    • Dane wyjściowe wiadomości głosowych: dane PCM Google są opakowywane w WAV i transkodowane do formatu Opus 48 kHz za pomocą ffmpeg

    Wsadowa ścieżka Gemini TTS firmy Google zwraca wygenerowany dźwięk w ukończonej odpowiedzi generateContent. Aby uzyskać najmniejsze opóźnienia w rozmowach głosowych, użyj 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:

    json5
    {  messages: {    tts: {      auto: "always",      provider: "google",      providers: {        google: {          model: "gemini-3.1-flash-tts-preview",          speakerVoice: "Kore",          audioProfile: "Speak professionally with a calm tone.",        },      },    },  },}

    TTS Gemini API wykorzystuje prompty w języku naturalnym do sterowania stylem. Ustaw audioProfile, aby poprzedzić wypowiadany tekst promptem stylu wielokrotnego użytku. Ustaw speakerName, gdy tekst promptu odwołuje się do nazwanego mówcy.

    TTS Gemini API akceptuje również ekspresyjne znaczniki dźwiękowe w nawiasach kwadratowych w tekście, takie jak [whispers] lub [laughs]. Aby znaczniki nie pojawiały się w widocznej odpowiedzi na czacie, ale były wysyłane do TTS, umieść je w bloku [[tts:text]]...[[/tts:text]]:

    text
    Here is the clean reply text. [[tts:text]][whispers] Here is the spoken version.[[/tts:text]]

    Głos w czasie rzeczywistym

    Dołączony plugin google rejestruje dostawcę głosu działającego w czasie rzeczywistym, opartego na Gemini Live API, przeznaczonego dla backendowych mostów audio, 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:

    json5
    {  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",              },            },          },        },      },    },  },}

    Aby przeprowadzić weryfikację na żywo przez opiekuna, uruchom 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; część Google generuje token Live API o takim samym ograniczonym formacie jak używany przez funkcję rozmowy w Control UI, otwiera punkt końcowy WebSocket w przeglądarce, 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.

    • Skonfiguruj parametry dla modelu lub parametry globalne za pomocą cachedContent albo starszego klucza cached_content.
    • Parametry z bardziej szczegółowego zakresu (poziom modelu zamiast poziomu globalnego) zawsze mają pierwszeństwo. W tym samym zakresie, jeśli ustawiono oba klucze, pierwszeństwo ma cached_content. Używaj tylko jednego klucza w każdym zakresie, aby uniknąć niespodzianek.
    • Przykładowa wartość: cachedContents/prebuilt-context
    • Wykorzystanie trafień pamięci podręcznej Gemini jest normalizowane do cacheRead OpenClaw na podstawie nadrzędnej wartości cachedContentTokenCount.
    json5
    {  agents: {    defaults: {      models: {        "google/gemini-2.5-pro": {          params: {            cachedContent: "cachedContents/prebuilt-context",          },        },      },    },  },}
    Uwagi dotyczące użycia Gemini CLI

    Podczas korzystania z dostawcy OAuth google-gemini-cli OpenClaw domyślnie używa danych wyjściowych stream-json Gemini CLI i normalizuje użycie na podstawie końcowego ładunku stats. Starsze nadpisania --output-format json nadal korzystają z parsera JSON.

    • Strumieniowany tekst odpowiedzi pochodzi ze zdarzeń message asystenta.
    • W przypadku starszych danych wyjściowych JSON tekst odpowiedzi pochodzi z pola response w danych JSON CLI.
    • Jeśli CLI pozostawi usage puste, użycie jest pobierane z stats.
    • stats.cached jest normalizowane do cacheRead OpenClaw.
    • Jeśli brakuje stats.input, OpenClaw wyznacza liczbę tokenów wejściowych jako stats.input_tokens - stats.cached.
    Konfiguracja środowiska i demona

    Jeśli Gateway działa jako demon (launchd/systemd), upewnij się, że GEMINI_API_KEY jest dostępny dla tego procesu (na przykład w ~/.openclaw/.env lub za pośrednictwem env.shellEnv).

    Powiązane materiały

    Was this useful?
    On this page

    On this page