Hermes Agent 接入中转站:自定义接口的三种配法和上下文长度的要求
按 Hermes Agent 官方文档整理:运行 hermes model 选“Custom endpoint”,填地址、key 和模型名,就能让 Hermes 走中转站。讲清配置文件怎么写、同时配多个中转站的办法、Anthropic 格式的接口怎么接,以及它要求模型至少有 64,000 token 上下文这件事。
本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。
Hermes Agent 是 Nous Research 开源的自主智能体,在终端里运行,带长期记忆,能自己生成技能,也能接到聊天软件上。它的官方文档写明:任何兼容 OpenAI 接口的地址都能用,只要服务端实现了 /v1/chat/completions,就可以把 Hermes 指过去,包括第三方的 API。
接中转站最快的办法是一条命令:
hermes model
在列表里选 Custom endpoint,依次填接口地址、API key 和模型名。配置会保存下来,下次启动还在。
下面讲细节:配置文件怎么写、要同时用几个中转站怎么办、Anthropic 格式的接口怎么接,以及一个容易卡住的要求。
如果你还没弄清中转站是什么、有哪些风险,先读中转站是什么和用中转站有什么风险;选站可以看中转站排行榜。
开始之前
还没装 Hermes 的话,官方的安装命令是:
Mac、Linux:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Windows(PowerShell):
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
从中转站拿到三样东西:
| 需要什么 | 说明 |
|---|---|
| 接口地址 | OpenAI 兼容接口的地址,通常以 /v1 结尾 |
| 模型名 | 中转站模型页上写的名字,一字不差 |
| API key | 在中转站的控制台创建,多数站只显示一次 |
还要确认一件事:你要用的模型,上下文长度不能低于 64,000 token。 原因见后面“上下文长度的要求”一节。
第一种配法:用向导(推荐)
在终端里运行,注意是在 Hermes 的对话之外:
hermes model
选 “Custom endpoint (self-hosted / VLLM / etc.)”,然后按提示输入:
- 接口地址,例如
https://你的中转站地址/v1 - API key
- 模型名
这里有一个官方文档专门解释的区别,新手很容易弄混:
| 命令 | 在哪里用 | 能做什么 |
|---|---|---|
hermes model |
终端里,对话之外 | 完整的设置向导:添加供应商、填 key、配置自定义接口 |
/model |
Hermes 的对话里 | 只能在已经配好的供应商和模型之间切换 |
也就是说,/model 加不了新的中转站。想加,先用 Ctrl+C 或 /quit 退出对话,运行 hermes model 配好,再开一个新的对话。
第二种配法:改配置文件
配置在 ~/.hermes/config.yaml。官方说明这个文件是模型和接口配置的唯一依据,用向导配的最后也是写到这里。
model:
default: 模型名
provider: custom
base_url: https://你的中转站地址/v1
key_env: RELAY_API_KEY
| 配置项 | 作用 |
|---|---|
default |
默认用的模型 |
provider |
固定写 custom |
base_url |
中转站的接口地址 |
key_env |
存放 key 的环境变量的名字。也可以改用 api_key 直接写 key,但不建议明文写进文件 |
用了 key_env,要在环境里设好这个变量。Hermes 自己的环境变量文件是 ~/.hermes/.env。
以前的环境变量不管用了
如果你照着旧教程设过 OPENAI_BASE_URL 之类的变量,要知道现在的规则:官方文档说明,.env 里的 LLM_MODEL 已经移除;OPENAI_BASE_URL 还认,但只对直连 OpenAI 的那个供应商有效。接自定义接口,要用 hermes model 或者在 config.yaml 里写 model.base_url。
第三种配法:同时配几个中转站
想留一个备用的站,或者 Claude 和 GPT 走不同的线路,可以在 config.yaml 的 providers 下面给每个接口起一个名字:
providers:
relay-a:
api: https://第一个中转站地址/v1
key_env: RELAY_A_KEY
transport: chat_completions
relay-b:
api: https://第二个中转站地址/v1
key_env: RELAY_B_KEY
transport: chat_completions
配好之后,在对话里用三段式的写法切换:
/model custom:relay-a:模型名
/model custom:relay-b:模型名
中转站给的是 Anthropic 格式的接口
前面说 Hermes 接的是 OpenAI 兼容接口。如果你的中转站提供 Anthropic 原生接口、你又想走这条线路用 Claude,官方文档里有对应的写法:在具名的供应商下把 transport 设成 anthropic_messages。
providers:
relay-claude:
api: https://你的中转站的Anthropic接口地址
key_env: RELAY_API_KEY
transport: anthropic_messages
transport 一共有三个可选值:chat_completions、anthropic_messages、codex_responses。用向导配置时会明确写入;不写的话 Hermes 会自动探测。
上下文长度的要求
这是 Hermes 和别的工具不一样的地方,也是接入时最容易卡住的一点。
官方文档写明:Hermes 做带工具的智能体任务,至少需要 64,000 token 的上下文。 窗口比这小的模型会在启动时被拒绝,理由是系统提示词、工具的定义和对话状态都要占地方,太小了多步的任务跑不稳。
对接中转站的人,这意味着两件事:
- 选模型时看上下文长度。 主流的旗舰模型都远超这个数,一般不成问题;一些小模型或者被中转站限制了上下文的线路可能不够。
- Hermes 认错了长度时,手动指定。 它会自动探测模型的上下文长度,探测得不对时在配置里写明:
model:
default: 模型名
provider: custom
base_url: https://你的中转站地址/v1
key_env: RELAY_API_KEY
context_length: 200000
官方的说明是,context_length 是输入和输出加在一起的总额度,写在这里的值优先级最高。具体数字以模型官方或中转站的说明为准,不要填得比实际的大。
验证
配好之后直接启动:
hermes
发一句话,能正常回答就是接通了。再让它做一件要调用工具的事,比如列出当前目录的文件,确认工具调用也是通的。
出问题时运行:
hermes doctor
它会做一遍诊断。
还有一个“辅助模型”
官方文档提到,即使主模型用的是自定义接口,有些功能(看图、网页摘要等)会用一个单独的“辅助模型”。默认情况下,Hermes 会把这些任务也交给你的主模型所在的线路。
所以接了中转站之后,这些辅助任务的请求也会出现在中转站的用量里。看到比预想多的请求,这是原因之一。
常见问题
| 现象 | 检查什么 |
|---|---|
| 启动时被拒绝,提示上下文太小 | 模型的上下文不到 64,000 token,或者 Hermes 探测错了。换模型,或者用 context_length 指定 |
在对话里用 /model 找不到新的中转站 |
/model 只能切换已经配好的。退出对话,运行 hermes model |
返回 404 |
地址有没有带 /v1;transport 和接口是否对应 |
返回 401 |
环境变量名和 key_env 是否一致;变量有没有写进 ~/.hermes/.env 或当前环境 |
设了 OPENAI_BASE_URL 没有效果 |
这个变量现在只对直连 OpenAI 的供应商有效,改用 config.yaml |
| 回答到一半被截断 | 可能是上下文用完了。调大 context_length(如果模型确实支持),或者打开上下文压缩 |
从 OpenClaw 迁过来的
如果你之前用的是 OpenClaw,Hermes 的首次设置向导会自动发现 ~/.openclaw 并提示迁移,也可以手动运行 hermes claw migrate。迁移之后,中转站的配置仍然建议按本文检查一遍。OpenClaw 那边的接法见OpenClaw 接入中转站。