Skip to content

Hermes 接入

本页对应 Nous Research 的 Hermes Agent,它提供终端 Agent、持久记忆和消息平台集成。Air Router 推荐通过 Responses 格式接入 Hermes。

1. 安装 Hermes

bash
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
powershell
iex (irm https://hermes-agent.nousresearch.com/install.ps1)

重新打开终端,或按安装器提示加载 Shell 配置,然后运行:

bash
hermes --version

2. 保存 API Key

Hermes 的命名 Provider 可以通过 key_env 从环境变量读取密钥:

bash
export AIR_ROUTER_API_KEY="sk-your-key"
powershell
$env:AIR_ROUTER_API_KEY="sk-your-key"

3. 配置 Responses Provider

编辑 ~/.hermes/config.yaml,将两处 your-model-id 替换为控制台中的实际模型 ID:

yaml
model:
  provider: custom:air-router
  default: your-model-id

providers:
  air-router:
    name: Air Router
    api: https://www.air-router.com/v1
    key_env: AIR_ROUTER_API_KEY
    default_model: your-model-id
    transport: codex_responses

Hermes 将 OpenAI Responses wire mode 命名为 codex_responses。这里的 transport 会让客户端请求 Air Router 的 Responses 接口,而不是回退到 Chat Completions。

配置字段说明:

字段说明
model.provider指向命名 Provider custom:air-router
model.defaultAir Router 控制台中的实际模型 ID
apiAir Router Base URL,必须包含 /v1
key_env保存 API Key 的环境变量名称
default_model当前 Provider 的默认模型
transportcodex_responses,启用 Responses 格式

不要使用裸 provider: custom

对于非 OpenAI 官方域名,Hermes 的裸 custom Provider 会保守地回退到 chat_completions。要稳定使用 Responses,必须使用上面的命名 Provider 和 transport: codex_responses

4. 使用配置向导

也可以先通过官方模型向导创建自定义端点:

bash
hermes model

在向导中:

  1. 选择 Custom endpoint (self-hosted / VLLM / etc.)
  2. API Base URL 填写 https://www.air-router.com/v1
  3. API Key 填写控制台创建的 sk-... 密钥。
  4. Model name 填写控制台中的实际模型 ID。
  5. 保存并设为默认模型。

向导完成后检查 ~/.hermes/config.yaml。如果生成的是裸 provider: custom,请改成上一节的命名 Provider,并确认存在 transport: codex_responses

不要使用旧配置

旧教程中的 LLM_MODEL 已被移除。OPENAI_BASE_URL 只适用于特定的内置 Provider,也不能代替此处的命名 Provider 配置。

5. 验证

先运行诊断:

bash
hermes doctor

然后启动终端会话:

bash
hermes

常见问题

向导无法识别模型

确认 Model name 与控制台中的模型 ID 完全一致,Base URL 以 /v1 结尾。

修改配置后仍使用旧模型

退出当前 Hermes 会话,确认 model.providercustom:air-router,然后重新启动 hermes

hermes doctor 提示认证失败

确认启动 Hermes 的终端存在 AIR_ROUTER_API_KEY,并检查 key_env 拼写和 YAML 缩进。

请求仍然走 Chat Completions

检查 Provider 是否为命名配置,并确认 providers.air-router.transport 的值严格为 codex_responses