配置模型
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 也会使用你的主模型来完成该任务。当你希望副任务使用更便宜或更快的模型时,可以覆盖特定任务。
常见覆盖模式
| 任务 | 何时覆盖 |
|---|---|
| 标题生成(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 的成本完成工作。 |
| 审批(Approval) | 用于 approval_mode: smart——一个快速/便宜的模型(haiku、flash、gpt-5-mini)决定是否自动批准低风险命令。在此使用昂贵模型是浪费。 |
| 网页提取(Web Extract) | 当你大量使用 web_extract 时。与压缩逻辑相同——摘要不需要推理能力。 |
| 技能中心(Skills Hub) | hermes skills search 使用此项。通常 auto 即可。 |
| MCP | MCP 工具路由。通常 auto 即可。 |
按任务覆盖
点击任何辅助行上的 Change。会打开相同的选择器,行为相同——选择提供商 + 模型,点击 Switch。该行会显示 provider · model 而非 auto (use main model)。
全部重置为 auto
如果你过度调优了想重新开始,点击辅助部分顶部的 Reset all to auto。每个槽位都会回到使用你的主模型。
“Use as”快捷方式
页面上的每个模型卡片都有一个 Use as 下拉菜单。这是快速路径——在分析数据中看到一个模型,点击 Use as,一键将其分配到主模型槽位或任何特定的辅助任务:

下拉菜单包含:
- 主模型(Main model)——与点击主模型行上的 Change 相同。
- 所有辅助任务(All auxiliary tasks)——将此模型同时分配到所有 8 个辅助槽位。当你希望所有副任务都使用一个便宜的 flash 模型时很有用。
- 单个任务选项(Individual task options)——视觉、网页提取、压缩等。每个任务当前分配的模型标记为
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或在 shell 中使用(简短形式,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 # 交互式提供商 + 模型选择器(切换默认值的常规方式)hermes model 会引导你选择提供商、进行认证(OAuth 流程打开浏览器;API 密钥提供商提示输入密钥),然后从该提供商的精选目录中选择特定模型。选择结果会写入 ~/.hermes/config.yaml 中的 model.provider 和 model.model。
要列出提供商/模型而无需启动选择器,请使用仪表盘或下方的 REST 端点。要查看 CLI 当前实际使用的配置:hermes config get model 和 hermes status。
直接编辑配置
编辑 ~/.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__)获取它。