摘要:本文记录了在 Hermes Agent Desktop 中配置讯飞星火 MaaS Coding API 作为自定义 Provider 的完整过程,包括单模型配置、多模型接入、Desktop 下拉菜单不显示的排查,以及最终的解决方案。附带实用配置模板和避坑指南。
Hermes Agent 是 Nous Research 开源的 AI Agent 框架,支持 CLI、Telegram、Discord、Slack 等多平台。它的 Desktop 桌面版支持自定义 OpenAI 兼容 API,但文档中对命名自定义 Provider(Named Custom Providers)的配置细节不够清晰,实际操作中踩了不少坑。
本文以讯飞星火 MaaS Coding API 为例,记录完整的配置过程和踩坑经验。
配置 custom_providers 后,XUNFEI 出现在下拉菜单,但只显示了 model 字段指定的模型(xopglm51),xopkimik26 没有出现:

| 项目 | 值 |
|---|---|
| API 地址 | https://maas-coding-api.cn-huabei-1.xf-yun.com/v2 |
| API Key | |
| 模型 ID | xopkimik26 |
| 接口协议 | OpenAI 兼容 |
hermes config set model.provider custom hermes config set model.default xopkimik26 hermes config set model.base_url "https://maas-coding-api.cn-huabei-1.xf-yun.com/v2" hermes config set model.api_key ""
写入 ~/.hermes/config.yaml 的结果:
model: default: xopkimik26 provider: custom base_url: https://maas-coding-api.cn-huabei-1.xf-yun.com/v2 api_key:
curl -s "https://maas-coding-api.cn-huabei-1.xf-yun.com/v2/chat/completions"
-H "Content-Type: application/json"
-H "Authorization: Bearer "
-d '{"model":"xopkimik26","messages":[{"role":"user","content":"hi"}],"max_tokens":10}'
返回 HTTP 200 即成功。
同一个 API 端点下有两个模型:
xopglm51 — 备选模型xopkimik26 — 原有模型需要在 Hermes Desktop 下拉菜单中同时显示,且能自由切换。
在 ~/.hermes/config.yaml 中添加以下两个 section:
# 1. custom_providers — 运行时路由(必须有 models 列表)
custom_providers:
- name: xunfei
base_url: https://maas-coding-api.cn-huabei-1.xf-yun.com/v2
api_key:
models:
- xopglm51
- xopkimik26
# 2. providers — 供 /model 命令使用(可选,但建议清空避免冲突)
providers: {}
配置完成后,重启 Desktop 应用,下拉菜单应显示:
DEEPSEEK Deepseek V4 Pro 中 Deepseek V4 Flash 中 XIAOMI Mimo V2.5 Pro 中 Mimo V2.5 中 XUNFEI ← 新增 Xopglm51 中 Xopkimik26 中

Hermes 内部有两个 config section 都会影响模型显示:
| Section | 作用 | 格式 |
|---|---|---|
| providers: | /model 命令的模型列表来源 | dict,key 为 provider 名 |
| custom_providers: | 运行时 API 路由 + Desktop 下拉菜单 | list,每个 entry 有 name/base_url/api_key/model(s) |
关键发现:如果 providers: 和 custom_providers: 同时存在同名条目,Desktop 下拉菜单会优先使用 providers: 的内容,导致 custom_providers: 的 models 列表被跳过。

解决方案:只保留 custom_providers:,将 providers: 清空为 {}。
# ✅ 正确:providers 清空,custom_providers 包含所有模型
providers: {}
custom_providers:
- name: xunfei
base_url: https://...
api_key: ...
models: [xopglm51, xopkimik26]
# ❌ 错误 — "default" 是未知字段,被静默丢弃
providers:
xunfei:
default: xopglm51
# ✅ 正确 — 必须用 "model" 字段
providers:
xunfei:
model: xopglm51
Hermes 的 _normalize_custom_provider_entry() 函数只识别 _KNOWN_KEYS 中的字段,default 不在其中。
# ❌ 只能显示一个模型
custom_providers:
- name: xunfei
model: xopglm51
# ✅ 用 models 列表显示多个模型
custom_providers:
- name: xunfei
models:
- xopglm51
- xopkimik26
根据 4SAPI 博客 的分析:
桌面版 GUI 的自定义 API 表单当前有 bug,光在界面里填不生效,必须中断当前运行的模型、用
hermes model手动重选一次才能生效。
规避方法:用命令行配置(hermes config set),不要依赖 GUI 表单。
/model 的解析依赖 _PROVIDER_MODELS 静态目录(hermes_cli/models.py)。自定义 Provider 不在其中,需要手动添加:
# ~/.hermes/hermes-agent/hermes_cli/models.py
_PROVIDER_MODELS = {
...
"xunfei": [
"xopkimik26",
"xopglm51",
],
}
修改后需要 /quit + 重启 Hermes 生效。
# ── 默认模型 ──
model:
default: mimo-v2.5 # 或你的默认模型
provider: xiaomi # 内置 provider
# ── 命名自定义 Provider(多个模型) ──
custom_providers:
- name: xunfei
base_url: https://maas-coding-api.cn-huabei-1.xf-yun.com/v2
api_key:
models:
- xopglm51
- xopkimik26
# ── providers 清空(避免与 custom_providers 冲突) ──
providers: {}
| 场景 | 命令 |
|---|---|
| 配置默认模型 | hermes config set model.default |
| 配置 Provider | hermes config set model.provider |
| 会话中切换模型 | /model 或 /model custom:: |
| 验证 YAML 格式 | python -c "import yaml; yaml.safe_load(open('config.yaml')); print('OK')" |
| 查看当前配置 | hermes config |
| 重启生效 | 退出会话 (/quit) 后重新运行 hermes |
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Desktop 下拉菜单不显示自定义模型 | providers: 和 custom_providers: 同名冲突 | 只用 custom_providers:,清空 providers: |
| providers: 里的模型不显示 | default 是未知字段 | 改用 model 字段 |
| 只显示一个模型 | 用了 model(单数)而非 models(列表) | 改用 models: [model1, model2] |
| GUI 填的 API 不生效 | Desktop GUI 表单 bug | 用 hermes config set 命令行配置 |
| /model 命令找不到自定义模型 | _PROVIDER_MODELS 静态目录缺少条目 | 在 models.py 中添加模型列表 |
本文档由 Hermes Agent 自动生成,基于 2026 年 6 月的实测经验。如有更新请参考官方文档。
如果你想让 AI Agent(如 Hermes、Claude Code、Cursor 等)帮你完成上述所有配置,直接把下面的 prompt 复制粘贴发给 AI 即可。把 <占位符> 替换成你自己的值。
请帮我配置 Hermes Agent 的自定义 API 模型,要求如下:
API 地址:
API Key:
模型列表:
Provider 名称:<自定义名称,如 xunfei>
具体操作:
1. 用 hermes config set 命令配置默认模型:
- model.provider 设为 custom
- model.default 设为
- model.base_url 设为
- model.api_key 设为
2. 编辑 ~/.hermes/config.yaml(或 Windows 上的 C:Users<用户名>AppDataLocalhermesconfig.yaml),添加 custom_providers section:
custom_providers:
- name: <自定义名称>
base_url:
api_key:
models:
-
-
3. 将 providers section 清空为 providers: {},避免与 custom_providers 冲突。
4. 编辑 hermes_cli/models.py,在 _PROVIDER_MODELS 字典中添加:
"<自定义名称>": ["", ""]
这样 /model 命令才能自动识别这些模型。
5. 用 curl 测试每个模型的连通性,确认返回 HTTP 200。
6. 用 python yaml.safe_load 验证 config.yaml 格式正确。
7. 提示我重启 Hermes Desktop 以生效。
帮我配置 Hermes Agent 接入一个第三方 API: API: Key: 模型: 用 hermes config set 设好默认模型,然后在 config.yaml 里加 custom_providers,记得把 providers 清空避免冲突。
我现在 Hermes 已经配了一个自定义模型 (provider 名叫 )。 请帮我追加同一个 API 下的另一个模型 ,要求: 1. 在 config.yaml 的 custom_providers 里把 models 改成列表,包含两个模型 2. 在 hermes_cli/models.py 的 _PROVIDER_MODELS 里也加上第二个模型 3. 不要动 model.default,保留原来的默认模型