Hermes Agent 模型配置完全指南——从单模型到多模型路由
本文最后更新于 2026年5月3日 晚上
Hermes Agent 模型配置完全指南
作者: 小瑞
日期: 2026-05-03
版本: v1.0
适用对象: AI Agent 开发者、模型运维人员
目录
背景
在使用 Hermes Agent 搭建个人 AI 助手时,一个常见需求是:日常对话用本地模型省钱,复杂任务交给云端大模型。我们的环境是这样的:
| 模型 | 来源 | 用途 |
|---|---|---|
| Qwen 3.6 35B | 本地 LM Studio | 日常对话,主力模型 |
| GLM-5 | 智谱 BigModel API | 复杂推理、代码分析 |
今天我们就来一步步配置这个多模型方案。
Hermes Agent 的模型体系
Hermes 的模型配置是一个三层结构:
1 | |
理解这三层,就掌握了 Hermes 模型路由的全部。
配置 Provider:连接你的模型
Provider 是什么
Provider 就是模型提供商。Hermes 支持以下内置 provider:
| Provider | 说明 | 需要的密钥 |
|---|---|---|
openrouter |
OpenRouter 聚合平台 | OPENROUTER_API_KEY |
anthropic |
Anthropic 直连 | ANTHROPIC_API_KEY |
nous |
Nous Portal OAuth | hermes login |
zai |
智谱 GLM | GLM_API_KEY |
lmstudio |
本地 LM Studio | 无需密钥 |
custom |
任意 OpenAI 兼容端点 | 自定义 |
配置本地 LM Studio(Qwen)
LM Studio 是一等公民 provider,配置最简单:
1 | |
配置云端 BigModel(GLM-5)
智谱 BigModel 用 custom provider,需要手动指定 base_url:
1 | |
在 config.yaml 中:
1 | |
提示: 密钥推荐放在
~/.hermes/.env文件中,而不是直接写在 config.yaml 里。Hermes 启动时会自动加载 .env 文件。
模型别名:简化切换
当你要在多个模型间频繁切换时,model_aliases 是最优雅的方案。它让你用短名字代替完整配置。
配置方法
1 | |
使用方法
配置好之后,在对话中直接输入:
1 | |
就能瞬间切换到 GLM-5。再输入 /model qwen 就切回来。Hermes 会自动从别名中解析出 provider、base_url 等信息。
关键细节: 别名的优先级高于 models.dev 目录(Hermes 内置的模型数据库),所以你甚至可以用别名路由到目录中不存在的端点(比如自建 Ollama 服务器)。
Delegation 模型覆盖:子代理用什么模型
什么是 Delegation
Hermes 的 delegate_task 工具可以生成子代理来并行处理任务。默认情况下,子代理继承父代理的模型配置。
为什么要覆盖
实际场景中,你可能希望:
- 父代理用便宜的本地模型做调度
- 子代理用强大的云端模型做具体工作
配置方法
1 | |
解析优先级
Hermes 内部的 _resolve_delegation_credentials 函数按以下顺序解析:
delegation.base_url→ 如果存在,强制使用customproviderdelegation.provider→ 使用预定义的 runtime resolver(openrouter、nous、zai 等)- 继承父代理 → 如果都不设置,子代理和父代理用同一个模型
1 | |
运行时切换
除了配置文件,Hermes 还支持运行时切换模型:
/model 命令
1 | |
辅助任务的模型路由
对于视觉分析、网页提取等辅助任务(auxiliary tasks),Hermes 有独立的 fallback 链:
1 | |
这个链条是硬编码在 auxiliary_client.py 中的,确保辅助任务始终能找到可用的模型。
完整配置示例
以下是一个双模型配置的完整示例(~/.hermes/config.yaml):
1 | |
对应的 .env 文件:
1 | |
踩坑记录
1. LM Studio 端口问题
LM Studio 默认端口是 1234。如果在局域网另一台机器上运行,需要:
- 确保 LM Studio 开启了 CORS
- 在 config.yaml 中写明完整地址(如
http://10.28.9.6:1234/v1) - 注意末尾的
/v1不能少
2. custom provider 的 api_key 传递
使用 custom provider 时,API Key 的传递方式取决于目标服务:
| 场景 | Key 来源 |
|---|---|
| LM Studio(无认证) | 不需要 key |
| BigModel | GLM_API_KEY 环境变量 |
| 自建 Ollama Cloud | api_key 字段或环境变量 |
3. 别名不会自动路由
model_aliases 只是一个快捷方式,不会自动根据任务复杂度选择模型。如果你想要”智能路由”,需要:
- 手动切换:遇到难题时
/model glm - 配置 delegation:让子代理用更强的模型
4. delegation.provider 只支持预定义 Provider
delegation.provider 字段只接受预定义的 provider slug(如 openrouter、nous、zai)。如果要指向自定义端点,必须使用 delegation.base_url + delegation.model 组合。
总结
Hermes Agent 的模型配置虽然灵活,但核心就三个概念:
- Provider — 连接哪个模型服务
- model_aliases — 给常用模型起短名字,方便切换
- delegation — 控制子代理用什么模型
掌握这三点,就能轻松玩转多模型环境。我们的配置策略是:
本地 Qwen 做日常对话,云端 GLM 做复杂推理,delegation 让子代理自动使用更强的模型。
这样既省钱又保证了能力上限。希望这篇指南能帮到同样在配置 Hermes Agent 多模型方案的朋友。
本文由小瑞撰写,发布于「进化概率论」博客。