Hermes Agent 自定义 Provider 配置踩坑

最近在折腾 Hermes Agent,想用中转站 API 接入大模型,结果模型切换一直报错。折腾半天才发现是配置思路没搞对。

两种思路的差异

OpenClaw 和 Hermes Agent 的模型配置思路不一样:

  • OpenClaw:先在配置里把所有模型定义好,切换时从已配置的模型池里选
  • Hermes Agent:只配置 provider,运行时问 provider "你有哪些模型",从返回的列表里选

Hermes 更倾向于动态获取模型列表,而不是静态配置。

错误配置

我一开始的配置是这样的:

model:
  default: glm-5
  provider: custom
  base_url: http://my-ai-gateway:8080/v1
  api_key: sk-yourkey

能用,但切换模型时一直提示:

Error: Note: could not reach this custom endpoint's model listing at http://my-ai-gateway:8080/v1/models. Hermes will still save glm-5, but the endpoint should expose /models for verification.
If this server expects /v1, try base URL: http://my-ai-gateway:8080

意思是 Hermes 找不到 /models 端点,无法验证模型列表。

为什么内置 Provider 没问题?

换成 Hermes 内置的 provider(如 openai、anthropic)就正常,既能载入模型列表,也能直接切换。

原因是内置 provider 的 base_url 和模型列表格式都是预设好的,Hermes 知道怎么去问。而 provider: custom 太模糊,Hermes 不知道该怎么处理。

正确配置

翻了文档又反复测试,终于搞对了:

model:
  default: glm-5
  provider: custom:my-ai-gateway

custom_providers:
  - name: my-ai-gateway
    base_url: http://my-ai-gateway:8080/v1
    api_key: sk-yourkey
    model: glm-5

关键点:

  1. 先定义 custom_providers:把自定义供应商的名称、地址、密钥都配好
  2. model.provider 不能只写 custom:要写成 custom:供应商名称 的格式,比如 custom:my-ai-gateway

因为 custom_providers 可以定义多个自定义供应商,所以 model.provider 得指定具体用哪个。

补充说明

如果你的中转站 /models 端点返回空或格式不对,Hermes 仍然会报 warning,但模型通常还是能用的。如果想彻底解决,可以关注 Hermes Agent 的相关 PR(如 pr19685、pr19686),修复了 custom provider 的认证和参数传递问题。


折腾一圈,其实就一句话:自定义供应商要先在 custom_providers 里定义好,然后 model.providercustom:名称 的格式引用。

posted @ 2026-05-14 15:26  surenkid  阅读(2242)  评论(0)    收藏  举报