Providers

Google (Gemini)

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

  • 供應商:google
  • 驗證:GEMINI_API_KEYGOOGLE_API_KEY
  • API:Google Gemini API
  • 執行階段選項:agents.defaults.agentRuntime.id: "google-gemini-cli" 會重用 Gemini CLI OAuth,同時將模型參照維持為標準的 google/*

開始使用

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

API 金鑰

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

  • 執行初始設定

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

    或直接傳入金鑰:

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

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

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

    最適合: 透過 PKCE OAuth 重用現有 Gemini CLI 登入,而不是使用個別 API 金鑰。

  • 安裝 Gemini CLI

    本機 gemini 指令必須可在 PATH 上使用。

    # Homebrew
    brew install gemini-cli
    
    # or npm
    npm install -g @google/gemini-cli
    

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

  • 透過 OAuth 登入

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

    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
    • OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET

    (或 GEMINI_CLI_* 變體。)

    google-gemini-cli/* 模型參照是舊版相容性別名。新的 設定若要使用本機 Gemini CLI 執行,應使用 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

    {
      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 作為預設圖片供應商:

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

    影片生成

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

    • 預設影片模型:google/veo-3.1-fast-generate-preview
    • 模式:文字轉影片、圖片轉影片,以及單一影片參照流程
    • 支援 aspectRatioresolutionaudio
    • 目前時長限制:4 到 8 秒

    若要將 Google 作為預設影片供應商:

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

    音樂生成

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

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

    若要將 Google 作為預設音樂供應商:

    {
      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,Talk/電話使用 PCM
    • 語音備忘輸出:Google PCM 會包裝為 WAV,並使用 ffmpeg 轉碼為 48 kHz Opus

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

    若要將 Google 作為預設 TTS 供應商:

    {
      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 使用自然語言提示來控制風格。設定 audioProfile 可在朗讀文字前加上可重用的風格提示。當你的提示文字提到具名說話者時,請設定 speakerName

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

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

    即時語音

    內建的 google Plugin 會註冊由 Gemini Live API 支援的即時語音供應商,用於 Voice Call 和 Google Meet 等後端音訊橋接。

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

    語音通話即時設定範例:

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

    如需維護者即時驗證,請執行 OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts。 Google 段落會鑄造與 Control UI Talk 使用的相同受限 Live API 權杖形狀、開啟瀏覽器 WebSocket 端點、傳送初始設定承載, 並等待 setupComplete

    進階設定

    直接重用 Gemini 快取

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

    • 使用 cachedContent 或舊版 cached_content 設定每個模型或全域參數
    • 如果兩者都存在,cachedContent 優先
    • 範例值:cachedContents/prebuilt-context
    • Gemini 快取命中用量會從上游 cachedContentTokenCount 標準化為 OpenClaw cacheRead
    {
      agents: {
        defaults: {
          models: {
            "google/gemini-2.5-pro": {
              params: {
                cachedContent: "cachedContents/prebuilt-context",
              },
            },
          },
        },
      },
    }
    
    Gemini CLI JSON 使用注意事項

    使用 google-gemini-cli OAuth 提供者時,OpenClaw 會依下列方式標準化 CLI JSON 輸出:

    • 回覆文字來自 CLI JSON response 欄位。
    • 當 CLI 讓 usage 保持空白時,用量會退回使用 stats
    • stats.cached 會標準化為 OpenClaw cacheRead
    • 如果缺少 stats.input,OpenClaw 會從 stats.input_tokens - stats.cached 推導輸入權杖。
    環境與精靈設定

    如果 Gateway 作為精靈執行 (launchd/systemd),請確認 GEMINI_API_KEY 可供該程序使用(例如,在 ~/.openclaw/.env 中,或透過 env.shellEnv)。

    相關