不墨 Router

发布于 2026 年 10 月 25 日 星期日

Hermes Agent 接不墨 Router:config.yaml 三步配置与两个 404

Hermes Agent v0.22.5 接不墨 Router:配 providers 块 + transport: chat_completions,Key 放 .env,附对话/工具/流式实测与两个 404 真相。

Hermes Agent 接不墨 Router:config.yaml 三步配置与两个 404

Hermes Agent 可以用 Custom Endpoint 接不墨 Router:在 config.yaml 里加一个 provider,api 指向 https://router.bumo.cc/v1,transport 选 chat_completions,Key 放进 .env 的 BUOMO_ROUTER_KEY。 本次实测对话、文件工具调用、流式输出都正常,过程中出现的两个 404/400 都会自动回退,不影响使用。

核验日期:2026-10-25。实测版本 Hermes Agent v0.22.5+1072.g05b83f6(git main,commit 05b83f632f3d),模型 deepseek/deepseek-flash。

安装

官方安装器会创建隔离的 Python 环境,不污染系统 Python:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o install.sh
HERMES_HOME=/tmp/hermes \
  bash install.sh --channel main \
  --dir /tmp/hermes/hermes-agent \
  --hermes-home /tmp/hermes

本机第一次运行时,安装器查询 stable release 报了 could not look up the latest stable release;加 --channel main 后安装成功,依赖用 uv 装进隔离 venv。装完确认版本:

Hermes Agent v0.22.5+1072.g05b83f6 (2026.9.24) · stable · local 05b83f632f3d
Install method: git
Python: 3.14.4
OpenAI SDK: 2.54.0

第一步:准备 Router Key

登录 不墨 Router,在 API Key 页面 创建一个 Key,并给钱包充值。Hermes 只用这个 Key,不需要再配 DeepSeek 或 OpenAI 官方 Key。

第二步:写 config.yaml

编辑 $HERMES_HOME/config.yaml:

model:
  provider: bumo
  default: deepseek/deepseek-flash
providers:
  bumo:
    name: Bumo Router
    api: https://router.bumo.cc/v1
    key_env: BUOMO_ROUTER_KEY
    transport: chat_completions
    default_model: deepseek/deepseek-flash

几个字段的含义:

字段 填什么 说明
api https://router.bumo.cc/v1 OpenAI 兼容端点,停在 /v1
key_env BUOMO_ROUTER_KEY 从环境变量读 Key,不写进配置文件
transport chat_completions 走 /v1/chat/completions
default_model deepseek/deepseek-flash 必须是 Router 的完整模型 ID

第三步:把 Key 放进 .env

在 $HERMES_HOME/.env 里写:

BUOMO_ROUTER_KEY=sk-...   # 换成你的 Router Key

然后做一次非交互调用验证:

hermes -z "Reply with exactly: READY" \
  -m deepseek/deepseek-flash \
  --provider bumo --yolo

输出 READY 就说明地址、Key、模型三项都对。--yolo 是允许工具自动执行;不带它时工具调用会停在确认步骤。

三项实测结果

项 输入 结果
对话 Reply with exactly: READY 输出 READY,约 1.1 秒
工具调用 让它用文件工具读当前目录的 probe2.txt 输出 TOOLTOKEN-I3gWmWDn,与文件内容一致
流式 主对话请求 请求体 stream:true,响应 200 + SSE:data: {"id":...,"object":"chat.completion.chunk",...}

两个 404 / 400 的真相

Hermes 启动时会先探测模型详情,标题生成时会带 response_format。这两处都会报错,但都会自动回退,不需要你改配置。

1. 模型详情端点 404

GET /v1/models/deepseek/deepseek-flash  ->  404
<title>404: This page could not be found</title>
之后回退 GET /v1/models  ->  200

Router 目前只提供列表端点 /v1/models,没有单个模型详情。Hermes 拿不到上下文长度等元数据时会回退到列表,不影响对话、工具和流式,只影响元数据自动探测。

2. response_format: json_schema 被拒

会话标题生成请求带:

"response_format":{"type":"json_schema","json_schema":{"name":"..."}}

Router 返回:

400 {"error":{"message":"This response_format type is unavailable now (request_id: ...)","type":"invalid_request_error","param":null,"code":"invalid_request_error"}}

Hermes 会自动去掉 response_format 重试,第二次 200,标题正常生成。这个限制来自上游模型对 json_schema 的支持范围,Router 只是原样透传。看到日志里这一行不用当成接入失败。

常见问题

现象 先查
401 / Invalid API key .env 里的 BUOMO_ROUTER_KEY 是否被当前 HERMES_HOME 读到
404 / model not found 模型 ID 是否完整、大小写是否一致
工具不执行 非交互调用是否加了 --yolo
启动日志出现 /v1/models/... 404 正常回退,忽略即可
日志出现 response_format 400 标题生成自动重试,忽略即可
回复被截断 调大最大输出;推理模型会先消耗思考预算

模型 ID 必须原样复制。Router 当日公开列表有 28 个模型,可直接查看 https://router.bumo.cc/v1/models。

边界

本次只验证了最小对话、一次文件读取工具和流式输出,没有覆盖长上下文、图片输入、并行工具调用、断流重连等边界。Hermes 的 Agent 循环会反复调用模型,长任务的实际 token 消耗要以 Router 用量记录为准。安装器与配置字段可能随版本变化,升级后以实际报错和官方文档为准。

前往不墨 Router 获取 Key。Hermes 这边记住三点:api 到 /v1、transport: chat_completions、Key 放 .env。

继续阅读