Claude Code base URL 怎麼填:ANTHROPIC_BASE_URL 的正確設定

Wokey Team · 2026-09-24

簡短回答: Claude Code 的 base URL 用環境變數 ANTHROPIC_BASE_URL 設定。只填閘道的網域(origin),不要加 /v1。Wokey 就是 https://api.wokey.ai;/v1/messages 由 Claude Code 自己接上。金鑰放在 ANTHROPIC_AUTH_TOKEN,它會以 Authorization: Bearer 送出。只設定 base URL 而沒有設定金鑰時,Claude Code 會繼續使用已儲存的 claude.ai 登入。

最小設定

export ANTHROPIC_BASE_URL="https://api.wokey.ai"
export ANTHROPIC_AUTH_TOKEN="your Wokey API key"
claude

在 Claude Code 中執行 /status。Status 分頁出現以下內容時,請求就是經過 Wokey:

  • Anthropic base URL 為 https://api.wokey.ai
  • 有一行 Auth token 標示 ANTHROPIC_AUTH_TOKEN

如果沒有 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}

Cursor、Cherry Studio 等 OpenAI 相容用戶端慣例上要填 .../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 兩種標頭都接受,差別在 Claude Code 這一端:

  • ANTHROPIC_AUTH_TOKEN 立即生效。
  • ANTHROPIC_API_KEY 在互動模式下會先要求確認一次才生效。之前拒絕過的金鑰會被默默忽略。

不要把兩者設成不同的值。 兩個標頭帶著不同的金鑰時,Wokey 會拒絕請求:

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

兩個標頭帶相同的金鑰則沒有問題。

只設定 base URL 會怎樣

base URL 不是憑證。只設定 ANTHROPIC_BASE_URL、沒有 AUTH_TOKEN 或 API_KEY 時,Claude Code 仍會用已儲存的 claude.ai 登入送出請求。Wokey 不會把它認成 Wokey 金鑰,因此回傳 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.json 的 env 區塊:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.wokey.ai",
    "ANTHROPIC_AUTH_TOKEN": "your Wokey API key"
  }
}
  • shell 和設定檔設定了同一個變數時,以設定檔為準。如果改了 shell 變數卻好像沒有效果,請先檢查這裡。
  • 只用在單一專案時,請使用該專案的 .claude/settings.local.json,並確認它已被 gitignore。
  • 絕對不要把金鑰寫進專案的 .claude/settings.json。 這個檔案會被提交到儲存庫。

選擇模型

Wokey 使用和 Anthropic 相同的 Claude 模型 ID,例如 claude-opus-5、claude-sonnet-5 和 claude-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": "your Wokey API key" }
  ]
}

~/.claude/settings.json 中的值會傳到擴充功能啟動的程序,但不會傳到擴充功能本身的登入檢查。如果擴充功能一直要求登入,請使用上面的設定。

Claude 桌面版既不讀 ANTHROPIC_BASE_URL,也不讀 settings.json。設定閘道的步驟:

  1. 開啟 Help → Troubleshooting → Enable Developer Mode。
  2. 開啟 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_ 開頭: URL 和金鑰都沒問題,問題出在 Claude Code 的設定。
  • 401 且代碼為 invalid_api_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_TOKEN 以 Authorization: Bearer 送出並立即生效;ANTHROPIC_API_KEY 以 x-api-key 送出,互動模式下需要先確認一次。Wokey 兩種都接受,建議使用 ANTHROPIC_AUTH_TOKEN。兩者同時設成不同的值,會得到 401 conflicting_api_key_headers。

只設定了 base URL,為什麼還在用我的 Claude 訂閱?

base URL 不是憑證。沒有設定 ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY 時,Claude Code 會繼續使用已儲存的 claude.ai 登入。補上閘道金鑰;想清除已儲存的登入,請執行 /logout。

改了環境變數,為什麼沒有生效?

~/.claude/settings.json 的 env 區塊優先於 shell 變數。先檢查那裡有沒有舊值,再執行 /status 查看目前的 base URL 和憑證來源。

VS Code 擴充功能裡怎麼設定 base URL?

在 VS Code 使用者設定 JSON 的 claudeCode.environmentVariables 中加入 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN。擴充功能的登入檢查不會讀取 ~/.claude/settings.json。