Claude Code 好用,但订阅费和额度是两回事——额度用完就得等。好在这套 CLI 允许你把请求打到任意兼容 Anthropic Messages API 的服务上,理解这一点,后端的可选项一下就打开了。
请求被改了去哪

Claude Code → 你设的 BASE_URL 网关 → 目标模型。CLI 的逻辑、快捷键、工具调用都不变,变的只是它请求的那一端。
操作步骤速览

一、三个环境变量

Claude Code 认这三个:
| 变量 | 作用 |
|---|---|
ANTHROPIC_BASE_URL |
把请求指到哪 —— 你的兼容网关 |
ANTHROPIC_AUTH_TOKEN |
该网关的密钥 |
ANTHROPIC_MODEL |
想用的模型名(按网关的命名填) |
一行命令临时试:
export ANTHROPIC_BASE_URL="https://your-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxx"
export ANTHROPIC_MODEL="your-model-name"
claude
二、写进 settings.json 更省事

每次开终端都要 export 太烦。放进 Claude Code 的配置文件(~/.claude/settings.json):
{
"env": {
"ANTHROPIC_BASE_URL": "https://your-gateway.example.com",
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxx",
"ANTHROPIC_MODEL": "your-model-name",
"ANTHROPIC_SMALL_FAST_MODEL": "your-small-model"
}
}
ANTHROPIC_SMALL_FAST_MODEL 是给「快速小任务」(生成 commit message、补全)用的,填个便宜的小模型能明显省钱。
三、验证是不是真的生效

claude -p "读一下当前目录的 README,用一句话总结"
能正常调用工具、返回结果,就说明打通了。如果报 401,是 token 不对;报 404,多半是 BASE_URL 少写了 /v1 或路径不对,对着网关文档核一下。
三个必须知道的点
- 接口必须兼容 Anthropic 的 Messages 格式,不是所有「OpenAI 兼容」服务都行。有的网关同时提供两种协议,认准 Anthropic 那一个。
- 工具调用(tool use)能力因模型而异。编程任务里 Claude Code 重度依赖 function calling,模型支持不好会表现为「它不动手,只在聊天」。
- 密钥仍是密钥。写在
settings.json里意味着任何能读这个文件的进程都能读到,别提交进 git 仓库。
小结
把 base URL 换掉,本质是解耦:CLI 是你的工作台,模型是后端。哪家划算、哪天出新的,改一行配置就切换,工作流不用重学。
常见问题
所有国产模型都能接吗?
不行,必须兼容 Anthropic 的 Messages API 格式。不少网关同时提供 OpenAI 和 Anthropic 两种协议,要认准后者。
会不会影响 Claude Code 的工具调用?
取决于模型自身的 function calling 能力。支持不好的模型会表现为「只聊天不动手」,换一个工具调用强的模型即可。