配置 Hermes Agent
Hermes Agent 是 Nous Research 开发的开源 AI agent 框架,与 Claude Code、Codex、OpenClaw 同属一类——可在终端、消息平台和 IDE 中使用工具调用完成复杂任务。
Kitcoding 支持通过 Anthropic 兼容端点接入 Hermes。
前置条件
已 创建 API 令牌,推荐分组:根据所用模型选择对应分组。
- 使用 Claude 模型 →
Claude特价-缓存优化或ClaudeCode特价 - 使用其他模型 → 按 模型广场 选择对应分组
⚠️ 不要用 vip / svip 分组
Hermes 是自托管的第三方 Agent,用 vip / svip 分组供 API 可能导致账号封禁。这一点与 OpenClaw 相同。
一、安装
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashiex (irm https://hermes-agent.nousresearch.com/install.ps1)安装说明
Hermes 使用 Python(uv 管理依赖),原生安装脚本会自动处理 Python 3.11、Node.js、ripgrep、ffmpeg 等全部依赖。Windows 下还会自动安装便携 Git Bash,无需额外配置。
验证安装
hermes --version 可检查安装状态。首次运行 hermes 会自动生成 ~/.hermes/ 配置目录。
二、配置要点
provider填写协议适配器名,而非中转商名。 应填anthropic,不是kitcoding或custom。中转由base_url指定。model填写官方模型 ID,而非中转商别名。 例如claude-sonnet-4-6。使用自定义别名会导致 404 或空响应。provider决定 API 格式与默认端点。 调用 Claude 必须使用provider: anthropic。填写错误(如gemini或custom)会绕过base_url,将请求发往错误的服务端。
三、推荐配置
配置文件:~/.hermes/config.yaml
model:
default: claude-sonnet-4-6 # 必须是 Anthropic 官方模型 ID
provider: anthropic # 协议适配器名,不是 "kitcoding" 或 "custom"
base_url: https://kitcoding.com # 中转入口(Anthropic 格式不加 /v1)
api_key: "sk-..." # Kitcoding 签发的令牌
# 重要:关闭模型目录,防止覆盖手填的模型名
model_catalog:
enabled: false如果不想把 API Key 明文写在 config.yaml 里,可用环境变量引用:
model:
api_key: ${KITCODING_API_KEY}然后在 ~/.hermes/.env 中添加:
KITCODING_API_KEY=你的-kitcoding-令牌配置文件路径
Hermes 默认读取 ~/.hermes/config.yaml。如果用 hermes --profile <name> 多 profile 管理,配置文件在 ~/.hermes/profiles/<name>/config.yaml。
四、验证
改完配置后重启 gateway:
hermes gateway restart然后验证:
hermes doctor # 诊断 provider/鉴权
echo "say hello" | hermes run - # CLI 冒烟测试能正常返回即配置成功。
五、常见错误速查
| 错误现象 | 原因 | 修复 |
|---|---|---|
Unknown provider 'kitcoding' | provider 填了中转商名 | 改为 anthropic |
| 消息无回复、不报错 | provider: custom 走了 OpenAI 格式,模型名无效导致空响应 | 改为 anthropic + 官方模型 ID |
| HTTP 404 | provider: gemini 强制走 Google 端点,绕开了 base_url | 改为 anthropic |
| 模型名不生效 | model_catalog.enabled: true 覆盖了手填值 | 设为 false |
六、Hermes vs 其他工具
| Claude Code | Codex | Hermes Agent | |
|---|---|---|---|
| 开发商 | Anthropic | OpenAI | Nous Research |
| 开源 | 否 | 否 | 是 |
| 默认模型 | Claude | GPT | 可选任意 |
| 多 provider | 单一 | 单一 | 内置支持 |
| 消息平台 | 否 | 否 | Telegram/Discord 等 |
Hermes 的主要优势是开源 + 多 provider 原生支持 + 消息平台接入。
七、使用 delegate_task(子 agent)的注意事项
如果使用 Hermes 的 delegate_task 功能派出子 agent,需要注意凭证路由问题——默认配置下子 agent 可能被错误路由到 Anthropic 官方端点导致 401。解法见本页 delegate_task 子 agent 报 401。
致谢
本文核心结论来自社区用户 Vincent Lau 的完整排查与实测验证(2026-06-08 ~ 06-10)。感谢细致的排查与分享。
delegate_task 子 agent 报 401
贡献者 Vincent Lau · 2026-06-10 生产环境验证通过
贡献者 Vincent Lau · 2026-06-10 生产环境验证通过
症状
主 agent 工作正常,调用 delegate_task 派出子 agent 时失败:
Error code: 401 - {'error': {'message': 'invalid x-api-key'}, 'request_id': 'req_011C...'}子 agent status: failed、api_calls: 1,主 agent 用同一把 key 却正常。
根因
子 agent 被路由到了 Anthropic 官方端点 api.anthropic.com 而非 kitcoding.com。
Hermes 解析子 agent 凭证的优先级为:
delegation.base_url有值 → 直连该端点delegation.provider有值 → 走 credential pool- 两者都空 → 子 agent 完全继承父 agent
当设置了 delegation.provider = anthropic 时进入第 2 条,credential pool 记录的 base_url 因缺少 ANTHROPIC_BASE_URL 回落到 https://api.anthropic.com。子 agent 拿到正确的 key + 错误的官方端点 → 401。
如何区分官方端点 vs Kitcoding
Kitcoding 返回的 401 格式为 {"type":"new_api_error"} 且 request_id=None;官方 Anthropic 返回 req_011C... 格式。日志中出现 req_011C... 即表示请求被路由到了官方。
修复
清空所有 delegation 配置,让子 agent 继承父 agent。
hermes config set delegation.base_url ""
hermes config set delegation.provider ""
hermes config set delegation.api_mode ""
hermes config set delegation.api_key ""改完后重启 gateway:
/restart
# 或
hermes gateway run --replace原理
清空 delegation 后进入优先级第 3 条——子 agent 自动继承父 agent 的 model.base_url(https://kitcoding.com)、model.provider(anthropic)和 API key。主 agent 能正常工作,子 agent 就能正常工作。无需写死额外配置,也不存在切换后端时的遗留问题。
验证
派一个最小子 agent:
goal: 执行
echo delegation-ok并原样回报 stdout
判定标准:
- ✅ 子 agent
status: completed、api_calls >= 1 - ❌ 若仍看到
req_011C...,说明未重启生效
致谢
本文由社区用户 Vincent Lau 完成根因分析与生产环境验证,所有结论均附源码与日志依据。
经验补充
用 Hermes 配 Kitcoding 的实战经验欢迎 投稿。