Providers

Google (Gemini)

Google 外掛透過 Google AI Studio 提供 Gemini 模型的存取能力,並支援圖片生成、媒體理解(圖片/音訊/影片)、文字轉語音,以及透過 Gemini Grounding 進行網路搜尋。

  • 提供者:google
  • 驗證:GEMINI_API_KEYGOOGLE_API_KEY
  • API:Google Gemini API
  • 執行階段選項:agentRuntime.id: "google-gemini-cli" 會重複使用 Gemini 命令列介面的 OAuth,同時將模型參照維持為標準的 google/*

開始使用

選擇偏好的驗證方式,並依照設定步驟操作。

API 金鑰

**最適合:**透過 Google AI Studio 使用標準 Gemini API。

  • 執行初始設定

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

    或直接傳入金鑰:

    bash
    openclaw onboard --non-interactive \  --mode local \  --auth-choice gemini-api-key \  --gemini-api-key "$GEMINI_API_KEY"
  • 設定預設模型

    json5
    {  agents: {    defaults: {      model: { primary: "google/gemini-3.1-pro-preview" },    },  },}
  • 確認模型可用

    bash
    openclaw models list --provider google
  • Gemini 命令列介面 (OAuth)

    **最適合:**透過 PKCE OAuth 重複使用現有的 Gemini 命令列介面登入,而不使用個別的 API 金鑰。

  • 安裝 Gemini 命令列介面

    本機的 gemini 命令必須可從 PATH 使用。

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

    OpenClaw 同時支援 Homebrew 安裝與 npm 全域安裝,包括常見的 Windows/npm 目錄配置。

  • 透過 OAuth 登入

    bash
    openclaw models auth login --provider google-gemini-cli --set-default
  • 確認模型可用

    bash
    openclaw models list --provider google
    • 預設模型:google/gemini-3.1-pro-preview
    • 執行階段:google-gemini-cli
    • 別名:gemini-cli

    Gemini 3.1 Pro 的 Gemini API 模型 ID 是 gemini-3.1-pro-preview。為方便使用,OpenClaw 接受較短的 google/gemini-3.1-pro 作為別名,並會在呼叫提供者前將其標準化。

    環境變數:

    • OPENCLAW_GEMINI_OAUTH_CLIENT_ID / GEMINI_CLI_OAUTH_CLIENT_ID
    • OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET / GEMINI_CLI_OAUTH_CLIENT_SECRET

    google-gemini-cli/* 模型參照是舊版相容性別名。若新設定需要在本機執行 Gemini 命令列介面,應使用 google/* 模型參照搭配 google-gemini-cli 執行階段。

    功能

    功能 支援情況
    聊天補全
    圖片生成
    音樂生成
    文字轉語音
    即時語音 是(Google Live API)
    圖片理解
    音訊轉錄
    影片理解
    網路搜尋(Grounding)
    思考/推理 是(Gemini 2.5+/Gemini 3+)
    Gemma 4 模型

    網路搜尋

    內建的 gemini 網路搜尋提供者使用 Gemini Google Search Grounding。 請在 plugins.entries.google.config.webSearch 下設定專用搜尋金鑰, 或讓它在 GEMINI_API_KEY 之後重複使用 models.providers.google.apiKey

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

    憑證優先順序為專用的 webSearch.apiKey,其次是 GEMINI_API_KEY, 最後是 models.providers.google.apiKeywebSearch.baseUrl 為選用項目, 適用於操作人員代理伺服器或相容的 Gemini API 端點;省略時, Gemini 網路搜尋會重複使用 models.providers.google.baseUrl。請參閱 Gemini 搜尋,瞭解此提供者專用工具的行為。

    圖片生成

    內建的 google 圖片生成提供者預設使用 google/gemini-3.1-flash-image-preview

    • 也支援 google/gemini-3-pro-image-preview
    • 生成:每個要求最多 4 張圖片
    • 編輯模式:已啟用,最多 5 張輸入圖片
    • 幾何控制:sizeaspectRatioresolution

    若要將 Google 設為預設圖片提供者:

    json5
    {  agents: {    defaults: {      imageGenerationModel: {        primary: "google/gemini-3.1-flash-image-preview",      },    },  },}

    影片生成

    內建的 google 外掛也會透過共用的 video_generate 工具註冊影片生成功能。

    • 預設影片模型:google/veo-3.1-fast-generate-preview
    • 模式:文字轉影片、圖片轉影片,以及單一影片參照流程
    • 支援 aspectRatio16:99:16)和 resolution720P1080P);Veo 目前不支援音訊輸出
    • 支援的持續時間:4、6 或 8 秒(其他值會調整為最接近的允許值)

    若要將 Google 設為預設影片提供者:

    json5
    {  agents: {    defaults: {      videoGenerationModel: {        primary: "google/veo-3.1-fast-generate-preview",      },    },  },}

    音樂生成

    內建的 google 外掛也會透過共用的 music_generate 工具註冊音樂生成功能。

    • 預設音樂模型:google/lyria-3-clip-preview
    • 也支援 google/lyria-3-pro-preview
    • 提示控制:lyricsinstrumental
    • 輸出格式:預設為 mp3google/lyria-3-pro-preview 另支援 wav
    • 參照輸入:最多 10 張圖片
    • 由工作階段支援的執行會透過共用的工作/狀態流程分離執行,包括 action: "status"

    若要將 Google 設為預設音樂提供者:

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

    文字轉語音

    內建的 google 語音提供者使用 Gemini API TTS 路徑與 gemini-3.1-flash-tts-preview

    • 預設語音:Kore
    • 驗證:messages.tts.providers.google.apiKeymodels.providers.google.apiKeyGEMINI_API_KEYGOOGLE_API_KEY
    • 輸出:一般 TTS 附件使用 WAV、語音訊息目標使用 Opus、通話/電話語音使用 PCM
    • 語音訊息輸出:Google PCM 會封裝為 WAV,並使用 ffmpeg 轉碼為 48 kHz Opus

    Google 的批次 Gemini TTS 路徑會在完成的 generateContent 回應中傳回生成的音訊。若要進行最低延遲的語音對話, 請使用由 Gemini Live API 支援的 Google 即時語音提供者,而不是批次 TTS。

    若要將 Google 設為預設 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.",        },      },    },  },}

    Gemini API TTS 使用自然語言提示來控制風格。設定 audioProfile,即可在要朗讀的文字前加上可重複使用的風格提示。當提示文字提及具名講者時,請設定 speakerName

    Gemini API TTS 也接受文字中的表達性方括號音訊標籤, 例如 [whispers][laughs]。若要避免標籤出現在可見的聊天回覆中, 但仍將其傳送至 TTS,請將它們放在 [[tts:text]]...[[/tts:text]] 區塊內:

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

    即時語音

    內建的 google 外掛會註冊由 Gemini Live API 支援的即時語音提供者,供語音通話和 Google Meet 等後端音訊橋接使用。

    設定 設定路徑 預設值
    模型 plugins.entries.voice-call.config.realtime.providers.google.model gemini-3.1-flash-live-preview
    語音 ...google.voice Kore
    溫度 ...google.temperature (未設定)
    VAD 開始靈敏度 ...google.startSensitivity (未設定)
    VAD 結束靈敏度 ...google.endSensitivity (未設定)
    靜音持續時間 ...google.silenceDurationMs (未設定)
    活動處理 ...google.activityHandling Google 預設值,start-of-activity-interrupts
    輪次涵蓋範圍 ...google.turnCoverage Google 預設值,audio-activity-and-all-video
    停用自動 VAD ...google.automaticActivityDetectionDisabled false
    工作階段恢復 ...google.sessionResumption true
    上下文壓縮 ...google.contextWindowCompression true
    API 金鑰 ...google.apiKey 依序回退至 models.providers.google.apiKeyGEMINI_API_KEYGOOGLE_API_KEY

    Voice Call 即時設定範例:

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

    若要供維護者進行即時驗證,請執行 OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts。 此冒煙測試也涵蓋 OpenAI 後端/WebRTC 路徑;Google 部分會簽發與 Control UI Talk 所使用者相同格式的受限制 Live API 權杖、開啟瀏覽器 WebSocket 端點、 傳送初始設定承載資料,並等待 setupComplete

    進階設定

    直接重複使用 Gemini 快取

    對於直接執行的 Gemini API(api: "google-generative-ai"),OpenClaw 會將已設定的 cachedContent 控制代碼傳遞至 Gemini 請求。

    • 可使用 cachedContent 或舊版 cached_content 設定個別模型或全域參數
    • 較具體範圍的參數(模型層級優先於全域)一律優先。 在同一範圍內,若同時設定兩個鍵,則以 cached_content 優先。 每個範圍只使用一個鍵,以免產生非預期結果。
    • 範例值:cachedContents/prebuilt-context
    • Gemini 快取命中用量會從上游的 cachedContentTokenCount 正規化為 OpenClaw 的 cacheRead
    json5
    {  agents: {    defaults: {      models: {        "google/gemini-2.5-pro": {          params: {            cachedContent: "cachedContents/prebuilt-context",          },        },      },    },  },}
    Gemini 命令列介面使用注意事項

    使用 google-gemini-cli OAuth 供應商時,OpenClaw 預設使用 Gemini 命令列介面的 stream-json 輸出,並從最終的 stats 承載資料正規化用量。 舊版 --output-format json 覆寫仍會使用 JSON 剖析器。

    • 串流回覆文字來自助理的 message 事件。
    • 對於舊版 JSON 輸出,回覆文字來自命令列介面 JSON 的 response 欄位。
    • 當命令列介面的 usage 為空時,用量會回退至 stats
    • stats.cached 會正規化為 OpenClaw 的 cacheRead
    • 若缺少 stats.input,OpenClaw 會以 stats.input_tokens - stats.cached 推導輸入權杖數。
    環境與常駐程式設定

    若閘道以常駐程式(launchd/systemd)執行,請確保該程序可取得 GEMINI_API_KEY (例如放在 ~/.openclaw/.env 中,或透過 env.shellEnv 提供)。

    相關內容

    Was this useful?
    On this page

    On this page