介绍通过兼容 Anthropic Messages 格式的端点,让 Claude Code 使用 DeepSeek、Kimi 等模型,并讨论配置、任务适配与成本。文章明确提示,这种非 Claude 模型接入方式不受 Anthropic 官方支持。
最初于 2026 年 10 月 16 日发布在 boostrail.com。
让 Claude Code 使用其他模型,关键在于一个事实:Claude Code 使用 Anthropic Messages 格式,任何支持这一格式的 endpoint 都能响应它。只要把 Claude Code 指向这样的 endpoint,再指定模型,同一套终端 Agent、工具和工作流就能运行在 DeepSeek、Kimi、GLM、Qwen 或 MiniMax 上。
本文介绍配置方法、不同模型适合的工作、我们在 2026 年 10 月 16 日的测试结果,以及开始长时间会话前需要了解的限制。有一点先说清楚,免得被埋在后面:Anthropic 的官方文档明确表示,不支持通过任何 gateway 将 Claude Code 路由到非 Claude 模型。这套配置能运行,是因为协议兼容,并不代表有人为这种组合提供认证。正式依赖它之前,请先用自己的代码仓库测试。
反复被提到的理由有三个。
单次任务的成本。 Coding Agent 每一轮都会重新发送 system prompt、工具定义和对话内容。在我们的测试中,即使只让 Claude Code 2.1.295 回复一个词,它仍然发送了 20,751 个 input tokens。到了这个量级,决定账单的更多是模型的 token 单价,而不是某一条 prompt。
不用等待用量窗口重置。 订阅按时间窗口计量 Agent 用量,高强度会话可能在任务进行到一半时耗尽额度。通过 API key 按 token 付费,就没有需要等待重置的用量窗口。
按任务选择模型。 一些团队保留 Claude 来做规划和解决棘手的调试问题,把常规修改、运行测试和探索代码仓库交给更便宜的模型。Claude Code 允许分别设置主模型、后台模型和 subagent 模型。
关于订阅用量窗口和速率限制的更完整讨论,请参阅《Coding Agents and Rate Walls》。
Claude Code 从 ANTHROPIC_BASE_URL 读取 endpoint,从 ANTHROPIC_AUTH_TOKEN(以 Bearer token 发送)或 ANTHROPIC_API_KEY(以 x-api-key 发送)读取凭证。每个请求都会使用 Anthropic 格式,携带你配置的模型名称,发送到该 base URL 下的 /v1/messages。
BoostRail 为模型目录中的所有文本模型提供 /v1/messages,并不局限于 Claude。请求会被转换为实际提供该模型服务的路由所需的格式,响应则以 Anthropic 流式事件返回,其中也包括工具调用。无法应用的字段会列在 Messages 参考文档中,并通过 x-boostrail-degraded 响应头报告,因此不会悄悄丢弃任何字段。
第 1 步: 在 BoostRail 控制台创建一个 key。同一个 key 可以用于模型目录中的所有模型。
第 2 步: 将配置写入 ~/.claude/settings.json。配置文件可以让从桌面启动的实例和后台 Agent 都读取到设置,而通过 shell 导出的环境变量无法可靠地覆盖这些场景。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.boostrail.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "kimi-k3[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4.1-flash",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
对于接受 Bearer token 的 gateway,Anthropic 文档推荐使用 ANTHROPIC_AUTH_TOKEN 作为凭证变量。设置这个变量后,请求会携带这个 key,而不是使用你的 claude.ai 登录身份,订阅的用量限制也就不适用于这些请求。
ANTHROPIC_MODEL 设置主模型。[1m] 后缀告诉 Claude Code,这个模型拥有 100 万 token 的上下文窗口;Claude Code 会在发送请求前去掉这个后缀,因此 BoostRail 收到的是 kimi-k3。
ANTHROPIC_DEFAULT_HAIKU_MODEL 将会话标题、摘要等后台工作交给更便宜的模型。
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 阻止 Claude Code 发送只有 Anthropic 自家 API 才接受的预发布字段。
第 3 步: 在开始长时间会话前检查连接。下面使用同一个 key 直接发送请求:
curl https://api.boostrail.com/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "kimi-k3", "max_tokens": 256, "messages": [{"role": "user", "content": "Reply with OK"}]}'
如果返回的 JSON 响应体中,content 数组包含回复,就说明 key 和 base URL 可以正常工作。给 max_tokens 留出余量:推理模型会将其中一部分用于思考,在预算只有 16 tokens 时,Kimi K3 返回了空的 content 数组。接着启动 claude,运行 /status,查找 Anthropic base URL 这一行。如果没有,说明这些变量没有传入当前会话。Coding Agents 页面也提供了 Codex CLI、Cline 和其他工具的同类配置。
下面的模型 ID 都是 BoostRail 接受的 ID。模型定位来自各家实验室自己的 model card 或公告,链接位于最后一列,因此请将它们视为实验室自己的说法,而不是我们的结论。
许多团队起步时会采用一种实用分工:用能力较强的模型作为主模型,负责规划和跨文件修改;用 deepseek-v4.1-flash 处理后台工作,以及运行读取和总结代码的 subagent。各模型的输入、输出价格列在 Models 页面。想进一步了解这些实验室,可以参阅《Chinese AI Models in 2026》。
2026 年 10 月 16 日,我们使用 BoostRail 的内部测试 key 做了两项检查。
通过 /v1/messages 完成两轮工具调用。 每个模型都收到一个 read_file 工具,以及问题“这个项目需要哪个 Python 版本?”。上表中的五个模型都调用了工具并选择了正确的文件,接收工具结果后,给出了正确答案,并以 end_turn 结束。这说明这些模型能够正确完成 Claude Code 所依赖的请求与响应格式的往返交互。每个模型只测试了一次,并不保证所有路由都能如此。
直接测试 Claude Code。 我们以 print mode 运行 Claude Code 2.1.295,通过 BoostRail 将 glm-5.3 设为主模型,要求它创建一个 Python 文件并运行。它用三轮交互完成了文件写入、通过 python3 运行文件,并报告了正确输出。以 kimi-k3 和 deepseek-v4.1-flash 为主模型进行的较短测试也都正常返回。这些测试中有两个值得关注的细节:
Kimi K3 和 DeepSeek V4.1 Flash 的用量数据中出现了缓存读取(cache_read_input_tokens 大于零),因此这些测试中的重复上下文按缓存读取价格计费。GLM-5.3 则几乎没有缓存读取。
Claude Code 自己显示的费用是根据内置价格表计算的,并不是你的实际账单。对于 DeepSeek 那次只回复一个词的请求,它显示的费用为 $0.083;同样的 token 用量,按 DeepSeek V4.1 Flash 的目录价格计算,约为 $0.003。请在 BoostRail 控制台查看支出,那里记录了每个请求实际采用的价格。
/model 选择器不会列出这些模型。 开启 gateway 模型发现后,Claude Code 只保留 ID 中包含 "claude" 或 "anthropic" 的模型。直接输入 ID 即可:/model glm-5.3 会切换当前会话的模型。
上下文窗口。 对于不认识的模型 ID,Claude Code 会假定其上下文窗口为 200K tokens,并在达到这个大小之前压缩对话。对于拥有 100 万 token 窗口的模型,请添加 [1m]。对于上限低于 200K 的模型,例如 BoostRail 上的 qwen3-coder-flash,请将 CLAUDE_CODE_AUTO_COMPACT_WINDOW 设为该模型的上限。
Token 计数。 BoostRail 不提供 /v1/messages/count_tokens。Claude Code 会退回到自己的估算方式,因此 /context 显示的是近似值。
Thinking blocks。 对话历史中较早的 thinking blocks 会被接受后丢弃,并在 x-boostrail-degraded 中列出。每个模型都有自己的推理方式。
Auto mode。 Auto mode 会针对每个操作单独发送一次安全分类请求。在我们的测试中,这个请求被发送给了一个 Claude 模型,而不是我们配置的模型。在 Claude Code 2.1.295 中使用非 Claude 主模型时,auto mode 阻止了它无法评估的 shell 命令。请使用默认权限模式,并为你信任的命令配置 allow rules。
一条诊断信息。 对于 Claude Code 不认识的模型 ID,print mode 会先输出 [claude-code:unrecognized_model]。这只是提示信息,请求仍会正常发送。
你不必在“全部切换”和“完全不切换”之间二选一。所有模型都使用同一个 endpoint 和 key,因此可以继续将 claude-sonnet-5 作为主模型,只把后台工作交给 deepseek-v4.1-flash,也可以反过来。CLAUDE_CODE_SUBAGENT_MODEL 设置 subagent 的默认模型,而单个 subagent 的定义仍然可以指定自己的模型。当某个困难步骤需要 Claude 的判断力时,运行 /model claude-sonnet-5 就能切换回来,无须修改配置文件。
如果你的团队已经与模型提供商签约,BYOK 可以在同一个 endpoint 后,使用你自己的提供商 key 来运行目录中的模型;具体请参阅 BYOK 指南。
不支持。Anthropic 文档明确表示,不支持通过任何 gateway 将 Claude Code 路由到非 Claude 模型。这套配置能够工作,是因为双方使用相同的 Messages 格式。请将它视为需要由你自行负责的配置,并在自己的代码上测试。
不会。设置 ANTHROPIC_AUTH_TOKEN 后,Claude Code 会发送这个 key,而不是使用你的 claude.ai 登录身份,订阅的用量限制也就不适用于这些请求。用量会按 token 计费,费用由拥有该 key 的 BoostRail 账户承担。
/model 中没有 DeepSeek、Kimi 或 GLM?Gateway 模型发现只会添加 ID 中包含 "claude" 或 "anthropic" 的模型。请通过 ANTHROPIC_MODEL 设置模型,或在会话中输入 /model,后面跟上模型 ID。
这取决于模型所使用的路由。支持缓存时,缓存读取量会显示在 cache_read_input_tokens 中,并按 Models 页面列出的缓存读取价格计费。在我们的测试中,Kimi K3 和 DeepSeek V4.1 Flash 都出现了缓存读取,GLM-5.3 则很少。
在自己的机器上,请使用 ~/.claude/settings.json。不要把 key 放进项目的 .claude/settings.json,这个文件会被提交到代码仓库,并分享给所有克隆仓库的人。
如需进一步处理,你可以考虑屏蔽此人和/或举报滥用行为。