Claude Code 换国产模型跑法
最后更新: 2026-07-16
Claude Code 只认 ANTHROPIC_BASE_URL 和 ANTHROPIC_MODEL 这两个环境变量。经 kkaiapi,把 base_url 换成中转地址,model 换成 glm-5.2、deepseek-v4-pro、kimi-k2.7-code 这些国产模型 ID,Claude Code 的自动化能力原样保留,一个 Key 随时切回 claude-sonnet-5。
先说结论:三行配置,模型随便换
Claude Code 每次请求都读 ANTHROPIC_BASE_URL,把它指向 kkaiapi 的中转地址,Agent 的读代码、跑测试、改文件这些能力原样不变。真正有意思的地方在 ANTHROPIC_MODEL:这个字段不是只能填 Claude 的模型 ID,填 glm-5.2、deepseek-v4-pro、kimi-k2.7-code、qwen3.7-max、MiniMax-M2.7 这些国产模型 ID 同样能跑,因为 kkaiapi 后端把 Claude 的请求协议转译给了这些上游,不是伪装成 Claude 的马甲模型。 一个 Key 覆盖全部:配置文件里放哪个模型就跑哪个,想切回 claude-sonnet-5 或 claude-opus-4-8,把 ANTHROPIC_MODEL 改回来重启即可,不需要额外开账号或换 Key。
为什么国产模型能在 Claude Code 里跑,而不是换皮
Claude Code 说的是 Anthropic 的 Messages 协议,不是 OpenAI 的 chat completions 协议。kkaiapi 后端对 DeepSeek、智谱 GLM、月之暗面 Kimi、MiniMax、通义 Qwen 这些渠道都实现了协议转换层:收到 Messages 格式的请求后,翻译成对应上游认得的格式转发,拿到响应再翻译回 Messages 格式还给 Claude Code。Claude Code 全程只看到标准的 Messages 协议往返,不知道也不需要知道背后实际跑的是哪家模型。 这一点决定了两件事:第一,工具调用、文件读写这些 Agent 能力是 Claude Code 本地执行的,kkaiapi 从头到尾看不到也管不了这部分,行为和纯 Claude 官方模式一致;第二,翻译层尽量贴近原生 Claude 的输出结构,但复杂工具调用场景个别参数的兼容程度可能和原生 Claude 有细微差异,遇到异常先切回 claude-sonnet-5 定位是模型问题还是配置问题。
配置示例:两种切换方式
全局配置写进 ~/.claude/settings.json,每次开 claude 都生效;临时切换用当前终端的环境变量,只影响这一个会话,关掉终端就恢复。两种方式二选一,不用同时用。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.kkaiapi.com",
"ANTHROPIC_AUTH_TOKEN": "sk-你的kkaiapi密钥",
"ANTHROPIC_MODEL": "glm-5.2"
}
}保留 Claude 官方模型的做法
同一个 Key 里 Claude 官方模型和国产模型是平等的选项,不存在只能二选一的问题。日常主力用 GLM 或 DeepSeek 跑量,遇到需要 Claude 文笔和复杂推理的任务,把 ANTHROPIC_MODEL 改回 claude-sonnet-5 或 claude-opus-4-8 重启 claude 就切换过去,配置文件改一行、账户余额是同一份。 多项目场景可以按项目分开配置:给不同代码库各自的目录下放不同的 settings.json,一个项目默认跑 kimi-k2.7-code 处理日常重构,另一个项目固定用 claude-opus-4-8 做架构评审,互不影响。
国产模型在 Claude Code 里适合跑什么
按任务类型对号入座,不确定就先用默认配置跑一次再决定要不要换。
| 模型 ID | 定位 | 适合的 Claude Code 场景 |
|---|---|---|
| glm-5.2 | 编程与长程 Agent 旗舰 | 复杂重构、多步 Agent 任务 |
| deepseek-v4-flash | 轻量高并发 | 简单修改、批量小任务 |
| deepseek-v4-pro | 复杂推理 | 架构类问题、疑难 bug 排查 |
| kimi-k2.7-code | 编程专精 | 生成测试、CI 循环、代码审查 |
| qwen3.7-max | 文本旗舰 | 多步规划、复杂代码生成 |
| MiniMax-M2.7 | 低成本 Agent | 跑量大的重复性编程任务 |
价格对照
国产模型在 Claude Code 里跑,计费口径和直接调用 API 完全一样,按 kkaiapi 当前价格表结算,不是 Claude 官方的美元价。
| 模型 | 模型 ID | kkaiapi 价格(¥/1M,输入/输出) |
|---|---|---|
| GLM-5.2 | glm-5.2 | ¥7.2 / ¥25.2 |
| DeepSeek V4 Pro | deepseek-v4-pro | ¥3 / ¥6 |
| Kimi K2.7 Code | kimi-k2.7-code | ¥5.85 / ¥24.3 |
| Claude Sonnet 5 | claude-sonnet-5 | ¥3 / ¥15 |
排查:切换后异常怎么定位
排查的基本思路是先隔离变量:同一个任务分别在国产模型和 claude-sonnet-5 上跑一遍,能复现的问题大概率是模型能力差异,只在某个模型上出现的格式错误再考虑是翻译层的兼容问题。
- 重启没生效:Claude Code 只在启动时读一次环境变量,改完 settings.json 或 export 之后必须重新起一个 claude 会话
- 返回内容不完整或格式异常:先切回 claude-sonnet-5 跑同一个任务,能正常说明是这个国产模型在复杂工具调用上和 Claude 原生表现有差异,换个模型或简化任务
- 401:多是 ANTHROPIC_AUTH_TOKEN 没生效,确认 settings.json 的 env 块缩进和字段名没写错
- 模型不存在类报错:model 字段的 ID 要和 kkaiapi 目录里的拼写完全一致,glm-5.2 带点、MiniMax-M2.7 大小写敏感
- 想确认这次调用实际走了哪个模型:kkaiapi 控制台的用量记录按请求记录了 model 字段和花费,比猜测更准
常见问题
Claude Code 真的能跑 GLM、DeepSeek 这些国产模型吗?
能。Claude Code 说的是 Anthropic 的 Messages 协议,kkaiapi 后端对 DeepSeek、智谱 GLM、月之暗面 Kimi、MiniMax、通义 Qwen 等渠道都实现了协议转换,把 Messages 格式请求翻译给对应上游,再把响应翻译回来,Claude Code 端感知不到差异。
换了国产模型,文件读写、跑测试这些能力还在吗?
在。这些 Agent 能力(工具执行、文件操作、Shell 命令)都在本地由 Claude Code 自己完成,kkaiapi 只负责转发模型的问答内容,从头到尾看不到也不参与本地工具执行。
怎么在国产模型和 Claude 官方模型之间切换?
改 ~/.claude/settings.json 里的 ANTHROPIC_MODEL 字段,或者用 export 临时覆盖环境变量,改完重启 claude 会话即可生效。同一个 Key、同一份余额,不用为切换模型另开账号。
ANTHROPIC_BASE_URL 要不要带 /v1?
不要。Claude Code 会自己在 base_url 后面拼接 /v1/messages,填 https://api.kkaiapi.com 就够了,多写一个 /v1 会导致路径拼接出错。
国产模型在 Claude Code 里的计费和直接调 API 一样吗?
一样。经 Claude Code 调用国产模型,按 kkaiapi 当前的人民币价格表结算,不套用 Claude 官方的美元价,具体单价见价格页。
哪个国产模型适合跑复杂重构任务?
glm-5.2 和 qwen3.7-max 是编程与长程 Agent 定位的旗舰款,适合复杂重构和多步任务;日常小改动用 deepseek-v4-flash 或 MiniMax-M2.7 更省成本,具体选型建议同一个任务先各跑一次对比。