SpyBara
Go Premium

llm-gateway.md 2026-05-02 18:14 UTC to 2026-05-04 22:58 UTC

196 added, 0 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

LLM gateway 配置

了解如何配置 Claude Code 以使用 LLM gateway 解決方案。涵蓋 gateway 要求、身份驗證配置、模型選擇和提供商特定的端點設置。

LLM gateway 提供了 Claude Code 和模型提供商之間的集中代理層,通常提供:

  • 集中身份驗證 - 單一 API 密鑰管理點
  • 使用情況追蹤 - 監控跨團隊和項目的使用情況
  • 成本控制 - 實施預算和速率限制
  • 審計日誌 - 追蹤所有模型交互以進行合規性檢查
  • 模型路由 - 無需更改代碼即可在提供商之間切換

Gateway 要求

為了讓 LLM gateway 與 Claude Code 配合使用,它必須滿足以下要求:

API 格式

gateway 必須向客戶端公開以下至少一種 API 格式:

  1. Anthropic Messages: /v1/messages, /v1/messages/count_tokens

    • 必須轉發請求標頭:anthropic-betaanthropic-version
  2. Bedrock InvokeModel: /invoke, /invoke-with-response-stream

    • 必須保留請求正文字段:anthropic_betaanthropic_version
  3. Vertex rawPredict: :rawPredict:streamRawPredict/count-tokens:rawPredict

    • 必須轉發請求標頭:anthropic-betaanthropic-version

未能轉發標頭或保留正文字段可能會導致功能減少或無法使用 Claude Code 功能。

請求標頭

Claude Code 在每個 API 請求上包含以下標頭:

標頭 描述
X-Claude-Code-Session-Id 當前 Claude Code 會話的唯一識別符。代理可以使用此識別符來聚合來自單個會話的所有 API 請求,而無需解析請求正文。

Claude Code 還在系統提示前面添加了一個簡短的歸屬塊,其中包含客戶端版本和從對話派生的指紋。Anthropic API 在處理前會刪除此塊,因此不會影響第一方提示快取。如果您的 gateway 實現了自己的提示快取,其密鑰基於完整請求正文,請設置 CLAUDE_CODE_ATTRIBUTION_HEADER=0 以省略它。

配置

模型選擇

默認情況下,Claude Code 使用所選 API 格式的標準模型名稱。

ANTHROPIC_BASE_URL 指向公開 Anthropic Messages 格式的 gateway 時,Claude Code 在啟動時會查詢 gateway 的 /v1/models 端點,並將返回的模型添加到 /model 選擇器中。每個發現的條目都標記為「From gateway」,並在提供時使用響應中的 display_name 欄位。這需要 Claude Code v2.1.126 或更高版本。

發現功能僅適用於 Anthropic Messages 格式。它不會針對 Bedrock 或 Vertex 傳遞端點運行,也不會在 ANTHROPIC_BASE_URL 未設置或指向 api.anthropic.com 時運行。

發現請求的身份驗證方式與推理請求相同:它將 ANTHROPIC_AUTH_TOKEN 作為 bearer token 發送,或在未設置身份驗證令牌時將 ANTHROPIC_API_KEY 作為 x-api-key 標頭發送,以及來自 ANTHROPIC_CUSTOM_HEADERS 的任何標頭。只有 ID 以 claudeanthropic 開頭的模型才會添加到選擇器中。結果被緩存到 ~/.claude/cache/gateway-models.json,並在每次啟動時刷新。如果請求失敗或 gateway 未實現 /v1/models,選擇器將回退到上次啟動時的緩存列表或內置模型列表。

如果您的 gateway 使用與發現篩選器不匹配的模型名稱,請使用 模型配置 中記錄的環境變數手動添加它們。

LiteLLM 配置

先決條件

  • Claude Code 已更新至最新版本
  • LiteLLM Proxy Server 已部署且可訪問
  • 通過您選擇的提供商訪問 Claude 模型

基本 LiteLLM 設置

配置 Claude Code

身份驗證方法

靜態 API 密鑰

使用固定 API 密鑰的最簡單方法:

# 在環境中設置
export ANTHROPIC_AUTH_TOKEN=sk-litellm-static-key

# 或在 Claude Code 設置中
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk-litellm-static-key"
  }
}

此值將作為 Authorization 標頭發送。

使用幫助程序的動態 API 密鑰

用於輪換密鑰或按用戶身份驗證:

  1. 創建 API 密鑰幫助程序腳本:
#!/bin/bash
# ~/bin/get-litellm-key.sh

# 示例:從保管庫獲取密鑰
vault kv get -field=api_key secret/litellm/claude-code

# 示例:生成 JWT 令牌
jwt encode \
  --secret="${JWT_SECRET}" \
  --exp="+1h" \
  '{"user":"'${USER}'","team":"engineering"}'
  1. 配置 Claude Code 設置以使用幫助程序:
{
  "apiKeyHelper": "~/bin/get-litellm-key.sh"
}
  1. 設置令牌刷新間隔:
# 每小時刷新一次(3600000 毫秒)
export CLAUDE_CODE_API_KEY_HELPER_TTL_MS=3600000

此值將作為 AuthorizationX-Api-Key 標頭發送。apiKeyHelper 的優先級低於 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEY

統一端點(推薦)

使用 LiteLLM 的 Anthropic 格式端點

export ANTHROPIC_BASE_URL=https://litellm-server:4000

統一端點相對於傳遞端點的優勢:

  • 負載均衡
  • 故障轉移
  • 對成本追蹤和最終用戶追蹤的一致支持

提供商特定的傳遞端點(替代方案)

通過 LiteLLM 的 Claude API

使用 傳遞端點

export ANTHROPIC_BASE_URL=https://litellm-server:4000/anthropic
通過 LiteLLM 的 Amazon Bedrock

使用 傳遞端點

export ANTHROPIC_BEDROCK_BASE_URL=https://litellm-server:4000/bedrock
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
export CLAUDE_CODE_USE_BEDROCK=1
通過 LiteLLM 的 Google Vertex AI

使用 傳遞端點

export ANTHROPIC_VERTEX_BASE_URL=https://litellm-server:4000/vertex_ai/v1
export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
export CLAUDE_CODE_SKIP_VERTEX_AUTH=1
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5

有關更多詳細信息,請參閱 LiteLLM 文檔

其他資源