Claude Code base URL 怎么填:ANTHROPIC_BASE_URL 配置与排错

Wokey Team · 2026-09-24

结论先说: Claude Code 的 base URL 用环境变量 ANTHROPIC_BASE_URL 设置,只写网关域名,不要带 /v1。接 Wokey 就是 https://api.wokey.ai,Claude Code 会自己拼上 /v1/messages。密钥放 ANTHROPIC_AUTH_TOKEN(以 Authorization: Bearer 发送)。只设 base URL 不设密钥,Claude Code 仍会用你登录的 claude.ai 账号。

最短配置

export ANTHROPIC_BASE_URL="https://api.wokey.ai"
export ANTHROPIC_AUTH_TOKEN="你的 Wokey API Key"
claude

进入 Claude Code 后运行 /status:Status 页里的 Anthropic base URL 显示 https://api.wokey.aiAuth token 一行指向 ANTHROPIC_AUTH_TOKEN,就说明请求已经走 Wokey。没有 Anthropic base URL 这一行,说明变量没传进这个会话。

为什么不能带 /v1

Claude Code 把 ANTHROPIC_BASE_URL 当作前缀,请求路径是 $ANTHROPIC_BASE_URL/v1/messages。写成 https://api.wokey.ai/v1,实际请求就变成 /v1/v1/messages,Wokey 会返回:

{"message":"Route POST:/v1/v1/messages not found","error":"Not Found","statusCode":404}

OpenAI 兼容客户端(Cursor、Cherry Studio 之类)习惯写 .../v1,但 Claude Code 走的是 Anthropic 的约定,两者不能混用。末尾也不要加 /v1/messages 或多余的斜杠。

AUTH_TOKEN 还是 API_KEY

变量 发送方式 什么时候用
ANTHROPIC_AUTH_TOKEN Authorization: Bearer <key> 网关说「bearer token」时用;拿不准就用它
ANTHROPIC_API_KEY x-api-key: <key> 网关说「x-api-key」时用

Wokey 两种 header 都接受,用哪个都行。区别在 Claude Code 这一侧:ANTHROPIC_AUTH_TOKEN 设置后立即生效;ANTHROPIC_API_KEY 在交互模式下会先弹一次确认,同意后才接管,之前拒绝过的 key 会被静默忽略。

两个变量不要同时设成不同的值。 两个 header 带的 key 不一致时,Wokey 会拒绝请求:

{"error":{"code":"conflicting_api_key_headers","message":"conflicting_api_key_headers","type":"invalid_request_error"}}

两个 header 带同一个 key 没有问题。

只设 base URL 会发生什么

base URL 本身不是凭证。只设 ANTHROPIC_BASE_URL、不设 AUTH_TOKENAPI_KEY 时,Claude Code 仍然用你保存的 claude.ai 登录发请求,Wokey 收到的不是 Wokey key,会返回 401。

反过来,设置了网关凭证后,claude.ai 登录会保留但不再使用;取消变量就回到原来的账号。启动时看到以 auth may not work as expected 结尾的警告(旧版本是 Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set),说明网关凭证和保存的登录同时存在。只想用网关时,在 Claude Code 里运行 /logout 清掉保存的登录。

写进 settings.json,永久生效

export 只对当前终端有效,从 Dock 或开始菜单打开的编辑器读不到。长期使用建议写进 ~/.claude/settings.jsonenv

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.wokey.ai",
    "ANTHROPIC_AUTH_TOKEN": "你的 Wokey API Key"
  }
}
  • 同一个变量在 shell 和 settings 文件里都设置时,settings 文件的值优先。改了 shell 变量却不生效,先检查这里。
  • 只想对某个项目生效,写进该项目的 .claude/settings.local.json,并确认它在 gitignore 里。
  • 不要把 key 写进项目的 .claude/settings.json,那个文件会提交到仓库。

指定模型

Wokey 的 Claude 模型 ID 和官方一致,比如 claude-opus-5claude-sonnet-5claude-haiku-4-5,可以在会话里用 /model 切换。想固定 Claude Code 内置的 Opus、Sonnet、Haiku 三档分别用哪个模型,在 env 里加:

{
  "env": {
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
  }
}

ANTHROPIC_DEFAULT_HAIKU_MODEL 同时决定会话标题等后台任务用哪个模型。

VS Code 扩展和桌面版

VS Code 扩展不读 shell 变量来做登录检查,要写在 VS Code 自己的用户设置里(命令面板运行 Preferences: Open User Settings (JSON)):

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://api.wokey.ai" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "你的 Wokey API Key" }
  ]
}

~/.claude/settings.json 里的值能传到扩展启动的进程,但到不了扩展自己的登录检查,所以扩展一直要求登录时,改用上面这个设置。

Claude 桌面版完全不读 ANTHROPIC_BASE_URLsettings.json,要在 Help → Troubleshooting → Enable Developer Mode 之后,从 Developer → Configure Third-Party Inference 里填网关地址。详细步骤见 Claude Desktop 接入文档

用 curl 先验证

在同一个终端里先绕开 Claude Code 测一次:

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":1,"messages":[{"role":"user","content":"."}]}'
  • 返回以 {"id":"msg_ 开头:地址和 key 都没问题,剩下的是 Claude Code 配置。
  • 401codeinvalid_api_key:key 缺失、写错或已删除。
  • 404 且提示 /v1/v1/messages:base URL 多写了 /v1
  • curl 能通但 Claude Code 还要求登录:Claude Code 自己没拿到凭证,检查变量是不是在启动 claude 的同一个终端里设置的,或者写进 ~/.claude/settings.json

常见问题

ANTHROPIC_BASE_URL 要不要带 /v1?

不要。Claude Code 会在 base URL 后面拼接 /v1/messages,写成 https://api.wokey.ai/v1 会请求到 /v1/v1/messages 并返回 404。接 Wokey 填 https://api.wokey.ai

ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 用哪个?

ANTHROPIC_AUTH_TOKENAuthorization: Bearer 发送并立即生效;ANTHROPIC_API_KEYx-api-key 发送,交互模式下要先确认一次。Wokey 两种都接受,推荐 ANTHROPIC_AUTH_TOKEN。不要同时设成不同的值,否则会得到 401 conflicting_api_key_headers

只设置了 base URL,为什么还在用我的 Claude 订阅?

base URL 不是凭证。没有设置 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEY 时,Claude Code 会继续用保存的 claude.ai 登录。补上网关 key,需要时用 /logout 清掉保存的登录。

改了环境变量为什么没生效?

~/.claude/settings.jsonenv 块优先于 shell 变量。先检查那里有没有旧值,再用 /status 看当前的 base URL 和凭证来源。

VS Code 扩展里怎么设置 base URL?

在 VS Code 用户设置 JSON 里写 claudeCode.environmentVariables,加入 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN 两项。扩展的登录检查不读 ~/.claude/settings.json