给 Claude Code 一键接国产模型的懒人方案
很多人知道 Claude Code 能接国产模型,但每次都要手动改一长串环境变量、记不住端点、切回官方又得改回来——这篇就是把”切换”这件事压缩成一行命令。原理和手动接入完全一样,只是用脚本、别名(alias)把繁琐步骤封装起来,让你像换挡一样在 DeepSeek、Kimi、GLM、官方之间秒切。想先搞懂底层接入机制,可以先看 Claude Code 接入国产模型完整教程,本文默认你已经能手动跑通。
原理:一键的本质还是”换后端”
所谓”一键接国产模型”,本质没有魔法,就是把 Claude Code 指向的模型后端从官方换成一个兼容 Anthropic 协议的国产中转地址。
Claude Code 读两个关键环境变量决定”找谁要答案”:
ANTHROPIC_BASE_URL——请求发往哪个 API 端点;ANTHROPIC_AUTH_TOKEN(或对应的 key 变量)——用哪个密钥鉴权。
手动接入时,你每次都在终端里 export 这两个值。一键方案做的事只有一件:把这组 export 预先写好,封装成一个名字,敲那个名字就等于一次性把变量全设对。所以无论用脚本、alias 还是中转服务,机制不变——变的只是”谁来帮你打这串字”。
机制不变这点很重要:国产模型的具体端点 URL、模型名、是否需要协议转换会随官方调整,这些参数一律以官方文档为准,但”换后端”这个套路是长青的,配置框架可以一直复用。
懒人方案三选一
方案 A:shell alias 一行切换(最轻)
把每个模型写成一个别名,加进 ~/.bashrc 或 ~/.zshrc:
# 切到 DeepSeek
alias cc-ds='export ANTHROPIC_BASE_URL="<DeepSeek兼容端点,以官方为准>" && export ANTHROPIC_AUTH_TOKEN="<你的key>" && claude'
# 切到 Kimi
alias cc-kimi='export ANTHROPIC_BASE_URL="<Kimi兼容端点,以官方为准>" && export ANTHROPIC_AUTH_TOKEN="<你的key>" && claude'
# 切回官方
alias cc-official='unset ANTHROPIC_BASE_URL && claude'
改完执行 source ~/.zshrc 生效。以后想用 DeepSeek 就敲 cc-ds,想用 Kimi 就 cc-kimi。优点是零依赖、改一个文件搞定;缺点是 key 明文写在配置里,多人共用机器要注意权限。
Windows 用户怎么写这套 alias:bash 的 export 和 alias 在 PowerShell 里没有,得换成函数:
function cc-ds {
$env:ANTHROPIC_BASE_URL = "<DeepSeek兼容端点,以官方为准>"
$env:ANTHROPIC_AUTH_TOKEN = "<你的key>"
claude
}
把它写进 PowerShell Profile(不知道路径就先跑 $PROFILE 看输出),保存后 . $PROFILE 重新加载。要注意两点:一是 $env: 设置只对当前会话生效,关掉终端窗口就没了,所以必须写进 Profile 而不是临时在命令行敲;二是如果你同时用 WSL 里的 bash 和 Windows 原生 PowerShell 跑 Claude Code,两边的环境变量是完全隔离的,alias 要各写一份,别以为配一边两边都能用。
方案 B:切换脚本(适合管多套配置)
写一个小脚本 ccswitch.sh,把各家配置存成函数,按参数切:
#!/usr/bin/env bash
case "$1" in
ds) export ANTHROPIC_BASE_URL="<DeepSeek端点>"; export ANTHROPIC_AUTH_TOKEN="$DS_KEY" ;;
kimi) export ANTHROPIC_BASE_URL="<Kimi端点>"; export ANTHROPIC_AUTH_TOKEN="$KIMI_KEY" ;;
glm) export ANTHROPIC_BASE_URL="<GLM端点>"; export ANTHROPIC_AUTH_TOKEN="$GLM_KEY" ;;
off) unset ANTHROPIC_BASE_URL ;;
*) echo "用法: source ccswitch.sh [ds|kimi|glm|off]"; return 1 ;;
esac
echo "已切换到: ${1}"
用 source ccswitch.sh ds 调用。把 key 放进单独的环境文件(如 ~/.cc_keys,权限设 600)再 source 进来,脚本本身就不含密钥,能安全地丢进 dotfiles 仓库。
方案 C:第三方中转封装(最省心)
如果你连端点都不想记,可以用社区的中转/代理工具,它在本地起一个统一入口,把 Anthropic 协议的请求按你的选择转发到不同国产模型。Claude Code 只认一个固定的本地 BASE_URL,模型在中转那头切。
这类工具优点是切换有界面、还能做用量统计;缺点是多了一层依赖,请求要经过它,对稳定性和数据流向敏感的团队需自行评估。具体工具名和配置方式以其官方文档为准,本文不展开推荐。
各模型一套配置:怎么管才不乱
接多家时,最容易乱的是 key 和端点对不上。给一个清晰的归类表:
| 你想要的效果 | 推荐方案 | key 放哪 |
|---|---|---|
| 偶尔切,机器自己用 | alias(方案 A) | 直接写进 rc 文件 |
| 常切、多套环境、要进 git | 脚本(方案 B) | 单独 env 文件,权限 600 |
| 想要界面/统计,不想记端点 | 中转(方案 C) | 中转工具的配置里 |
无论哪种,坚持三条原则就不乱:
- 一个模型一组变量:
BASE_URL和AUTH_TOKEN永远成对出现,切换时一起改,避免新端点配旧 key。 - key 与脚本分离:密钥单独存、设最小权限,脚本/alias 只引用变量名。
- 留一个”切回官方”的开关:
unset ANTHROPIC_BASE_URL即可回官方,排查问题时能快速对照。
进阶:不同项目自动绑定不同模型
真到多项目并行的阶段,光靠手动敲命令会漏切——你在 A 项目里习惯用便宜的模型跑体力活,切到 B 项目忘了切回官方,结果拿国产模型去啃一个复杂重构,工具调用频繁失败还不知道哪出的问题。这时候更省心的做法是让环境变量跟着目录自动生效,而不是跟着你的记性。
具体用 direnv 就能做到:在项目根目录建一个 .envrc 文件,写上这个项目要用的模型配置:
# 项目根目录/.envrc
export ANTHROPIC_BASE_URL="<该项目常用的端点,以官方为准>"
export ANTHROPIC_AUTH_TOKEN="$DS_KEY"
第一次进这个目录,终端会提示 direnv: error .envrc is blocked,执行一次 direnv allow 授权即可。之后每次 cd 进这个目录,变量自动加载;cd 出去,变量自动失效(回到你 shell 里默认的官方配置或空值)。这比 alias 更进一步的地方在于:你不需要记得切,目录本身就是开关,尤其适合”这个项目固定用 DeepSeek 图便宜,那个项目固定用官方保质量”的场景。唯一要注意的是 .envrc 里含 key,务必加进 .gitignore,别跟着项目一起提交上仓库。
怎么验证切换成功
配完别急着干活,先确认真的换到了国产后端:
- 看变量:
echo $ANTHROPIC_BASE_URL,输出是国产端点而非空(空=走官方)。 - 发一句测试:让它做个简单任务,回复正常且无鉴权报错,说明端点+key 都对。
- 故意切回再对比:用
cc-official切回官方跑同一句,能明显感到模型行为差异,就证明切换真生效了。
常见坑与排查
| 报错/现象 | 可能原因 | 解法 |
|---|---|---|
401 / invalid api key | key 与端点不匹配,或 key 变量名写错 | 确认该端点用的是对应家的 key;检查是 ANTHROPIC_AUTH_TOKEN 还是 ANTHROPIC_API_KEY,以官方为准 |
| 改了 alias 不生效 | 没重新 source | source ~/.zshrc,或开新终端 |
| 切了还是走官方 | BASE_URL 没 export 成功,或脚本用了 bash 执行而非 source | 切换脚本必须 source 运行,子进程 export 不影响当前 shell |
| 404 / 协议不兼容 | 该模型未走 Anthropic 兼容端点 | 用官方提供的”Anthropic 兼容”地址,或加一层协议转换,以官方文档为准 |
| 工具调用/长上下文异常 | 国产模型对 Claude Code 的工具协议支持程度不一 | 换支持度更好的模型,或退回官方处理复杂任务 |
| PowerShell 里配了没生效 | 用了临时命令行 $env: 而不是写进 Profile,或者 WSL 和 Windows 原生终端环境变量不通 | 确认改的是 $PROFILE 对应文件;WSL 和 Windows 原生各自要单独配一份 |
direnv 提示 .envrc is blocked | 首次进目录或 .envrc 内容改过,direnv 出于安全没有自动信任 | 执行一次 direnv allow |
| 换了模型后回复变得啰嗦或跑题 | 不是配置问题,是模型本身风格/能力差异 | 这属于模型选择而非接入问题,按任务复杂度换模型,别在配置上排查 |
常见问题
问:一键方案和手动接入有区别吗,会更快或更省钱吗? 答:没有性能或费用区别。它只是把手动 export 的步骤封装成一个命令,省的是你敲字和记忆的时间,请求路径和计费跟手动完全一样。
问:alias 和脚本,新手该选哪个? 答:只接一两家、自己一台机器,用 alias 最省事。要管三家以上、配置想同步到多台机器或进 git,用脚本配单独的 key 文件更安全。
问:把 key 写进 alias 安全吗? 答:自用机器可以接受,但别把含 key 的 rc 文件提交到公开仓库。更稳妥的做法是 key 单独存一个权限 600 的文件,脚本只引用变量名。
问:切到国产模型后 Claude Code 的功能会缩水吗? 答:基础对话和代码编辑通常没问题,但工具调用、超长上下文等高级能力,各家国产模型支持程度不一。建议把复杂工程任务留给官方或支持度好的模型,简单任务用国产省成本。
问:端点和模型名我从哪查?为什么本文不直接给? 答:这些参数会随官方调整,写死容易过期误导。一律去对应模型的官方文档查”Anthropic 兼容接入”一节,本文只保证”换后端”这套框架长期有效。
问:多个项目同时开着终端,会不会互相串了模型? 答:如果你用的是方案 A/B 那种手动 export,同一个终端会话里最后一次切换会覆盖前一次,容易串。用不同终端标签页各自切换、互不影响;真怕串就上 direnv,让配置跟目录绑定,进哪个项目自动用哪套,不依赖你记得切没切。
问:要不要给团队每个人都配一份一键脚本? 答:值得,但 key 别写进共享脚本里。做法是脚本本身(选择逻辑)进 git 共享,key 各自存在自己机器上权限 600 的独立文件里,脚本运行时读取本地文件而不是硬编码,这样脚本可以放心公开评审、迭代,密钥不会跟着扩散。
👉 看看我们的 AI 编程实战体系课,或逛 AI 编程教程大全 把基本功打扎实。