ByteNoteByteNote

字节笔记本

2026年6月21日

hermes教程-Google Gemini

API中转
¥120

Hermes Agent 通过 Google AI Studio / Gemini API(而非 OpenAI 兼容端点)原生支持 Google Gemini。这使得 Hermes 能够将其内部的 OpenAI 格式消息和工具循环转换为 Gemini 原生的 generateContent API,同时保留工具调用、流式传输、多模态输入以及 Gemini 特有的响应元数据。

Hermes 还支持独立的 Google Gemini (OAuth) 提供商,它使用与 Google Gemini CLI 相同的 Cloud Code Assist 后端。对于风险最低的官方 API 路径,请使用 API 密钥提供商(gemini)。

前提条件

  • Google AI Studio API 密钥 — 在 aistudio.google.com/apikey 创建一个
  • 已启用结算的 Google Cloud 项目 — 建议用于 Agent 场景。Gemini 的免费额度对于长时间运行的 Agent 会话来说太小,因为 Hermes 可能在每次用户交互中发起多次模型调用。
  • 已安装 Hermes — 原生 Gemini 提供商不需要额外的 Python 包。

提示 — API 密钥路径

设置 GOOGLE_API_KEYGEMINI_API_KEY。对于 gemini 提供商,Hermes 会检查这两个名称。

快速开始

bash
## 添加你的 Gemini API 密钥
echo "GOOGLE_API_KEY=..." >> ~/.hermes/.env
## 选择 Gemini 作为提供商
hermes model
## → 选择 "More providers..." → "Google AI Studio"
## → Hermes 检查你的密钥层级并显示 Gemini 模型
## → 选择一个模型
## 开始对话
hermes chat

如果你更喜欢直接编辑配置,请使用原生 Gemini API 基础 URL:

yaml
model:
  default: gemini-3-flash-preview
  provider: gemini
  base_url: https://generativelanguage.googleapis.com/v1beta

配置

运行 hermes model 后,你的 ~/.hermes/config.yaml 将包含:

yaml
model:
  default: gemini-3-flash-preview
  provider: gemini
  base_url: https://generativelanguage.googleapis.com/v1beta

而在 ~/.hermes/.env 中:

bash
GOOGLE_API_KEY=...

原生 Gemini API

推荐的端点是:

https://generativelanguage.googleapis.com/v1beta

Hermes 检测到该端点后会创建其原生 Gemini 适配器。在内部,Hermes 仍然以 OpenAI 格式的消息保持 Agent 循环,然后将每个请求转换为 Gemini 的原生模式:

  • messages[] → Gemini contents[]
  • 系统提示词 → Gemini systemInstruction
  • 工具模式 → Gemini functionDeclarations
  • 工具结果 → Gemini functionResponse 部分
  • 流式响应 → 供 Hermes 循环使用的 OpenAI 格式流式块

注意 — Gemini 3 思考签名

对于 Gemini 3 的工具使用,Hermes 会保留附加在函数调用部分的 thoughtSignature 值,并在下一次工具轮次中重放它们。这覆盖了多步 Agent 工作流中关键的验证路径。

Gemini 3 也可能会将思考签名附加到其他响应部分。Hermes 的原生适配器目前针对 Agent 工具循环进行了优化,因此尚未以完整的部分级保真度重放每一个非工具调用签名。

优先使用原生端点

Google 还提供了一个 OpenAI 兼容端点:

https://generativelanguage.googleapis.com/v1beta/openai/

对于 Hermes Agent 会话,请优先使用上面的原生 Gemini 端点。Hermes 包含原生 Gemini 适配器,因此可以将多轮工具使用、工具调用结果、流式传输、多模态输入以及 Gemini 响应元数据直接映射到 Gemini 的 generateContent API。当你确实需要 OpenAI API 兼容性时,OpenAI 兼容端点仍然有用。

如果你之前将 GEMINI_BASE_URL 设置为 /openai URL,请将其移除或更改:

bash
GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta

OAuth 提供商

Hermes 还有一个 google-gemini-cli 提供商:

bash
hermes model
## → 选择 "Google Gemini (OAuth)"

它使用浏览器 PKCE 登录和 Cloud Code Assist 后端。对于想要 Gemini CLI 风格 OAuth 的用户来说,这可能很有用,但 Hermes 会显示明确的警告,因为 Google 可能会将第三方软件使用 Gemini CLI OAuth 客户端视为违反政策。对于生产环境或风险最低的用途,请优先使用上面的 API 密钥提供商。

可用模型

hermes model 选择器会显示 Hermes 提供商注册表中维护的 Gemini 模型。常见选择包括:

模型ID说明
Gemini 3.1 Pro Previewgemini-3.1-pro-preview可用时能力最强的预览模型
Gemini 3 Pro Previewgemini-3-pro-preview推理和编程能力强的模型
Gemini 3 Flash Previewgemini-3-flash-preview推荐的默认模型,在速度和性能之间取得平衡
Gemini 3.1 Flash Lite Previewgemini-3.1-flash-lite-preview可用时最快/成本最低的选项

模型可用性会随时间变化。如果某个模型消失或未对你的密钥启用,请再次运行 hermes model 并从当前列表中选择一个。

信息 — 模型 ID

provider: gemini 时,请使用 Gemini 的原生模型 ID,例如 gemini-3-flash-preview,而不是 OpenRouter 风格的 ID,例如 google/gemini-3-flash-preview

最新别名

Google 为 Pro 和 Flash Gemini 系列发布了动态别名。当你希望 Google 自动更新模型而无需更改 Hermes 配置时,gemini-pro-latestgemini-flash-latest 非常有用。

别名当前追踪说明
gemini-pro-latest最新的 Gemini Pro 模型当你想要 Google 当前的 Pro 默认模型时最佳选择
gemini-flash-latest最新的 Gemini Flash 模型当你想要 Google 当前的 Flash 默认模型时最佳选择
yaml
model:
  default: gemini-pro-latest
  provider: gemini
  base_url: https://generativelanguage.googleapis.com/v1beta

如果你需要严格的可复现性,请优先使用明确的模型 ID,例如 gemini-3.1-pro-previewgemini-3-flash-preview

通过 Gemini API 使用 Gemma

Google 还通过 Gemini API 提供 Gemma 模型。Hermes 将它们识别为 Google 模型,但会从默认模型选择器中隐藏吞吐量极低的 Gemma 条目,以防止新用户意外为长时间运行的 Agent 会话选择评估级模型。

有用的评估 ID 包括:

模型ID说明
Gemma 4 31B ITgemma-4-31b-it较大的 Gemma 模型;适用于兼容性和质量评估
Gemma 4 26B A4B ITgemma-4-26b-a4b-it可用时较小的激活参数变体

这些模型最好作为 Gemini API 密钥上的评估选项使用。Google 的 Gemma API 定价仅限免费层级,与生产级 Gemini 模型相比使用上限较低,因此持续的 Hermes Agent 使用通常应转移到付费 Gemini 模型、自托管部署或其他具有适当配额的提供商。

要使用被选择器隐藏的 Gemma 模型,请直接设置:

yaml
model:
  default: gemma-4-31b-it
  provider: gemini
  base_url: https://generativelanguage.googleapis.com/v1beta

会话中切换模型

在对话过程中使用 /model 命令:

text
/model gemini-3-flash-preview
/model gemini-flash-latest
/model gemini-3-pro-preview
/model gemini-pro-latest
/model gemma-4-31b-it
/model gemini-3.1-flash-lite-preview

如果你尚未配置 Gemini,请先退出会话并运行 hermes model/model 在已配置的提供商和模型之间切换;它不会收集新的 API 密钥。

诊断

bash
hermes doctor

诊断工具会检查:

  • GOOGLE_API_KEYGEMINI_API_KEY 是否可用
  • google-gemini-cli 是否存在 Gemini OAuth 凭据
  • 已配置的提供商凭据是否可以解析

对于 OAuth 配额使用情况,请在 Hermes 会话中运行:

/gquota

/gquota 适用于 google-gemini-cli OAuth 提供商,而非 AI Studio API 密钥提供商。

网关(消息平台)

Gemini 可与所有 Hermes 网关平台(Telegram、Discord、Slack、WhatsApp、LINE、Feishu 等)配合使用。将 Gemini 配置为你的提供商,然后正常启动网关:

bash
hermes gateway setup
hermes gateway start

网关会读取 config.yaml 并使用相同的 Gemini 提供商配置。

故障排除

"Gemini native client requires an API key"

Hermes 找不到可用的 API 密钥。将以下之一添加到 ~/.hermes/.env

bash
GOOGLE_API_KEY=...
## 或
GEMINI_API_KEY=...

然后再次运行 hermes model

"This Google API key is on the free tier"

Hermes 在设置期间会探测 Gemini API 密钥。免费层额度可能在几次 Agent 交互后耗尽,因为工具使用、重试、压缩和辅助任务可能需要多次模型调用。

在附加了你密钥的 Google Cloud 项目上启用结算,如有需要请重新生成密钥,然后运行:

bash
hermes model

"404 model not found"

所选模型对你的账户、地区或密钥不可用。请再次运行 hermes model 并从当前列表中选择另一个 Gemini 模型。

Gemma 模型未在 hermes model 中显示

Hermes 默认可能会从选择器中隐藏低吞吐量的 Gemma 模型。如果你有意要评估其中一个,请直接在 ~/.hermes/config.yaml 中设置模型 ID。

使用 Gemma 时出现 "429 quota exceeded"

通过 Gemini API 提供的 Gemma 模型适用于评估,但它们的 Gemini API 免费层上限较低。请将它们用于兼容性测试,然后切换到付费 Gemini 模型或其他提供商以进行持续的 Agent 会话。

配置了 OpenAI 兼容端点

检查 ~/.hermes/.env 中是否存在:

bash
GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/

将其更改为原生端点或移除该覆盖:

bash
GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta

OAuth 登录警告

google-gemini-cli 提供商使用 Gemini CLI / Cloud Code Assist OAuth 流程。Hermes 在启动前会发出警告,因为这不同于官方的 AI Studio API 密钥路径。对于官方 API 密钥集成,请使用 provider: gemini 并配合 GOOGLE_API_KEY

工具调用因模式错误而失败

升级 Hermes 并重新运行 hermes model。原生 Gemini 适配器会清理工具模式以适配 Gemini 更严格的函数声明格式;旧版本或自定义端点可能不会这样做。

相关



分享: