配置模型
Hermes 使用两种模型槽位:
- 主模型 — Agent 的思考模型。每条用户消息、每次工具调用循环、每次流式响应都通过该模型处理。
- 辅助模型 — Agent 卸载的较小辅助任务。上下文压缩、视觉(图像分析)、网页摘要、会话搜索、审批评分、MCP 工具路由、会话标题生成以及技能搜索。每项任务都有独立的槽位,可以单独覆盖。
本页介绍如何通过仪表盘配置这两种模型。如果你更倾向于使用配置文件或 CLI,请跳转到页面底部的替代方法。
模型页面
打开仪表盘,点击侧边栏中的 Models。页面包含两个部分:
- Model Settings — 顶部面板,用于为各槽位分配模型。
- 使用情况分析 — 排名卡片,显示在所选时间段内运行过会话的每个模型,包括 Token 数量、费用及能力标签。

顶部卡片是 Model Settings 面板。主行始终显示 Agent 为新会话启动时使用的模型。点击 Change 打开选择器。
设置主模型
点击主模型行上的 Change:

选择器包含两列:
- 左侧 — 已认证的提供商。只显示你已配置的提供商(已设置 API 密钥、已 OAuth 授权或已定义自定义端点)。如果某个提供商缺失,请前往 Keys 添加其凭证。
- 右侧 — 所选提供商的精选模型列表。这些是 Hermes 为该提供商推荐的 Agent 模型,而非原始的
/models完整列表(在 OpenRouter 上包含 400 多个模型,包括 TTS、图像生成器和重排序器)。
在过滤框中输入内容,可按提供商名称、简写或模型 ID 进行筛选。
选择模型,点击 Switch,Hermes 会将其写入 ~/.hermes/config.yaml 的 model 部分。此设置仅对新会话生效 — 已打开的聊天标签页仍继续使用启动时的模型。若要在当前聊天中即时切换,请在会话中使用 /model 斜杠命令。
设置辅助模型
点击 Show auxiliary 展开八个任务槽位:

每个辅助任务默认为 auto — 即 Hermes 也使用主模型来处理该任务。当你希望为某个辅助任务使用更便宜或更快的模型时,可以覆盖特定任务。
常见覆盖场景
| 任务 | 何时覆盖 |
|---|---|
| 标题生成(Title Gen) | 几乎总是。价格约 $0.10/M 的 flash 模型生成会话标题的效果与 Opus 相当。默认配置在 OpenRouter 上将其设置为 google/gemini-3-flash-preview。 |
| 视觉(Vision) | 当你的主模型是不支持视觉的编程模型(如 Kimi、DeepSeek)时。指向 google/gemini-2.5-flash 或 gpt-4o-mini。 |
| 压缩(Compression) | 当你在 Opus/M2.7 上消耗推理 Token 仅用于摘要上下文时。快速聊天模型以 1/50 的成本完成同样的工作。 |
| 会话搜索(Session Search) | 当召回查询扇出时——默认 max_concurrency 为 3。使用廉价模型使账单可预测。 |
| 审批(Approval) | 对于 approval_mode: smart — 快速/廉价模型(haiku、flash、gpt-5-mini)可判断是否自动批准低风险命令。在此处使用昂贵模型是浪费。 |
| 网页提取(Web Extract) | 当你大量使用 web_extract 时。与压缩相同的逻辑——摘要不需要推理能力。 |
| 技能中心(Skills Hub) | hermes skills search 使用此任务。通常保持 auto 即可。 |
| MCP | MCP 工具路由。通常保持 auto 即可。 |
单任务覆盖
点击任意辅助行上的 Change,同样的选择器会打开,行为相同——选择提供商 + 模型,点击 Switch。该行将从 auto (use main model) 更新为显示 provider · model。
全部重置为 auto
如果你过度调整想要重头开始,点击辅助部分顶部的 Reset all to auto。所有槽位都将恢复使用主模型。
"Use as" 快捷方式
页面上每个模型卡片都有一个 Use as 下拉菜单。这是快捷路径——从分析中选择你看到的模型,点击 Use as,一键将其分配到主槽位或任意辅助任务:

下拉菜单包含:
- Main model — 与点击主行上的 Change 相同。
- All auxiliary tasks — 将此模型分配到所有 8 个辅助槽位。当你希望所有辅助任务都使用廉价 flash 模型时非常实用。
- 各任务选项 — Vision、Web Extract、Compression 等。每项任务当前分配的模型标记为
current。
当卡片被分配到某个槽位时,会显示 main 或 aux · <task> 标签——这样你可以一目了然地看到历史模型中哪些已经配置。
写入 config.yaml 的内容
通过仪表盘保存时,Hermes 会写入 ~/.hermes/config.yaml:
主模型:
model:
provider: openrouter
default: anthropic/claude-opus-4.7
base_url: '' # 切换提供商时清空
api_mode: chat_completions
辅助覆盖示例(视觉任务使用 gemini-flash):
auxiliary:
vision:
provider: openrouter
model: google/gemini-2.5-flash
base_url: ''
api_key: ''
timeout: 120
extra_body: {}
download_timeout: 30
辅助任务使用 auto(默认值):
auxiliary:
compression:
provider: auto
model: ''
base_url: ''
# ... 其他字段不变
provider: auto 加 model: '' 告知 Hermes 对该任务使用主模型。
何时生效?
- CLI(
hermes chat):下次调用hermes chat时生效。 - 网关(Telegram、Discord、Slack 等):下次新会话时生效。现有会话保持原有模型。如需强制所有会话使用新模型,请重启网关(
hermes gateway restart)。 - 仪表盘聊天标签(
/chat):下次新建 PTY 时生效。当前打开的聊天保持原有模型——使用/model在会话内即时切换。
变更不会使正在运行的会话的提示词缓存失效。这是有意为之:在会话内切换主模型需要重置缓存(系统提示词包含与模型相关的内容),我们将此保留为聊天内部显式的 /model 斜杠命令专属功能。
故障排查
选择器中显示"No authenticated providers"
Hermes 只列出拥有有效凭证的提供商。检查侧边栏中的 Keys — 你应该看到以下之一:API 密钥、成功的 OAuth 授权或自定义端点 URL。如果你想要的提供商不在列表中,运行 hermes setup 进行配置,或前往 Keys 添加相应的环境变量。
主模型在运行中的聊天里没有变化
符合预期。仪表盘写入 config.yaml,新会话才会读取该文件。当前打开的聊天是一个正在运行的 Agent 进程——它会保持启动时的模型。在聊天中使用 /model <name> 即时切换该特定会话的模型。
辅助覆盖"未生效"
检查以下三点:
- 是否启动了新会话? 现有聊天不会重新读取配置。
provider是否设置为auto以外的值? 如果字段显示auto,该任务仍在使用主模型。点击 Change 选择真实的提供商。- 提供商是否已认证? 如果你将
minimax分配给某个任务但没有 MiniMax API 密钥,该任务会回退到 OpenRouter 默认值并在agent.log中记录警告。
我选择了一个模型,但 Hermes 切换了提供商
在 OpenRouter(或任何聚合器)上,裸模型名称会首先在聚合器内解析。因此在 OpenRouter 上,claude-sonnet-4 会解析为 anthropic/claude-sonnet-4.6,保持在你的 OpenRouter 认证下。但如果你在原生 Anthropic 认证下输入 claude-sonnet-4,它会保持为 claude-sonnet-4-6。如果看到意外的提供商切换,请确认当前提供商是否符合预期——选择器在对话框顶部始终显示当前主模型。
替代方法
CLI 斜杠命令
在任意 hermes chat 会话中:
/model gpt-5.4 --provider openrouter # 仅当前会话
/model gpt-5.4 --provider openrouter --global # 同时持久化到 config.yaml
--global 与仪表盘 Change 按钮的效果相同,并且会同时就地切换当前运行的会话。
自定义别名
为你常用的模型定义简短名称,然后在 CLI 或任意消息平台中使用 /model <alias>:
# ~/.hermes/config.yaml
model_aliases:
fav:
model: claude-sonnet-4.6
provider: anthropic
grok:
model: grok-4
provider: x-ai
或从命令行设置(简写形式,provider/model):
hermes config set model.aliases.fav anthropic/claude-opus-4.6
hermes config set model.aliases.grok x-ai/grok-4
然后在聊天中使用 /model fav 或 /model grok。用户别名会覆盖内置简写名称(sonnet、kimi、opus 等)。完整参考请参阅自定义模型别名。
hermes model 子命令
hermes model list # 列出已认证的提供商 + 模型
hermes model set anthropic/claude-opus-4.7 --provider openrouter
直接编辑配置
编辑 ~/.hermes/config.yaml 并重启读取该文件的进程。完整 schema 请参阅配置参考。
REST API
仪表盘使用三个端点。对脚本编写非常实用:
# 列出已认证的提供商 + 精选模型列表
curl -H "X-Hermes-Session-Token: $TOKEN" http://localhost:PORT/api/model/options
# 读取当前主模型 + 辅助模型分配
curl -H "X-Hermes-Session-Token: $TOKEN" http://localhost:PORT/api/model/auxiliary
# 设置主模型
curl -X POST -H "Content-Type: application/json" -H "X-Hermes-Session-Token: $TOKEN" \
-d '{"scope":"main","provider":"openrouter","model":"anthropic/claude-opus-4.7"}' \
http://localhost:PORT/api/model/set
# 覆盖单个辅助任务
curl -X POST -H "Content-Type: application/json" -H "X-Hermes-Session-Token: $TOKEN" \
-d '{"scope":"auxiliary","task":"vision","provider":"openrouter","model":"google/gemini-2.5-flash"}' \
http://localhost:PORT/api/model/set
# 将一个模型分配给所有辅助任务
curl -X POST -H "Content-Type: application/json" -H "X-Hermes-Session-Token: $TOKEN" \
-d '{"scope":"auxiliary","task":"","provider":"openrouter","model":"google/gemini-2.5-flash"}' \
http://localhost:PORT/api/model/set
# 将所有辅助任务重置为 auto
curl -X POST -H "Content-Type: application/json" -H "X-Hermes-Session-Token: $TOKEN" \
-d '{"scope":"auxiliary","task":"__reset__","provider":"","model":""}' \
http://localhost:PORT/api/model/set
会话令牌在启动时注入到仪表盘 HTML 中,每次服务器重启后轮换。如果你要对正在运行的仪表盘进行脚本操作,可以从浏览器开发工具中获取(window.__HERMES_SESSION_TOKEN__)。