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_KEY lub GOOGLE_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 postaci google/*.

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

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

    Klucz można też przekazać bezpośrednio:

    bash
    openclaw onboard --non-interactive \  --mode local \  --auth-choice gemini-api-key \  --gemini-api-key "$GEMINI_API_KEY"
  • Ustawienie modelu domyślnego

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

    bash
    openclaw models list --provider google
  • Gemini 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.

    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.

  • Logowanie przez OAuth

    bash
    openclaw models auth login --provider google-gemini-cli --set-default
  • Sprawdzenie dostępności 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. 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_ID
    • OPENCLAW_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:

    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 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, 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ół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) i resolution (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:

    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ół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: lyrics i instrumental
    • Format wyjściowy: domyślnie mp3, a także wav w google/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:

    json5
    {  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_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 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:

    json5
    {  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]]:

    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:

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

    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ą cachedContent albo starszego cached_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 cacheRead z nadrzędnego cachedContentTokenCount
    json5
    {  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 response w danych JSON interfejsu CLI.
    • Jeśli interfejs CLI pozostawi usage puste, użycie wykorzystuje zastępczo stats.
    • stats.cached jest normalizowane do OpenClaw cacheRead.
    • Jeśli brakuje stats.input, OpenClaw wylicza tokeny wejściowe z stats.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

    Was this useful?
    On this page

    On this page