Claude Code 接入第三方 API 完美教程

1. 背景与核心痛点

在使用 Claude Code 命令行工具时,如果直接配置三方代理地址 (ANTHROPIC_BASE_URL) 和秘钥 (ANTHROPIC_API_KEY),通常会遇到以下致命问题:

  • 强制前缀校验:Claude Code 源码会严格检查 API Key 是否以官方规定的 sk-ant- 开头。
  • 本地登录状态拦截:即使你在交互模式(Interactive Mode)强行填入了不报格式错的 Key,只要客户端发现本地没有经过二次登录验证,在发出任何消息时,它都会在底层直接拦截并抛出 Not logged in · Please run /login 的错误信息。

2. 终极解决方案:OAuth 环境变量静默穿透

Claude Code 官方为了在 CI/CD (持续集成) 等无头机器环境下自动化运行,其实在代码深处预留了一个具有最高认证特权的“上帝变量” —— CLAUDE_CODE_OAUTH_TOKEN
经过测试,一旦暴露这个环境变量,Claude 客户端将:

  1. 完全无视 本地 ~/.claude 是否具有登录账单。
  2. 完全跳过 烦人的 sk-ant- 格式要求。
  3. 发送请求的 Header 将从 x-api-key: xxx 变更为 Authorization: Bearer xxx。由于市面上几乎所有标准的第三方代理接口协议都天然同时支持以上两种 Auth 传参形式,两者兼容得完美无缺!

3. 详细配置步骤

步骤一:配置环境变量

打开终端配置文件(如 ~/.zshrc~/.bash_profile),彻底删除或注释掉原有的 ANTHROPIC_API_KEY 行,替换配置如下:

# 1. 替换为你的第三方 API 网关地址 (注意:绝大多数时候只需要填到 Base URL,不需要加 /v1 后缀)
export ANTHROPIC_BASE_URL="https://xxx.com"

# 2. 填入你的三方 API Key (必须用 OAUTH_TOKEN 变量承载,达成免拦截静默穿透)
export CLAUDE_CODE_OAUTH_TOKEN="sk-qVPxcxxxxxxxxxxxxxxxJdzEOv0bMX"

编辑完成后刷新环境变量生效:

source ~/.zshrc

步骤二:配置内置模型映射(可选,针对模型重命名代理平台)

如果你的代理平台要求使用的模型名字不是官方的 claude-3-7-sonnet-20250219claude-3-5-sonnet-20241022,而是比如 gpt-5.4deepseek-r1,为了避免 Claude Code 因无法识别该模型而崩溃,我们需要使用本地配置文件将其重定向。

如果不存在该文件请手动创建 ~/.claude/settings.json,参考填入配置:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://xxx.com",
    "CLAUDE_CODE_OAUTH_TOKEN": "sk-qxcxxxxxxxxxx0bMX",
    "ANTHROPIC_CUSTOM_MODEL_OPTION": "gpt-5.4",
    "ANTHROPIC_CUSTOM_MODEL_OPTION_NAME": "GPT-5.4"
  },
  "modelOverrides": {
    "claude-3-7-sonnet-20250219": "gpt-5.4",
    "claude-3-5-sonnet-20241022": "gpt-5.4",
    "claude-3-5-sonnet-20240620": "gpt-5.4",
    "claude-sonnet-4-6": "gpt-5.4",
    "claude-sonnet-4-20250514": "gpt-5.4"
  }
}

步骤三:验证与运行

重新开启终端,并输入:

claude

不出意外,你将跳过一切烦人的交互式前置 Login 引导,也不会遇到任何拦截,成功进入本地工具工作区,畅通且完美地使用第三方 API 处理任务!

一定要确保环境或 [settings.json]当中没有遗留的 ANTHROPIC_API_KEY
否则这将会触发 Claude Code 代码里的安全防御(Auth Conflict),报告环境变量相互冲突并引发致命错误。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐