LLM gateway 提供了 Claude Code 和模型提供商之间的集中代理层,通常提供以下功能:Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- 集中身份验证 - API 密钥管理的单一入口
- 使用情况跟踪 - 监控团队和项目的使用情况
- 成本控制 - 实施预算和速率限制
- 审计日志 - 跟踪所有模型交互以实现合规性
- 模型路由 - 无需更改代码即可在提供商之间切换
网关要求
为了使 LLM gateway 与 Claude Code 配合使用,它必须满足以下要求: API 格式 网关必须向客户端公开以下至少一种 API 格式:-
Anthropic Messages:
/v1/messages,/v1/messages/count_tokens- 必须转发请求头:
anthropic-beta、anthropic-version
- 必须转发请求头:
-
Bedrock InvokeModel:
/invoke,/invoke-with-response-stream- 必须保留请求体字段:
anthropic_beta、anthropic_version
- 必须保留请求体字段:
-
Vertex rawPredict:
:rawPredict、:streamRawPredict、/count-tokens:rawPredict- 必须转发请求头:
anthropic-beta、anthropic-version
- 必须转发请求头:
Claude Code 根据 API 格式确定要启用的功能。当使用 Bedrock 或 Vertex 的 Anthropic Messages 格式时,您可能需要设置环境变量
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。| 请求头 | 描述 |
|---|---|
X-Claude-Code-Session-Id | 当前 Claude Code 会话的唯一标识符。代理可以使用此标识符来聚合来自单个会话的所有 API 请求,而无需解析请求体。 |
X-Claude-Code-Agent-Id | 发出请求的子代理或队友的标识符。您的代理可以使用此标识符将 API 成本归属于会话内的各个并行子代理,而无需解析请求体。仅在由进程内子代理或队友发出的请求中出现。 |
X-Claude-Code-Parent-Agent-Id | 生成发出请求的代理的代理的标识符。将此与 X-Claude-Code-Agent-Id 一起使用,以在您的代理中跨嵌套代理归属 API 成本。仅当请求代理本身由另一个代理生成时才出现。 |
CLAUDE_CODE_ATTRIBUTION_HEADER=0 以省略它。
配置
模型选择
默认情况下,Claude Code 使用所选 API 格式的标准模型名称。 当ANTHROPIC_BASE_URL 指向一个公开 Anthropic Messages 格式的网关时,Claude Code 在启动时可以查询网关的 /v1/models 端点,并将返回的模型添加到 /model 选择器中。设置 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 来启用此功能。默认情况下发现功能是关闭的,以便由共享 API 密钥支持的网关不会向每个用户显示该密钥可以访问的每个模型。每个发现的条目都标记为”From gateway”,并在响应中提供 display_name 字段时使用该字段。这需要 Claude Code v2.1.129 或更高版本。
发现功能仅适用于 Anthropic Messages 格式。它不会对 Bedrock 或 Vertex 直通端点运行,也不会在 ANTHROPIC_BASE_URL 未设置或指向 api.anthropic.com 时运行。
发现请求的身份验证方式与推理请求相同:它将 ANTHROPIC_AUTH_TOKEN 作为 bearer 令牌发送,或在未设置身份验证令牌时将 ANTHROPIC_API_KEY 作为 x-api-key 标头发送,以及来自 ANTHROPIC_CUSTOM_HEADERS 的任何标头。只有 ID 以 claude 或 anthropic 开头的模型才会被添加到选择器中。结果被缓存到 ~/.claude/cache/gateway-models.json,并在每次启动时刷新。如果请求失败或网关未实现 /v1/models,选择器将回退到上一次启动时的缓存列表或内置模型列表。
如果您的网关使用与发现过滤器不匹配的模型名称,请使用 模型配置 中记录的环境变量来手动添加它们。
LiteLLM 配置
前置条件
- Claude Code 更新到最新版本
- LiteLLM Proxy Server 已部署且可访问
- 通过您选择的提供商访问 Claude 模型
基本 LiteLLM 设置
配置 Claude Code:身份验证方法
静态 API 密钥
使用固定 API 密钥的最简单方法:Authorization 请求头发送。
使用辅助程序的动态 API 密钥
用于轮换密钥或按用户身份验证:- 创建 API 密钥辅助程序脚本:
- 配置 Claude Code 设置以使用辅助程序:
- 设置令牌刷新间隔:
Authorization 和 X-Api-Key 请求头发送。apiKeyHelper 的优先级低于 ANTHROPIC_AUTH_TOKEN 或 ANTHROPIC_API_KEY。
统一端点(推荐)
使用 LiteLLM 的 Anthropic 格式端点:- 负载均衡
- 故障转移
- 对成本跟踪和最终用户跟踪的一致支持