配置模型
Hermes 使用两种类型的模型插槽:
- 主模型(Main model)——Agent 用来思考的模型。每条用户消息、每次工具调用循环、每个流式响应都通过这个模型处理。
- 辅助模型(Auxiliary models)——Agent 卸下的小型副任务。包括上下文压缩、视觉(图像分析)、网页摘要、会话搜索、审批评分、MCP 工具路由、会话标题生成和技能搜索。每个任务都有自己的插槽,可以独立覆盖。
本页介绍如何从控制面板配置这两种模型。如果你更喜欢配置文件或 CLI,请跳到底部的其他方法。
模型页面
打开控制面板,点击侧边栏中的 Models。你会看到两个区域:
- 模型设置(Model Settings)——顶部面板,用于为插槽分配模型。
- 用量分析(Usage analytics)——排名卡片,显示所选时间段内运行过的每个模型,包含 token 计数、成本和能力徽章。

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

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

每个辅助任务默认设置为 auto——这意味着 Hermes 也会为该任务使用你的主模型。当你希望某个副任务使用更便宜或更快的模型时,可以覆盖特定任务。
常见覆盖模式
| 任务 | 何时覆盖 |
|---|---|
| 标题生成 | 几乎总是。一个 $0.10/M 的闪电模型生成的会话标题与 Opus 一样好。默认配置在 OpenRouter 上将其设置为 google/gemini-3-flash-preview。 |
| 视觉 | 当你的主模型是不支持视觉的编码模型(例如 Kimi、DeepSeek)时。将其指向 google/gemini-2.5-flash 或 gpt-4o-mini。 |
| 压缩 | 当你为了总结上下文而在 Opus/M2.7 上浪费推理 token 时。一个快速的聊天模型能以 1/50 的成本完成这项工作。 |
| 会话搜索 | 当召回查询发散时——默认最大并发数为 3。一个便宜的模型能让账单保持可预测。 |
| 审批 | 用于 approval_mode: smart 模式——一个快速/便宜的模型(haiku、flash、gpt-5-mini)决定是否自动批准低风险命令。在这里使用昂贵模型是浪费。 |
| 网页提取 | 当你大量使用 web_extract 时。逻辑与压缩相同——摘要不需要推理。 |
| 技能中心 | hermes skills search 使用此设置。通常设为 auto 即可。 |
| MCP | MCP 工具路由。通常设为 auto 即可。 |
按任务覆盖
点击任意辅助行的 Change 按钮。会弹出相同的选择器,操作方式也一样——选择供应商 + 模型,然后点击 Switch。该行会更新显示为 provider · model,而不是 auto (use main model)。
全部重置为自动
如果你调整过度想重新开始,点击辅助区域顶部的 Reset all to auto。每个槽位都会恢复为使用主模型。
"Use as" 快捷方式
页面上的每个模型卡片都有一个 Use as 下拉菜单。这是快速路径——在分析数据中选中一个模型,点击 Use as,一键将其分配给主槽位或任意特定辅助任务:

下拉菜单包含:
- Main model —— 等同于点击主行的 Change。
- All auxiliary tasks —— 将此模型一次性分配给全部 8 个辅助槽位。当你只想让所有次要任务都使用一个便宜的 flash 模型时非常有用。
- Individual task options —— 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
辅助覆盖(示例——vision 使用 gemini-flash):
auxiliary:
vision:
provider: openrouter
model: google/gemini-2.5-flash
base_url: ''
api_key: ''
timeout: 120
extra_body: {}
download_timeout: 30
辅助任务设为自动(默认):
auxiliary:
compression:
provider: auto
model: ''
base_url: ''
# ... 其他字段不变
provider: auto 配合 model: '' 告诉 Hermes 对该任务使用主模型。
何时生效?
- CLI(
hermes chat):下次调用hermes chat时生效。 - Gateway(Telegram、Discord、Slack 等):下一个新会话生效。已有会话保持原有模型。如果你想强制所有会话都应用更改,请重启 gateway(
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 按钮相同,并且会就地切换正在运行的会话。
hermes model 子命令
hermes model list # 列出已认证的提供商和模型
hermes model set anthropic/claude-opus-4.7 --provider openrouter
直接编辑配置
编辑 ~/.hermes/config.yaml 并重启任何读取它的进程。完整模式请参见配置参考。
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__)中获取它。