跳转到内容
OmniRoute source

AgentRouter Setup Guide (中文 (简体))

高级:通过 Claude Code 兼容提供者类型连接

Section titled “高级:通过 Claude Code 兼容提供者类型连接”

OmniRoute 还通过 Claude Code 兼容提供者类型(anthropic-compatible-cc-*)支持 AgentRouter(以及类似的中继服务),该类型使用具有正确请求特征的 Anthropic Messages API。将通用 openai-compatible-chat 提供者指向 https://agentrouter.org 将 无法正常工作——上游 WAF 会拒绝看起来不像 Claude Code 的请求。


  • 一个 AgentRouter 账户和 API 密钥。新注册用户可通过项目 README 中的推广 链接获得免费额度。
  • 运行 OmniRoute 时已启用 ENABLE_CC_COMPATIBLE_PROVIDER 功能标志 (见下文)。

Claude Code 兼容提供者类型受功能标志控制,因为它发送的流量会高度模拟官方 Claude Code 客户端。请在 启动 OmniRoute 前设置以下环境变量来启用它:

终端窗口
ENABLE_CC_COMPATIBLE_PROVIDER=true

Docker 示例:

终端窗口
docker run -d --name omniroute \
--restart unless-stopped \
-p 20128:20128 \
-v omniroute-data:/app/data \
-e ENABLE_CC_COMPATIBLE_PROVIDER=true \
diegosouzapw/omniroute:latest

重启后,除现有的 OpenAI 兼容和 Anthropic 兼容流程外,控制面板中还会显示添加 Claude Code 兼容提供者选项。

  1. 打开控制面板 → 提供者 → 添加提供者。
  2. 选择添加 Claude Code 兼容提供者(仅在设置上述标志后可见)。
  3. 填写以下字段:
字段 值
名称 AgentRouter(或任意标签)
前缀 agentrouter(显示在日志和控制面板中的友好别名)
基础 URL https://agentrouter.org
聊天路径 /v1/messages?beta=true(默认值——保持不变)

规范模型标识符仍使用完整的提供者节点 ID (anthropic-compatible-cc-{uuid}/{model})。前缀只是一个显示 别名,由 src/lib/usage/callLogs.ts 解析,以提供更友好的日志输出。

  1. (可选)在验证字段中粘贴你的 API 密钥,然后点击检查,以便在保存前 确认连接是否正常。
  2. 点击添加。

创建完成后,打开该提供者,并使用你的 AgentRouter API 密钥(sk-...)添加一个连接。该连接的 test_status 应变为 active。

使用提供者的前缀作为命名空间来引用模型:

终端窗口
curl -X POST http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "agentrouter/claude-opus-4-6",
"messages": [{"role": "user", "content": "hello"}],
"max_tokens": 100
}'

规范模型 ID anthropic-compatible-cc-{uuid}/claude-opus-4-6 也可使用, 并且数据库和组合配置中显示的正是此 ID。

或者,像使用任何其他提供者一样,将其添加到组合中,以实现路由、故障转移和配额管理。


作为参考,cc-compatible 桥接器会在每个上游请求中发送以下内容 (参见 open-sse/services/claudeCodeCompatible.ts):

请求头 值
Authorization Bearer <api-key>
User-Agent claude-cli/2.1.258 (external, sdk-cli)
anthropic-version 2023-06-01
anthropic-beta claude-code-20250219,interleaved-thinking-2025-05-14,effort-2025-11-24
每个连接的思维内容脱敏测试版开关 对明确要求思维流经过脱敏的上游添加 redact-thinking-2026-02-12
每个连接的思维内容摘要开关 对尚未设置显示模式的 CC Compatible 思维请求添加 display: "summarized"
anthropic-dangerous-direct-browser-access true
x-app cli
X-Stainless-* 各种 Stainless SDK 请求头(语言、软件包版本、操作系统、架构等)

这使请求能够通过上游 WAF / 客户端白名单。


{"error":{"message":"unauthorized client detected, ..."}} — 你的请求 与 Claude Code 线路镜像不匹配。当提供者被配置为 openai-compatible-chat 而不是 anthropic-compatible-cc,或者启动时 未设置 ENABLE_CC_COMPATIBLE_PROVIDER=true 标志时,就会发生这种情况。

{"error":{"message":"无效的令牌","type":"new_api_error"}} (HTTP 401) — “令牌无效”。线路镜像正确,但 API 密钥被拒绝。请在 AgentRouter 控制面板中生成 新密钥并更新连接。

{"error":{"code":"content-blocked","type":"agent_router_api_error"}} (HTTP 400) — AgentRouter 的审核钩子拒绝了请求内容,或者该密钥的套餐不允许使用所请求的模型。请尝试其他提示词或模型;如果正常提示词持续被阻止,请联系 AgentRouter 支持。

仅在特定模型上出现 [400]: content-blocked — 大多数 AgentRouter 套餐仅 允许使用部分模型(例如 claude-opus-4-6)。即使密钥有效,其他模型 ID 也会返回 unauthorized_client_error。请在 AgentRouter 控制面板中检查你的套餐涵盖哪些模型。

omniroute 日志中的 Invalid JSON response from provider (reset after Ns) — 上游返回了非 JSON 正文(通常是来自 WAF 的 HTML 错误页面)。 这通常意味着请求根本没有到达 AgentRouter 后端——请再次确认 提供者 ID 以 anthropic-compatible-cc- 开头(注意末尾的连字符—— 参见 open-sse/services/claudeCodeCompatible.ts 中的 CLAUDE_CODE_COMPATIBLE_PREFIX),并确保该功能标志已启用。

即使 AgentRouter 提供者已存在,仍出现 unauthorized client detected / HTML 错误页面 — 你很可能拥有多个 AgentRouter 提供者,并且请求命中了错误的提供者。如果之前遗留的手动创建的 anthropic-compatible-*(非 cc)或 openai-compatible-chat-* 提供者 使用了 agentrouter 前缀,它可能会占用 agentrouter/<model> 模型 ID(组合也可能通过节点 ID 引用它),从而将流量路由到该提供者—— 它发送通用 User-Agent,因而被拒绝——而不是路由到已内置正确线路镜像的 agentrouter 提供者。请在 omniroute 日志中检查模型实际解析到的位置 (ROUTING 标签会显示 agentrouter/<model> → <providerId>/<model>);如果 <providerId> 不是 agentrouter,请统一使用原生提供者:将组合指向 agentrouter/<model>(providerId 为 agentrouter),并删除重复的 兼容提供者。原生提供者无需任何线路镜像配置,也无需 customUserAgent。



OmniRoute 源码 (a58000c7685f)

HagiCode

HagiCode 是一套智能体编码工作台:结构化工作流、多 Agent 并行执行与 Hero Dungeon 视图,把想法变成真正交付的软件。

让想法更快变成好用的软件,让智能编码更聪明、更高效,也更有趣。

HagiCode 浅色主题主界面截图
  • Smart结构化工作流将意图转化为从想法到交付的可执行路径。
  • Efficient多 Agent 工作流让调研、实现与审阅并行推进。
  • FunHero Dungeon 让长时间编码协作更直观、更有参与感。
访问 HagiCode