适用:希望让 Claude Code、OpenAI Codex 走自建或第三方「OpenAI / Anthropic 兼容」端点的开发者。涉及环境变量配置、连通性验证、常见报错排查与密钥安全。

一、为什么会有这个需求

Claude Code(Anthropic 的命令行编程工具)和 OpenAI Codex(CLI / VS Code / 桌面端)默认连各自官方的 API 端点。但这两个工具其实都支持把端点指向自定义地址——这是官方提供的能力,常见用途包括:

  • 走公司内部网关做统一鉴权、审计与限流;
  • 走一个「OpenAI / Anthropic 协议兼容」的中转/聚合端点,统一管理多个工具的密钥与用量;
  • 在某些网络环境下用一个可达的中转地址替代官方地址。

本文不讨论该不该这么做,只把配置方法、验证手段和踩坑点讲清楚。下面以一个 OpenAI/Anthropic 兼容的第三方中转服务(aitokensflux)为例演示,换成你自建网关或其他兼容端点,步骤完全一样。


二、先理解原理:两套兼容协议

Claude Code 和 Codex 分属两套 API 协议,配置时要分开对待:

工具 协议 关键环境变量 端点形态
OpenAI Codex OpenAI 兼容 OPENAI_BASE_URLOPENAI_API_KEY 形如 https://<host>/v1
Claude Code Anthropic 兼容 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN 形如 https://<host>

注意两个差异点:

  1. OpenAI 协议的 Base URL 通常带 /v1 后缀,Anthropic 协议通常不带。具体以你所用端点的文档为准。
  2. 鉴权变量名不同:OpenAI 侧是 OPENAI_API_KEY,Anthropic 侧 Claude Code 读 ANTHROPIC_AUTH_TOKEN(部分版本也兼容 ANTHROPIC_API_KEY)。

一个兼容端点一般会给出明确的「官方地址 → 替换地址」对照,例如:

OpenAI:    https://api.openai.com      →  https://<host>/v1
Anthropic: https://api.anthropic.com   →  https://<host>

下图是该服务后台的「API 接入」页,就是这种 Base URL 替换关系,并在同页管理密钥(可启用/停用/删除):

在这里插入图片描述


三、配置 OpenAI Codex

1. 安装 Codex CLI

官方脚本、Homebrew、npm 三选一:

# 官方脚本
curl -fsSL https://chatgpt.com/codex/install.sh | sh

# 或 Homebrew
brew install --cask codex

# 或 npm
npm install -g @openai/codex

codex --version

2. 指向自定义端点

最简单的方式是环境变量(写进 ~/.bashrc / ~/.zshrc 持久化):

export OPENAI_BASE_URL="https://aitokensflux.com/v1"
export OPENAI_API_KEY="sk-你的密钥"
codex

很多兼容服务会提供分平台(Windows / macOS / Linux)的图文配置说明,照着填 Base URL 和 Key 即可:

在这里插入图片描述

若你用 VS Code 的 Codex 插件或桌面端,同样是在设置里改 Base URL 与 API Key,不必改任何项目代码。


四、配置 Claude Code

1. 安装

npm install -g @anthropic-ai/claude-code
claude --version

2. 指向自定义端点

export ANTHROPIC_BASE_URL="https://aitokensflux.com"
export ANTHROPIC_AUTH_TOKEN="sk-你的密钥"
claude

部分中转服务把「选择工具 → 给出对应配置」做成了向导,减少手填出错:

在这里插入图片描述

配好后,claude / codex 的读仓库、改文件、跑命令、多轮对话等能力与直连官方一致,差异只在请求经过了你指定的端点。


五、验证连通性

改完别急着跑大任务,先用最小请求确认端点和密钥可用。

OpenAI 协议——列模型或发一条对话:

# 列模型
curl https://aitokensflux.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

# 发一条 chat
curl https://aitokensflux.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4o","messages":[{"role":"user","content":"ping"}]}'

Anthropic 协议

curl https://aitokensflux.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-3-7-sonnet","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'

能正常返回 JSON,说明端点与鉴权打通了。

用量、额度、调用记录这类信息一般在服务后台可查,便于排查"到底有没有走通、扣没扣量":

在这里插入图片描述


六、常见报错排查

  • 401 / 403(鉴权失败):检查 Key 是否填错、是否被停用;确认用对了变量名(OpenAI 侧 OPENAI_API_KEY,Anthropic 侧 ANTHROPIC_AUTH_TOKEN)。
  • 404 / Not Found:多半是 Base URL 的 /v1 后缀加错或漏加。OpenAI 协议通常要 /v1,Anthropic 协议通常不要。
  • 模型名报错(model not found):中转端支持的模型名可能与官方不完全一致,以其文档/模型列表接口为准。
  • 环境变量不生效:确认写进了正确的 shell 配置文件并 source;GUI 应用(VS Code/桌面端)要在其设置里单独配,不读终端的 env。
  • 超时 / 偶发失败:中间层无法消除上游模型自身抖动,给关键调用加超时与重试即可。

七、安全与注意事项

  • 密钥不要硬编码进代码或提交进仓库,用环境变量或本地配置;多项目建议分别建 Key,便于停用/轮换。
  • 把端点指向第三方,意味着请求与密钥会经过第三方服务,涉及公司核心代码或敏感数据时,请先评估合规与信任边界,必要时仍直连官方或走自建网关。
  • 自定义端点是官方支持的能力,但具体可用模型、协议细节以你所用端点的文档为准。

八、小结

给 Claude Code / Codex 配置自定义 Base URL 的核心就三步:装好工具、设置对应协议的 Base URL 与 Key 环境变量、用 curl 做最小验证。OpenAI 与 Anthropic 两套协议分清楚(/v1 后缀、变量名差异),再注意密钥安全与第三方信任边界,就能把这套流程稳妥跑起来。

文中以 aitokensflux 的兼容端点做演示,换成自建网关或其他兼容服务步骤一致;具体地址、模型清单与配置细节以对应文档为准。

Logo

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

更多推荐