Google (Gemini)
Google 插件通过 Google AI Studio 提供对 Gemini 模型的访问,并提供图像生成、媒体理解(图像/音频/视频)、文本转语音以及通过 Gemini Grounding 进行的网络搜索。
- 提供商:
google - 认证:
GEMINI_API_KEY或GOOGLE_API_KEY - API:Google Gemini API
- 托管云提供商:
google-vertex,使用 Google Cloud Application Default Credentials - 可选运行时:
agentRuntime.id: "google-gemini-cli"通过本地 Gemini CLI 运行显式配置的模型
快速开始¶
对于大多数安装,请使用 Google AI Studio API 密钥。当 Gateway 已经运行在托管的 Google Cloud 环境中时,使用 google-vertex。
**推荐用于:** 标准 Gemini API 访问。
1. 获取 API 密钥
在 Google AI Studio 中创建一个免费密钥。
2. 运行入门配置
或直接传入密钥:
openclaw onboard --non-interactive --accept-risk --skip-health \
--mode local \
--auth-choice gemini-api-key \
--gemini-api-key "$GEMINI_API_KEY"
3. 设置默认模型
4. 验证模型可用
Tip
GEMINI_API_KEY 和 GOOGLE_API_KEY 均被接受。请使用您已配置的那个。
配置 API 密钥后,OpenClaw 会从 Gemini models.list API 刷新 Google AI Studio 的文本模型目录。因此,新发布的 Gemini 3 Pro、Flash 和 Flash-Lite 变体会出现在 openclaw models list --provider google 中,而无需等待 OpenClaw 发布。刷新失败时会报告失败,并保留最后一次成功的清单,或在首次成功之前保留内置模型。成功的空响应会清除已发现的模型。Vertex 使用其独立的静态目录。
**仅限高级用法:** 通过已安装的 Gemini CLI 运行规范的 `google/*` 模型,同时保持认证使用受支持的 AI Studio API 密钥路径。
OpenClaw 不提供新的 Gemini CLI OAuth 或 Antigravity OAuth 设置。
[Google 已于 2026 年 6 月 18 日终止消费者 Gemini CLI 的 Login with Google 访问](https://developers.google.com/gemini-code-assist/docs/deprecations/code-assist-individuals),
并且 [Antigravity 条款](https://antigravity.google/terms) 禁止
第三方工具通过 Antigravity OAuth 访问该服务。请改用
AI Studio API 密钥或 Vertex AI。
1. 配置 Google AI Studio
完成第一个选项卡中的 API 密钥设置。在选择 CLI 运行时时,OpenClaw 必须具有可用的 google API 密钥配置。
2. 安装 Gemini CLI
本地 gemini 命令必须在 PATH 中可用。
OpenClaw 同时支持 Homebrew 安装和全局 npm 安装,包括 常见的 Windows/npm 布局。
3. 选择 CLI 运行时
保留规范的 Google 模型引用,并将该模型选择加入 CLI 运行时:
{
agents: {
defaults: {
model: { primary: "google/gemini-3.1-pro-preview" },
models: {
"google/gemini-3.1-pro-preview": {
agentRuntime: { id: "google-gemini-cli" },
},
},
},
},
}
- 运行时:`google-gemini-cli`
- 认证:所选 Google AI Studio API 密钥配置
- 模型引用:规范的 `google/*`
`google-gemini-cli` 是内置 Google 插件注册的 CLI 后端。
有关其 argv、JSONL 方言以及会话和压缩行为,以及所有已注册后端共享的设置,请参阅 [CLI 后端](../gateway/cli-backends.md)。
现有有效的 Gemini CLI OAuth 配置出于兼容性原因仍可执行,
但 OpenClaw 无法创建或修复它们。如果某个配置损坏,请将其替换为
Google AI Studio API 密钥配置。
`google-gemini-cli/*` 引用仍为遗留兼容别名。新配置
应使用 `google/*` 模型引用加上上述显式运行时选择。
Note
google/gemini-3-pro-preview 已于 2026-03-09 退役;请改用 google/gemini-3.1-pro-preview。重新运行 Gemini API 密钥设置(openclaw onboard --auth-choice gemini-api-key 或 openclaw models auth login --provider google)会将过时的已配置默认值重写为当前模型。
功能¶
| 功能 | 支持 |
|---|---|
| 聊天补全 | 是 |
| 图像生成 | 是 |
| 音乐生成 | 是 |
| 文本转语音 | 是 |
| 实时语音 | 是(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-3.6-flash",
},
},
},
},
},
}
凭据优先级依次为专用的 webSearch.apiKey,然后是 GEMINI_API_KEY,再然后是 models.providers.google.apiKey。webSearch.baseUrl 是可选的,用于运营商代理或兼容的 Gemini API 端点;省略时,Gemini 网络搜索会复用 models.providers.google.baseUrl。有关特定于提供方的工具行为,请参阅 Gemini 搜索。
Tip
Gemini 3 模型使用 thinkingLevel,而不是 thinkingBudget。OpenClaw 会将 Gemini 3、Gemini 3.1 以及 gemini-*-latest 别名的推理控制映射到 thinkingLevel,以便默认/低延迟运行不会发送已禁用的 thinkingBudget 值。
/think adaptive 会保留 Google 的动态思考语义,而不是选择一个固定的 OpenClaw 级别。Gemini 3 和 Gemini 3.1 会省略固定的 thinkingLevel,以便 Google 选择级别;Gemini 2.5 会发送 Google 的动态哨兵值 thinkingBudget: -1。
Gemma 4 模型(例如 gemma-4-26b-a4b-it)支持思考模式。对于 Gemma 4,OpenClaw 会将 thinkingBudget 重写为 Google 支持的 thinkingLevel。将 thinking 设置为 off 会保持思考禁用,而不是映射到 MINIMAL。
Gemini 2.5 Pro 仅在思考模式下工作,并拒绝显式的 thinkingBudget: 0;对于 Gemini 2.5 Pro 请求,OpenClaw 会移除该值,而不是发送它。
图像生成¶
内置的 google 图像生成提供方默认使用
google/gemini-3.1-flash-image。
- 还支持
google/gemini-3-pro-image - 生成:每次请求最多 4 张图像
- 编辑模式:已启用,最多 5 张输入图像
- 几何控制:
size、aspectRatio和resolution
要将 Google 用作默认图像提供方:
{
agents: {
defaults: {
mediaModels: {
image: {
primary: "google/gemini-3.1-flash-image",
},
},
},
},
}
Note
有关共享工具参数、提供方选择和故障转移行为,请参阅 图像生成。
视频生成¶
内置的 google 插件还通过共享的
video_generate 工具注册视频生成。
- 默认视频模型:
google/veo-3.1-fast-generate-preview - 模式:文本转视频、图像转视频以及单视频参考流程
- 支持
aspectRatio(16:9、9:16)和resolution(720P、1080P);Veo 目前不支持音频输出 - 支持的时长:4、6 或 8 秒(其他值会吸附到最近的允许值)
要将 Google 用作默认视频提供方:
{
agents: {
defaults: {
mediaModels: {
video: {
primary: "google/veo-3.1-fast-generate-preview",
},
},
},
},
}
Note
有关共享工具参数、提供方选择和故障转移行为,请参阅 视频生成。
音乐生成¶
内置的 google 插件还通过共享的
music_generate 工具注册音乐生成。
- 默认音乐模型:
google/lyria-3-clip-preview - 还支持
google/lyria-3-pro-preview - 提示控制:
lyrics和instrumental - 输出格式:默认
mp3,google/lyria-3-pro-preview还支持wav - 参考输入:最多 10 张图像
- 基于会话的运行通过共享的任务/状态流程分离,包括
action: "status"
要将 Google 用作默认音乐提供方:
{
agents: {
defaults: {
mediaModels: {
music: {
primary: "google/lyria-3-clip-preview",
},
},
},
},
}
Note
有关共享工具参数、提供方选择和故障转移行为,请参阅 音乐生成。
文本转语音¶
内置的 google 语音提供方使用 Gemini API TTS。默认模型
保持为 gemini-3.1-flash-tts-preview。将 model 设置为 gemini-3.8-flash-tts 可选择加入 Gemini 3.8,或设置为 gemini-3.8-flash-lite-tts 使用更快、成本更低的变体。gemini-2.5-flash-preview-tts 和 gemini-2.5-pro-preview-tts 仍然可用。
- 默认声音:
Kore - 身份验证:
tts.providers.google.apiKey、models.providers.google.apiKey、GEMINI_API_KEY或GOOGLE_API_KEY - 输出:常规 TTS 附件使用 WAV,语音留言目标使用 Opus,Talk/电话使用 PCM
- 语音留言输出:Google PCM 会被封装为 WAV,并使用
ffmpeg转码为 48 kHz Opus
OpenClaw 通过 Interactions API
(POST /v1beta/interactions)发送 Gemini 3.8 TTS,并设置 store: false。Google 也在 generateContent 中记录了 3.8;Interactions 是 OpenClaw 的路由选择,而不是模型要求。OpenClaw 请求无文件头的 24 kHz PCM(audio/l16),并仍在本地封装该 PCM。audioProfile 和 personaPrompt 作为 speech_metadata.style 发送,speakerName 作为结构化的 speaker 标签发送,它们都不会作为转录文本的一部分被朗读。3.8 的短暂语音标签使用尖括号,例如 <laugh> 或 <short pause>;持续性的表达方式(如耳语)应放在 audioProfile 中。
将 speakers 设置为恰好两个 { speaker, voice, style? } 条目,即可演绎对话。只有以这两个名称之一开头并后跟冒号的行才会开始一个回合(Puck: Hello 和 Puck:Hello 都算),并且名称不会被朗读。其他所有行都会作为当前回合的一部分被朗读,包括普通带冒号前缀的文本(例如 Budget: 10 dollars)以及任何未配置的标签(例如 Alice: Hi)。第一个标签之前的词语由该第一个说话者朗读,而不是被丢弃。没有配置任何标签的转录文本仍走单声音路径。多说话者对话需要 gemini-3.8-flash-tts 或 gemini-3.8-flash-lite-tts。
Gemini 3.1 和 2.5 预览版 TTS 仍使用 generateContent。这些模型保留旧行为:audioProfile 会被前置到转录文本中,并且表现力标签使用方括号,例如 [whispers]。未知的 gemini-3.8-*-tts id 会失败关闭,而不是被发送到 generateContent。
对于最低延迟的语音对话,请使用由 Gemini Live API 支持的 Google 实时语音提供商,而不是批量 TTS。
要将 Google 用作默认 TTS 提供商:
{
tts: {
auto: "always",
provider: "google",
providers: {
google: {
model: "gemini-3.8-flash-tts",
speakerVoice: "Kore",
audioProfile: "Speak professionally with a calm tone.",
speakers: [
{ speaker: "Puck", voice: "Puck", style: "bright" },
{ speaker: "Kore", voice: "Kore", style: "whispered" },
],
},
},
},
}
Gemini API TTS 使用自然语言提示来控制风格。设置 audioProfile 以定义可复用的播报风格。在 Gemini 3.8 中,该风格是 speech_metadata.style,不会被朗读。在 Gemini 3.1 和 2.5 预览模型中,它仍会被前置到朗读文本中。当表演需要指定说话者时,设置 speakerName;3.8 会将其作为结构化 speech_metadata.speaker 标签发送,绝不会作为风格文本,并且所选语音保持为唯一配置的语音。
Gemini 3.1 和 2.5 预览 TTS 接受文本中的表情方括号音频标签,例如 [whispers] 或 [laughs]。Gemini 3.8 则改用尖括号语音标签,例如 <laugh>。为了在将标签发送到 TTS 的同时避免它们出现在可见的聊天回复中,请将它们放在 [[tts:text]]...[[/tts:text]] 块内:
Here is the clean reply text.
[[tts:text]]<laugh> Here is the spoken version. <short pause> Enjoy.[[/tts:text]]
Note
仅限 Gemini API 的 Google Cloud Console API 密钥可用于此提供商。这不是独立的 Cloud Text-to-Speech API 路径。
实时语音¶
内置的 google 插件会为 Voice Call 和 Google Meet 等后端音频桥接注册一个由 Gemini Live API 支持的实时语音提供商。
Talk 和 Discord 会在其语音目录中展示 Google 的预置语音。在活跃的 Talk 或 Discord 通话中,使用 talk_voice 选择新语音。OpenClaw 会使用该语音重新连接,同时保留对话和未完成的代理工作;已保存的语音默认值保持不变。参见 Discord 语音更改。
| 设置 | 配置路径 | 默认值 |
|---|---|---|
| 模型 | 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.apiKey、GEMINI_API_KEY 或 GOOGLE_API_KEY |
Voice Call 实时配置示例:
{
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",
},
},
},
},
},
},
},
}
Note
Google Live API 通过 WebSocket 使用双向音频和函数调用。OpenClaw 将电话/Meet 桥接音频适配为 Gemini 的 PCM Live API 流,并保持工具调用遵循共享的实时语音契约。除非需要更改采样,否则请保持 temperature 未设置;OpenClaw 会省略非正值,因为对于 temperature: 0,Google Live 可能返回没有音频的转录文本。Gemini API 转录在不使用 languageCodes 的情况下启用;当前 Google SDK 在此 API 路径上拒绝语言代码提示。
Note
Gemini 3.1 Live 通过实时输入接受对话文本,并使用顺序函数调用。对于此模型,OpenClaw 会省略旧的 NON_BLOCKING、函数响应调度和情感对话字段。优先使用 thinkingLevel;配置的正值 thinkingBudget 会映射到最近的支持级别,而 -1 会保留 Google 的默认设置。参见 Gemini Live 功能对比。
Note
Gemini 3.8 Live(gemini-3.8-live)保留异步函数调用契约,并拒绝任何思考配置,
因此 OpenClaw 不会为它发送任何此类配置。Gemini 3.8 Live Extended
Thinking(gemini-3.8-live-extended-thinking)要求使用 NON_BLOCKING 工具,拒绝函数响应调度,
并在中间响应后放弃调用,因此 OpenClaw 每次代理咨询只发送一个最终结果,而不发送
“工作中”的中间结果。使用 thinkingLevel(low、medium 或 high;minimal 映射到
low)或映射到最近级别的正 thinkingBudget 来配置其推理深度。
口头填充词在交互仍在进行时拥有自己的话语边界;OpenClaw 会定稿该转录文本和音频,
但保持响应活动,直到 Google 报告交互空闲。在此模型上,显式停止或插话打断会通过
一段简短的客户端内容回合中断生成,该回合告诉模型它被中断了(空回合会使其恢复)。
取消当前生成是可靠的,但随后的静默只是尽力而为:模型仍可能恢复或开始另一个响应,
因此请将停止视为“停止此回复”,而不是静默的保证。其他 Gemini Live 模型只能通过
服务端语音活动检测来中断。请参阅
Gemini 3.8 Live 思考指南。
Note
Control UI Talk 支持带有受限一次性令牌的 Google Live 浏览器会话。在 Video Talk 中,
浏览器会以提供商每秒一帧的上限速率直接将大小受限的 JPEG 帧发送到 Google Live。
describe_view 函数报告该摄像头流是否处于活动状态。摄像头帧不经过 Gateway。
仅后端的实时语音提供商也可以通过通用 Gateway 中继传输运行,从而将提供商凭据
保留在 Gateway 上。
供维护者进行实时验证,请运行
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 端点,发送初始设置载荷外加一帧 JPEG,
并验证文本响应和 describe_view 函数往返。
OpenAI 路径还会执行一次合成的 PCM24 语音到响应音频往返;传入 --openai-audio-cycles 3
可进行简短的重复生命周期浸泡测试。
高级配置¶
Gemini Interactions API(无状态)
Gemini Interactions 是默认 google-generative-ai 传输的一种可选替代方案。
使用 api: "google-interactions" 注册提供商,并通过该提供商 ID 选择模型:
{
models: {
mode: "merge",
providers: {
"google-interactions": {
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
apiKey: "***",
api: "google-interactions",
models: [
{
id: "gemini-3.8-flash",
name: "Gemini 3.8 Flash (Interactions)",
reasoning: true,
input: ["text", "image"],
contextWindow: 1048576,
maxTokens: 65536,
},
],
},
},
},
agents: {
defaults: { model: { primary: "google-interactions/gemini-3.8-flash" } },
},
}
该传输是无状态的:OpenClaw 发送 store: false,不保留服务端交互 ID,
并在每个请求上重放所需的对话上下文。此路由不支持显式 Gemini cachedContent
句柄;如需该功能,请使用 google-generative-ai。
被中断的文本回复使用正常的瞬态错误重试和故障转移策略。格式错误的已完成 工具调用参数仍会被拒绝。
直接复用 Gemini 缓存
对于直接 Gemini API 运行(api: "google-generative-ai"),OpenClaw
会将配置的 cachedContent 句柄传递给 Gemini 请求。
- 使用
cachedContent或旧版cached_content配置按模型或全局参数 - 更具体作用域(模型级优先于全局)的参数总是胜出。
在同一作用域内,如果两个键都设置了,则
cached_content胜出。 每个作用域只使用一个键,以避免意外。 - 示例值:
cachedContents/prebuilt-context - Gemini 缓存命中用量会从上游
cachedContentTokenCount归一化为 OpenClawcacheRead
Gemini CLI 使用说明
可选的 google-gemini-cli 运行时默认使用 Gemini CLI 的 stream-json 输出,
并从最终的 stats 载荷归一化用量。旧版 --output-format json 覆盖仍使用
JSON 解析器。
- 流式回复文本来自助手
message事件。 - 对于旧版 JSON 输出,回复文本来自 CLI JSON
response字段。 - 当 CLI 将
usage留空时,用量回退到stats。 stats.cached被归一化为 OpenClawcacheRead。- 如果缺少
stats.input,OpenClaw 会从stats.input_tokens - stats.cached推导输入令牌。
环境与守护进程设置
如果 Gateway 作为守护进程(launchd/systemd)运行,请确保 GEMINI_API_KEY
对该进程可用(例如,在 ~/.openclaw/.env 中或通过 env.shellEnv)。
相关¶
选择提供商、模型引用和故障转移行为。
共享图像工具参数和提供商选择。
共享视频工具参数和提供商选择。
共享音乐工具参数和提供商选择。
Gemini CLI 后端设置和运行时详细信息。
使用 Gemini Live 实时语音提供商的音频桥接。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw