LLM Gateway 在 Claude Code 和模型提供商之间提供集中代理层,统一管理 API Key、追踪用量、控制成本、记录审计日志,并在不修改代码的情况下在提供商之间切换。
LLM Gateway 能解决什么问题
| 能力 | 说明 |
|---|---|
| 集中认证 | 单点管理 API Key,员工不直接接触 Anthropic Key |
| 用量追踪 | 按团队、按项目监控 Token 消耗 |
| 费用控制 | 设置预算上限和速率限制 |
| 审计日志 | 记录所有模型交互,满足合规要求 |
| 模型路由 | 无需改代码在提供商之间切换 |
Gateway 接入要求
LLM Gateway 要兼容 Claude Code,必须支持以下至少一种 API 格式,并正确透传关键 Headers/Body 字段:
| API 格式 | 端点 | 必须透传 |
|---|---|---|
| Anthropic Messages(推荐) | /v1/messages、/v1/messages/count_tokens | 请求头:anthropic-beta、anthropic-version |
| Bedrock InvokeModel | /invoke、/invoke-with-response-stream | Body 字段:anthropic_beta、anthropic_version |
| Vertex rawPredict | :rawPredict、:streamRawPredict、/count-tokens:rawPredict | 请求头:anthropic-beta、anthropic-version |
⚠️ 未透传这些 Headers/Body 字段会导致 Claude Code 功能降级甚至无法使用。如果用 Anthropic Messages 格式访问 Bedrock 或 Vertex,可能需要设置
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。
LiteLLM 配置详解
⚠️ LiteLLM 是第三方代理服务,Anthropic 不背书、不维护、不审计其安全性。以下信息仅供参考,可能滞后于 LiteLLM 最新版本。
前置要求
- Claude Code 更新到最新版本
- LiteLLM Proxy Server 已部署并可访问
- 通过所选提供商有 Claude 模型访问权限
认证方式一:静态 API Key
最简单的方式,使用固定 API Key:
# 环境变量方式
export ANTHROPIC_AUTH_TOKEN=sk-litellm-static-key// settings.json 方式
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-litellm-static-key"
}
}此值将作为 Authorization Header 发送。
认证方式二:动态 API Key(推荐企业场景)
支持轮换 Key 或按用户认证,三步配置:
第一步:创建 Key 获取脚本
#!/bin/bash
# ~/bin/get-litellm-key.sh
# 示例:从 Vault 获取 Key
vault kv get -field=api_key secret/litellm/claude-code
# 示例:生成 JWT Token
jwt encode \
--secret="${JWT_SECRET}" \
--exp="+1h" \
'{"user":"'${USER}'","team":"engineering"}'第二步:配置 Claude Code 使用该脚本
{
"apiKeyHelper": "~/bin/get-litellm-key.sh"
}第三步:设置 Token 刷新间隔
# 每小时刷新一次(3600000 毫秒)
export CLAUDE_CODE_API_KEY_HELPER_TTL_MS=3600000获取的 Key 将同时作为 Authorization 和 X-Api-Key Header 发送。
apiKeyHelper优先级低于ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY。
三种端点配置方式
方式一:统一端点(推荐)
使用 LiteLLM 的 Anthropic 格式端点:
export ANTHROPIC_BASE_URL=https://litellm-server:4000统一端点的优势:
- 负载均衡
- 故障转移(Fallbacks)
- 一致的成本追踪和用户追踪支持
方式二:Claude API 直通
export ANTHROPIC_BASE_URL=https://litellm-server:4000/anthropic方式三: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方式四: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自定义模型名称
如果在 Gateway 中配置了自定义模型名称,使用 Model Configuration 环境变量匹配:
# 主模型(用于大多数任务)
export ANTHROPIC_MODEL=my-gateway-sonnet
# 小模型(用于 Explore Agent 等低延迟场景)
export ANTHROPIC_SMALL_FAST_MODEL=my-gateway-haiku企业部署完整配置示例
// ~/.claude/settings.json 或托管策略配置
{
"apiKeyHelper": "/usr/local/bin/get-company-claude-key.sh",
"env": {
"ANTHROPIC_BASE_URL": "https://ai-gateway.company.internal:4000",
"ANTHROPIC_MODEL": "claude-sonnet-4-6",
"ANTHROPIC_SMALL_FAST_MODEL": "claude-haiku-4-5",
"CLAUDE_CODE_API_KEY_HELPER_TTL_MS": "3600000",
"HTTPS_PROXY": "https://proxy.company.internal:8080"
}
}常见问题排查
| 问题 | 解决方案 |
|---|---|
| 401 认证失败 | 检查 ANTHROPIC_AUTH_TOKEN 或 apiKeyHelper 脚本返回值 |
| 功能降级(无流式/无扩展功能) | 确认 Gateway 正确透传 anthropic-beta 和 anthropic-version Headers |
| 自定义模型名称不识别 | 设置 ANTHROPIC_MODEL 环境变量匹配 Gateway 中的名称 |
| 动态 Key 过期 | 调整 CLAUDE_CODE_API_KEY_HELPER_TTL_MS 值(单位:毫秒) |
原文:LLM gateway configuration | 来源:Anthropic 官方文档