把 Claude Code 指向第三方接口:ANTHROPIC_BASE_URL 与鉴权变量详解
Claude Code 支持通过环境变量自定义 API 端点与鉴权信息。本文系统梳理 ANTHROPIC_BASE_URL 及相关 token 环境变量的作用、常见冲突与验证方法,帮助你把 Claude Code 安全指向第三方聚合接口。
Claude Code 默认连接 Anthropic 官方端点。若你希望使用第三方聚合服务(如支持多模型的 API 中转),需要调整其读取的 base URL 与鉴权变量。本文不涉及具体服务商配置,只讲通用机制与排查思路。
Claude Code 如何决定请求去向
Claude Code 内部使用 Anthropic SDK。SDK 在发起请求时,会按固定优先级读取环境变量,决定请求的 host 和认证头。关键变量如下:
ANTHROPICBASEURL:覆盖默认的 API 基地址。通常应设置为完整的 URL 前缀(例如https://api.example.com),SDK 会在此基础上拼接/v1/messages等路径。ANTHROPICAPIKEY:最常用的鉴权变量,值会作为x-api-key请求头发送。ANTHROPICAUTHTOKEN:另一种鉴权变量。部分工具或 SDK 版本使用它来设置Authorization: Bearer <token>头。ANTHROPICMODEL/ANTHROPICSMALLFASTMODEL:分别控制主模型和后台快速模型。第三方聚合站可能只支持部分模型名,需按实际可用模型调整。
这些变量可以在 shell 启动文件(如 .bashrc、.zshrc)中导出,或仅在运行 Claude Code 的终端会话中临时设置。
哪些变量会互相冲突
当多个变量同时存在时,行为可能不符合预期。常见冲突场景:
ANTHROPICAPIKEY与ANTHROPICAUTHTOKEN同时设置:两者都会尝试写入请求头,服务端可能因收到重复或矛盾鉴权信息而拒绝。通常应只保留一个。- 全局与项目级变量叠加:如果你在
.env文件、shell 配置和项目配置中都设置了 base URL,后加载的会覆盖先加载的。排查时用env | grep ANTHROPIC查看当前生效值。 - 模型名与聚合站不匹配:官方模型名在第三方聚合站可能不存在。如果沿用默认模型名,请求会返回模型不存在错误,而不是写入失败。
建议在配置时遵循最小化原则:只设置必要的变量,避免遗留旧值。
如何确认改动真的生效
改完环境变量后,可以用以下方法验证:
- 在终端打印变量:
echo $ANTHROPICBASEURL、echo $ANTHROPICAPIKEY。确保值正确且没有多余空格或引号。 - 启动 Claude Code 并观察输出。如果 base URL 指向第三方,请求会到达新端点;若鉴权或模型名错误,会看到对应错误信息。
- 使用最小请求测试:运行一个简单对话,检查是否能正常返回。若返回内容与预期模型能力不符,可能是聚合站路由到了其他模型。
- 检查网络与证书:第三方接口若使用自签名证书,可能触发 TLS 错误。此时需要将证书加入信任链,而非关闭验证。
注意:Claude Code 不会自动从 .env 文件读取变量,除非你使用 shell 的 source 或 export 命令显式加载。
切换回官方端点的注意事项
若想恢复默认,应清除所有自定义变量:
unset ANTHROPICBASEURLunset ANTHROPICAPIKEYunset ANTHROPICAUTHTOKENunset ANTHROPIC_MODEL
然后重新启动终端。如果之前修改过 shell 配置文件,记得删除对应行,否则新开的终端仍会加载旧值。
总之,理解这几个环境变量的优先级与冲突关系,能帮你更可靠地把 Claude Code 对接任意兼容 Anthropic API 的第三方服务。