一个能翻译协议、压缩工具输出的 Claude Code 代理
Claude Code 只支持 Anthropic Messages 这一种协议。请求全部发到 api.anthropic.com,一切正常,只是要按 Anthropic 的定价付费。如果想换一个后端,比如用 GLM、Kimi 这些国产模型,就会遇到问题。Claude Code 本身不支持 OpenAI Chat,也不支持 Gemini,协议是固定的。
市面上有一些简单的反向代理,可以转发请求、替换 API Key。但它们不做协议翻译,也不压缩工具输出。编程 Agent 的 token 消耗大头恰恰在工具输出上。这些代理也不会在某个 provider 故障时自动切换。
YoloRouter 是一个 Go 编写的单个二进制文件,原生支持四种主流协议:Anthropic Messages、OpenAI Chat、OpenAI Responses、Gemini。这四种协议通过一个共享的中间表示互相翻译。Claude Code 用 Messages 协议和 YoloRouter 通信,YoloRouter 可以把请求原样转发给支持 Anthropic 协议的 provider,也可以翻译成 OpenAI Chat 转发给只提供 OpenAI 接口的模型。响应再转回 Anthropic 流式格式,Claude Code 收到后和直连 Claude 没有区别。
对比
| YoloRouter | 简单代理 | 直连 Anthropic | |
|---|---|---|---|
| 协议翻译 | 四种协议互相转换 | 只透传 | 原生 |
| 接入 GLM / Kimi / Qwen | 可以,必要时翻译协议 | 不可以 | 不可以 |
| 工具输出压缩 | 压缩测试输出、diff、grep 结果 | 不支持 | 不支持 |
| Key 轮转与故障转移 | 401/429 自动轮转,5xx 自动切换 | 通常单 Key | 单 Key |
| 部署 | 单个二进制,一条命令安装 | Python 进程或 Docker | 无 |
直连 Anthropic 的优势
直连有三个明显的优势。
第一是延迟。直连只有一跳网络请求,代理会多一跳,对延迟敏感的场景有影响。
第二是官方支持。Anthropic 对自己的 API 提供完整的支持,出了问题责任方明确。用代理的话,代理这一层需要自己维护。
第三是零维护。直连不需要安装任何软件,也没有要更新的东西。代理是一个需要长期维护的组件。
如果这三条对你都不重要,可以继续往下看。
适合自托管 YoloRouter 的情况
想用 Claude Code 接国产模型,这是最直接的理由。智谱 GLM 和通义千问现在提供原生支持 Anthropic 协议的接口,YoloRouter 直接透传,不需要翻译,同时仍然做工具输出压缩和 Key 轮转。Kimi、DeepSeek 这类只提供 OpenAI 兼容接口的模型,YoloRouter 会把 Messages 请求实时翻译成 OpenAI Chat。不管后端是什么协议,在 Claude Code 里用 /model 命令切换模型都可以。
编程 Agent 的 token 消耗也值得考虑。Claude Code 会产生很大的工具输出,比如完整的测试日志、多文件 diff、全仓库 grep 结果。YoloRouter 会压缩这些内容,折叠通过的测试、去掉 diff 里的 blob hash、去重 grep 匹配。它只压缩最新一轮,更早的消息保持原样,prompt 缓存不受影响。
如果团队共用多个 API Key,Key 轮转和故障转移就有用。YoloRouter 遇到 401/429 会自动换 Key,遇到 5xx 错误会自动切到下一个 provider,Claude Code 感知不到失败。
最后,如果想把服务部署在自己的基础设施上,YoloRouter 是单个二进制,每个请求都会记录模型、token 数和成本。除了你配置的上游调用,数据不会离开你的网络。
安装和配置
安装只需要一条命令:
curl -fsSL https://get.yolorouter.com/install.sh | bash
然后把 Claude Code 指向你的实例:
export ANTHROPIC_BASE_URL="http://localhost:8080"
export ANTHROPIC_AUTH_TOKEN="your-yolorouter-api-key"
export ANTHROPIC_MODEL="glm-5.2"
添加 provider、配置模型、故障排查的完整说明,见 Claude Code 指南。