2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.
4 4
5# LLM gateway 配置5# LLM gateway
6 6
7> 了解如何配置 Claude Code 以使用 LLM gateway 解决方案。涵盖网关要求、身份验证配置、模型选择和特定提供商的端点设置。7> 通过 LLM gateway 路由 Claude Code 以实现集中身份验证、使用情况跟踪和成本控制。涵盖将 Claude Code 连接到网关、为您的组织部署网关、Claude Code 发送到网关的内容,以及网关如何与 claude.ai 订阅交互。
8 8
9LLM gateway 提供了 Claude Code 和模型提供商之间的集中代理层,通常提供以下功能:9LLM gateway 是您的组织在 Claude Code 和模型提供商之间运行的代理。Claude Code 将 API 流量发送到网关,网关使用您的组织控制的凭证将其转发给提供商。
10 10
11* **集中身份验证** - API 密钥管理的单一入口11本页面涵盖:
12* **使用情况跟踪** - 监控团队和项目的使用情况
13* **成本控制** - 实施预算和速率限制
14* **审计日志** - 跟踪所有模型交互以实现合规性
15* **模型路由** - 无需更改代码即可在提供商之间切换
16 12
17本页面涵盖 Claude Code CLI 的网关要求和配置。企业桌面部署可以通过[托管设置](https://support.claude.com/zh-CN/articles/12622667-enterprise-configuration)配置网关提供商。Claude Desktop 应用也可以通过 [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/gateway) 针对自托管网关运行,该预览版使用自己的配置密钥。13* [网关提供的功能](#what-a-gateway-provides)
18 14* [路由和凭证如何工作](#how-a-gateway-works)
19<h2 id="gateway-requirements">15* [部署网关的步骤](#roll-out-a-gateway)
20 网关要求16* [网关如何与 claude.ai 订阅交互](#subscriptions-and-gateways)
21</h2>17* [与网关分开配置的内容](#configure-separately-from-the-gateway)
22
23为了使 LLM gateway 与 Claude Code 配合使用,它必须满足以下要求:
24
25**API 格式**
26
27网关必须向客户端公开以下至少一种 API 格式:
28
291. **Anthropic Messages**: `/v1/messages`, `/v1/messages/count_tokens`
30 * 必须转发请求头:`anthropic-beta`、`anthropic-version`
31
322. **Bedrock InvokeModel**: `/invoke`, `/invoke-with-response-stream`
33 * 必须保留请求体字段:`anthropic_beta`、`anthropic_version`
34
353. **Vertex rawPredict**: `:rawPredict`、`:streamRawPredict`、`/count-tokens:rawPredict`
36 * 必须转发请求头:`anthropic-beta`、`anthropic-version`
37
38未能转发请求头或保留请求体字段可能导致功能减少或无法使用 Claude Code 功能。
39 18
40<Note>19<Note>
41 Claude Code 根据 API 格式确定要启用的功能。当使用 Bedrock 或 Vertex 的 Anthropic Messages 格式时,您可能需要设置环境变量 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。20 - 如果您是连接到现有网关的开发人员:[将 Claude Code 连接到您的网关](/zh-CN/llm-gateway-connect)
21 - 如果您是为组织部署网关的管理员:[部署和分发网关](/zh-CN/llm-gateway-rollout)
22 - 如果您正在配置网关产品:[网关协议参考](/zh-CN/llm-gateway-protocol)
42</Note>23</Note>
43 24
44**请求头**25<h2 id="what-a-gateway-provides">
45 26 网关提供的功能
46Claude Code 在每个 API 请求上包含以下请求头:
47
48| 请求头 | 描述 |
49| :------------------------------ | :--------------------------------------------------------------------------------------------- |
50| `X-Claude-Code-Session-Id` | 当前 Claude Code 会话的唯一标识符。代理可以使用此标识符来聚合来自单个会话的所有 API 请求,而无需解析请求体。 |
51| `X-Claude-Code-Agent-Id` | 发出请求的子代理或队友的标识符。您的代理可以使用此标识符将 API 成本归属于会话内的各个并行子代理,而无需解析请求体。仅在由进程内子代理或队友发出的请求中出现。 |
52| `X-Claude-Code-Parent-Agent-Id` | 生成发出请求的代理的代理的标识符。将此与 `X-Claude-Code-Agent-Id` 一起使用,以在您的代理中跨嵌套代理归属 API 成本。仅当请求代理本身由另一个代理生成时才出现。 |
53
54两个代理 ID 请求头都是每次生成的临时标识符,而不是持久的用户或设备 ID。
55
56Claude Code 还会在系统提示前面添加一个简短的归属块,其中包含客户端版本和从对话派生的指纹。Anthropic API 在处理前会删除此块,因此不会影响第一方提示缓存。如果您的网关实现了自己的提示缓存(以完整请求体为键),请设置 [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/zh-CN/env-vars) 以省略它。
57
58<h2 id="configuration">
59 配置
60</h2>27</h2>
61 28
62<h3 id="model-selection">29网关为您的组织提供一个地方来管理:
63 模型选择
64</h3>
65
66默认情况下,Claude Code 使用所选 API 格式的标准模型名称。
67 30
68当 `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 或更高版本。31* **凭证**:提供商密钥保留在服务器端;开发人员改为持有网关凭证
32* **使用情况跟踪**:按开发人员或团队归属使用情况,无论哪个提供商处理请求
33* **成本控制**:在一个地方强制执行预算和速率限制
34* **审计日志**:记录每个模型请求以实现合规性
35* **提供商切换**:在网关配置中更改提供商,无需接触开发人员机器
69 36
70发现功能仅适用于 Anthropic Messages 格式。它不会对 Bedrock 或 Vertex 直通端点运行,也不会在 `ANTHROPIC_BASE_URL` 未设置或指向 `api.anthropic.com` 时运行。37除了提供商切换外,所有这些都适用于上游是 Anthropic 的 API 还是[云提供商](/zh-CN/third-party-integrations)。
71 38
72发现请求的身份验证方式与推理请求相同:它将 `ANTHROPIC_AUTH_TOKEN` 作为 bearer 令牌发送,或在未设置身份验证令牌时将 `ANTHROPIC_API_KEY` 作为 `x-api-key` 标头发送,以及来自 `ANTHROPIC_CUSTOM_HEADERS` 的任何标头。只有 ID 以 `claude` 或 `anthropic` 开头的模型才会被添加到选择器中。结果被缓存到 `~/.claude/cache/gateway-models.json`,并在每次启动时刷新。如果请求失败或网关未实现 `/v1/models`,选择器将回退到上一次启动时的缓存列表或内置模型列表。39权衡是网关成为您的组织运营的基础设施。Claude Code 在每个版本中添加功能,不转发这些功能的网关会破坏相应的功能,因此网关产品需要随着 Claude Code 的发展而保持更新。[网关协议参考](/zh-CN/llm-gateway-protocol)涵盖要转发的内容。
73 40
74如果您的网关使用与发现过滤器不匹配的模型名称,请使用 [模型配置](/zh-CN/model-config) 中记录的环境变量来手动添加它们。41<h2 id="how-a-gateway-works">
75 42 网关如何工作
76<h2 id="litellm-configuration">
77 LiteLLM 配置
78</h2>43</h2>
79 44
80<Warning>45默认情况下,Claude Code 直接向 Anthropic 的 API `api.anthropic.com` 发送请求。要通过网关路由,请将 `ANTHROPIC_BASE_URL` 设置为网关的地址;Claude Code 改为向那里发送相同的请求。网关对开发人员进行身份验证,附加您的组织的提供商凭证,并将每个请求转发给它配置的任何提供商。
81 LiteLLM PyPI 版本 1.82.7 和 1.82.8 被恶意软件感染,存在凭证窃取风险。请勿安装这些版本。如果您已经安装了它们:
82
83 * 删除该软件包
84 * 轮换受影响系统上的所有凭证
85 * 按照 [BerriAI/litellm#24518](https://github.com/BerriAI/litellm/issues/24518) 中的补救步骤进行操作
86
87 LiteLLM 是第三方代理服务。Anthropic 不认可、维护或审计 LiteLLM 的安全性或功能。本指南仅供参考,可能会过时。请自行判断使用。
88</Warning>
89
90<h3 id="prerequisites">
91 前置条件
92</h3>
93
94* Claude Code 更新到最新版本
95* LiteLLM Proxy Server 已部署且可访问
96* 通过您选择的提供商访问 Claude 模型
97
98<h3 id="basic-litellm-setup">
99 基本 LiteLLM 设置
100</h3>
101
102**配置 Claude Code**:
103
104<h4 id="authentication-methods">
105 身份验证方法
106</h4>
107 46
108<h5 id="static-api-key">47`ANTHROPIC_BASE_URL` 是大多数网关的地址变量。面向特定云提供商(如 Bedrock、Vertex、Foundry 或 AWS 上的 Claude Platform)的网关改为使用该提供商的基础 URL 变量;[API 格式](/zh-CN/llm-gateway-protocol#api-formats)列出了哪个变量与每个配置相关联。
109 静态 API 密钥
110</h5>
111 48
112使用固定 API 密钥的最简单方法:49<Frame>
50 <img src="https://mintcdn.com/claude-code/zIcIE_SQv4Z0Zbhc/images/llm-gateway-flow.svg?fit=max&auto=format&n=zIcIE_SQv4Z0Zbhc&q=85&s=490607d033d235694efb49a73a5b9e4b" alt="显示 Claude Code 通过 LLM gateway 路由的图表。在开发人员机器区域中,Claude Code CLI、VS Code 扩展和 CI 或 Agent SDK 客户端向网关发送请求,网关 API 格式的基础 URL 变量指向它,每个开发人员持有每个开发人员的凭证,桌面应用通过组织分发的配置到达相同的网关。在标记为您的基础设施的区域中,LLM gateway 处理身份验证、使用情况跟踪、预算和路由,并使用您的组织的凭证转发请求。在模型提供商区域中,实线箭头指向您配置的提供商,显示为 Anthropic API,虚线箭头指向其他提供商选项,以 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry 为例。" width="780" height="322" data-path="images/llm-gateway-flow.svg" />
51</Frame>
113 52
114```bash theme={null}53涉及两种凭证:
115# 在环境中设置
116export ANTHROPIC_AUTH_TOKEN=sk-litellm-static-key
117 54
118# 或在 Claude Code 设置中55* **开发人员凭证**:每个开发人员持有自己的凭证,由网关颁发。它向网关验证他们的身份并在使用情况跟踪中识别他们
119{56* **提供商凭证**:网关持有一个提供商账户的凭证,由所有转发的流量共享。您不需要为每个开发人员配置提供商密钥
120 "env": {
121 "ANTHROPIC_AUTH_TOKEN": "sk-litellm-static-key"
122 }
123}
124```
125 57
126此值将作为 `Authorization` 请求头发送。58网关将每个请求转发给您配置的提供商,例如 Anthropic API、[Amazon Bedrock](/zh-CN/amazon-bedrock)、[Google Vertex AI](/zh-CN/google-vertex-ai)、[Microsoft Foundry](/zh-CN/microsoft-foundry) 或 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws)。因为 Claude Code 仅与网关通信,提供商选择是网关的配置,而不是客户端的。
127 59
128<h5 id="dynamic-api-key-with-helper">60<h2 id="roll-out-a-gateway">
129 使用辅助程序的动态 API 密钥61 部署网关
130</h5>62</h2>
131
132用于轮换密钥或按用户身份验证:
133
1341. 创建 API 密钥辅助程序脚本:
135
136```bash theme={null}
137#!/bin/bash
138# ~/bin/get-litellm-key.sh
139
140# 示例:从保险库获取密钥
141vault kv get -field=api_key secret/litellm/claude-code
142
143# 示例:生成 JWT 令牌
144jwt encode \
145 --secret="${JWT_SECRET}" \
146 --exp="+1h" \
147 '{"user":"'${USER}'","team":"engineering"}'
148```
149
1502. 配置 Claude Code 设置以使用辅助程序:
151
152```json theme={null}
153{
154 "apiKeyHelper": "~/bin/get-litellm-key.sh"
155}
156```
157
1583. 设置令牌刷新间隔:
159
160```bash theme={null}
161# 每小时刷新一次(3600000 毫秒)
162export CLAUDE_CODE_API_KEY_HELPER_TTL_MS=3600000
163```
164
165此值将作为 `Authorization` 和 `X-Api-Key` 请求头发送。`apiKeyHelper` 的优先级低于 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY`。
166
167<h4 id="unified-endpoint-recommended">
168 统一端点(推荐)
169</h4>
170
171使用 LiteLLM 的 [Anthropic 格式端点](https://docs.litellm.ai/docs/anthropic_unified):
172
173```bash theme={null}
174export ANTHROPIC_BASE_URL=https://litellm-server:4000
175```
176
177**统一端点相对于直通端点的优势:**
178
179* 负载均衡
180* 故障转移
181* 对成本跟踪和最终用户跟踪的一致支持
182
183<h4 id="provider-specific-pass-through-endpoints-alternative">
184 特定提供商的直通端点(替代方案)
185</h4>
186
187<h5 id="claude-api-through-litellm">
188 通过 LiteLLM 的 Claude API
189</h5>
190
191使用 [直通端点](https://docs.litellm.ai/docs/pass_through/anthropic_completion):
192 63
193```bash theme={null}64当您准备好为组织部署 LLM gateway 时,无论您选择哪个网关产品,顺序都是相同的:
194export ANTHROPIC_BASE_URL=https://litellm-server:4000/anthropic
195```
196 65
197<h5 id="amazon-bedrock-through-litellm">661. 部署网关并给予它您的提供商凭证,以便它可以验证它转发的请求。
198 通过 LiteLLM 的 Amazon Bedrock672. 为每个开发人员颁发网关凭证,以便使用情况归属于开发人员,离职时撤销一个凭证。
199</h5>683. 通过[托管设置文件](/zh-CN/settings#settings-files)和您的机密工具分发配置,以便每台机器都接收基础 URL 和凭证。当两者都分发时,开发人员无需配置任何内容。如果您没有设置分发,开发人员按照[连接页面](/zh-CN/llm-gateway-connect)自己设置变量。
694. 让每个开发人员[检查 Claude Code 中的配置](/zh-CN/llm-gateway-connect#check-for-an-existing-configuration),以便分发问题在他们依赖网关之前浮出水面。
200 70
201使用 [直通端点](https://docs.litellm.ai/docs/pass_through/bedrock):71[为您的组织部署 LLM gateway](/zh-CN/llm-gateway-rollout) 逐步讲解每个步骤,并显示在每个步骤中分发的配置文件。网关是组织设置的一部分;对于策略强制执行、使用情况可见性和数据处理决策,请参阅[为您的组织设置 Claude Code](/zh-CN/admin-setup)。
202 72
203```bash theme={null}73<h2 id="third-party-gateways">
204export ANTHROPIC_BEDROCK_BASE_URL=https://litellm-server:4000/bedrock74 第三方网关
205export CLAUDE_CODE_SKIP_BEDROCK_AUTH=175</h2>
206export CLAUDE_CODE_USE_BEDROCK=1
207```
208 76
209<h5 id="google-vertex-ai-through-litellm">77任何公开[支持的 API 格式](/zh-CN/llm-gateway-protocol#api-formats)的网关都可以工作。Anthropic 不认可、维护或审计第三方网关产品。按照它们自己的文档部署它们,然后使用[部署步骤](/zh-CN/llm-gateway-rollout)完成 Claude Code 端的部署。
210 通过 LiteLLM 的 Google Vertex AI
211</h5>
212 78
213使用 [直通端点](https://docs.litellm.ai/docs/pass_through/vertex_ai):79<h2 id="subscriptions-and-gateways">
80 订阅和网关
81</h2>
214 82
215```bash theme={null}83当[网关凭证变量](/zh-CN/llm-gateway-connect#set-the-credential-variable)或 `apiKeyHelper` 处于活动状态时,开发人员的 claude.ai 订阅不被使用:凭证替换该会话的订阅登录,订阅的使用限制不适用。该流量按令牌计费给拥有网关转发的凭证的人,例如您的组织的 Anthropic Console 账户,或当网关路由到那里时您的 Bedrock、Vertex 或 Foundry 账户。
216export ANTHROPIC_VERTEX_BASE_URL=https://litellm-server:4000/vertex_ai/v1
217export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
218export CLAUDE_CODE_SKIP_VERTEX_AUTH=1
219export CLAUDE_CODE_USE_VERTEX=1
220export CLOUD_ML_REGION=us-east5
221```
222 84
223<h5 id="claude-platform-on-aws-through-a-gateway">85仅设置 `ANTHROPIC_BASE_URL`,不设置网关凭证,不会替换订阅。请求仍然通过网关路由,但保存的 claude.ai 登录保持活动凭证,因此其使用限制和计费适用。将此流量转发给 Anthropic 的网关必须转发 `anthropic-beta` 中的 OAuth 功能;请参阅[请求头参考](/zh-CN/llm-gateway-protocol#request-headers)。
224 通过网关的 AWS 上的 Claude Platform
225</h5>
226 86
227路由到转发到 [AWS 上的 Claude Platform](/zh-CN/claude-platform-on-aws) 端点的网关:87<h2 id="configure-separately-from-the-gateway">
88 与网关分开配置
89</h2>
228 90
229```bash theme={null}91网关确定模型 API 请求的发送位置。模型选择、Claude Code 的其余网络流量和企业代理分开配置:
230export ANTHROPIC_AWS_BASE_URL=https://litellm-server:4000/anthropic-aws
231export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN
232export CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1
233export CLAUDE_CODE_USE_ANTHROPIC_AWS=1
234```
235 92
236有关更多详细信息,请参阅 [LiteLLM 文档](https://docs.litellm.ai/)。93* **模型选择**:基础 URL 决定请求的发送位置,而不是哪个模型回答它们。使用 `/model` 命令或模型环境变量选择模型;请参阅[如何设置您的模型](/zh-CN/model-config#setting-your-model)
94* **客户端流量**:版本检查和可选的客户端遥测(都可以用 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/zh-CN/env-vars) 禁用),以及当使用 claude.ai 或 Console 登录时的登录流量,转到 Anthropic 的更新和身份验证端点而不是网关。请参阅[网络访问要求](/zh-CN/network-config#network-access-requirements)了解域名
95* **企业代理**:使用 `HTTPS_PROXY` 设置的代理位于 Claude Code 和它与之通信的每个服务器之间,包括网关。如果您的网络需要代理,请配置两者;请参阅[代理配置](/zh-CN/network-config#proxy-configuration)
237 96
238<h2 id="additional-resources">97<h2 id="related-pages">
239 其他资源98 相关页面
240</h2>99</h2>
241 100
242* [LiteLLM 文档](https://docs.litellm.ai/)101* [将 Claude Code 连接到 LLM gateway](/zh-CN/llm-gateway-connect):在您自己的机器上设置基础 URL 和凭证,具有每个表面的配置和故障排除表
243* [Claude Code 设置](/zh-CN/settings)102* [为您的组织部署 LLM gateway](/zh-CN/llm-gateway-rollout):部署网关、颁发开发人员凭证和分发托管设置的管理员检查清单
244* [企业网络配置](/zh-CN/network-config)103* [Gateway 协议参考](/zh-CN/llm-gateway-protocol):Claude Code 发送到网关的内容,供配置网关的运营商使用,涵盖端点、要转发的头和功能传递
245* [第三方集成概述](/zh-CN/third-party-integrations)104* [为您的组织设置 Claude Code](/zh-CN/admin-setup):网关是其中一部分的更广泛的部署决策,包括策略强制执行和使用情况可见性