- 要将您自己机器上的 Claude Code 连接到现有网关,请参阅将 Claude Code 连接到 LLM 网关
- 有关 Claude Code 发送到网关的内容以及要转发的内容,请参阅网关协议参考
前置条件
要完成推出,您需要:- 在您的基础设施上部署的网关,在您将分发给开发者的确切地址上提供 HTTPS,而不是重定向到它的地址,并配置为将 Claude 模型名称路由到您的提供商
- 网关转发的提供商凭证:
- 对于 Anthropic API:来自 Claude 控制台的 API 密钥
- 对于云提供商:具有模型访问权限的云凭证。请参阅 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 页面上的前置条件
- 一种向开发者机器交付设置文件的方式,例如 MDM 或配置管理
- 如果您还没有,设置如何到达设备比较了各种选项
网关要求
无论哪种产品提供网关,它必须:- 接受支持的 API 格式:API 格式表中的格式之一。下面的推出步骤假设 Anthropic Messages API 位于
POST /v1/messages,大多数网关都提供此格式 - 流式传输响应:按到达时传递服务器发送的事件,包括保活 ping,而不是缓冲整个响应;流式传输涵盖了缓冲或剥离 ping 会破坏什么
- 路由 Claude 模型名称:将开发者使用的每个名称映射到上游模型。Claude Code 在每个请求中发送模型名称,例如
claude-sonnet-4-6;在大多数网关产品中,映射是网关自己配置中的模型列表或路由表 - 转发标头和正文不变:在两个方向上传递
anthropic-beta、anthropic-version和请求正文;功能传递表将每个映射到没有它就会中断的功能 - 返回未修改的上游错误:Claude Code 的自动恢复与错误措辞匹配,因此在网关自己的信封中包装错误会破坏它,除非信封的消息包含 Claude apps 网关为云提供商的错误措辞替换的
capability_rejected:令牌之一 - 豁免路径免受请求正文 WAF 检查:Claude Code 提示包含源代码和 XML 样式标签,与跨站脚本正文规则匹配;网关前面的 WAF 在真实会话中返回
403,而短测试请求通过
GET /v1/models 以便 Claude Code 可以使用模型发现从您的网关填充模型选择器。
推出步骤
推出分为五个步骤,每个步骤都有一个检查点: 这些步骤涉及三个不同的凭证,检查点用占位符命名它们,以便您可以在出现问题时判断哪个有问题:确认网关路由您的模型
您的网关应该已经配置了您的提供商凭证,在其基础 URL 上侦听,并将请求转发到您的提供商的 API。使用最小请求测试路径是否端到端工作,替换来自您的部署的两个值:<gateway-key>是任何让您现在调用网关的凭证:管理密钥、测试密钥或您自己的开发者密钥(如果您已经颁发了一个)。并非每个网关产品都有单独的管理凭证;如果您的没有,请先在颁发开发者凭证中为自己颁发开发者密钥model是您的网关配置为路由的 Claude 模型名称。示例使用claude-sonnet-4-6;替换为您配置的名称
- Bash 或 Zsh
- PowerShell
content 字段的 200 意味着网关以该模型名称到达了提供商。404 意味着该名称在网关处未路由;来自提供商的 401 意味着网关的提供商凭证错误。
对网关路由配置中的每个 Claude 模型名称重复请求一次。网关不路由的名称会向选择它的任何开发者返回 404,因此在推出前测试每个名称。
避免在重定向后提供网关。重定向可能会在推理请求上丢弃请求正文或剥离凭证标头,模型发现将任何重定向视为失败,因此凭证无法泄露到重定向目标。
颁发开发者凭证
每个开发者需要自己的网关密钥来进行身份验证。按照您的产品的凭证管理文档在网关处为每个开发者创建凭证。 使用与确认网关路由您的模型相同的请求确认新颁发的密钥对网关有效,将<gateway-key> 替换为新的 <developer-key>:
- Bash 或 Zsh
- PowerShell
content 字段的 200 意味着开发者密钥到达网关,网关转发它。当前一步成功时,这里的 401 意味着开发者密钥错误或尚未在网关处生效。
为每个开发者颁发一个密钥而不是共享密钥是使每个开发者使用归因和个人离职工作的原因。保存密钥的环境变量取决于网关读取的标头。对于在 Authorization: Bearer 标头中检查凭证的网关,开发者在 ANTHROPIC_AUTH_TOKEN 中设置他们的密钥。对于从 x-api-key 标头读取密钥的网关,开发者改为设置 ANTHROPIC_API_KEY;凭证表涵盖了映射。
针对网关测试 Claude Code
在分发任何内容之前,使用推出将交付的相同配置自己通过网关运行 Claude Code。直接在终端中键入这些,而不是在.env 或设置文件中;它们仅在此终端会话中持续,因此关闭它会将您的机器返回到其正常配置。如果您的网关读取 x-api-key 标头,请使用 ANTHROPIC_API_KEY 而不是 ANTHROPIC_AUTH_TOKEN:
- Bash 或 Zsh
- PowerShell
/v1/messages 路径的 POST,状态为 200。Claude Code 附加查询字符串,例如 ?beta=true,因此匹配路径,而不是完整 URL。两条失败消息指向不同的方向:
Not logged in:检查网关日志以区分两个原因。如果它是空的,没有凭证到达会话,没有请求离开机器;在您测试的 shell 中重新运行导出。如果它显示在401正文中带有x-api-key的被拒绝请求,网关期望密钥在该标头中;切换到ANTHROPIC_API_KEYFailed to authenticate. API Error: 401意味着凭证被发送并被拒绝,网关日志说明了在哪里:命名api.anthropic.com或您的提供商端点的401意味着网关到达了上游但其提供商凭证被拒绝,因此开发者密钥有效,网关持有的提供商凭证错误或是占位符
ANTHROPIC_BASE_URL 不指向网关。
分发配置
每个开发者机器都需要网关地址和凭证。您可以通过托管设置集中分发它们,以便开发者不配置任何内容,或者手动向开发者提供值以自己设置。要分发的内容
无论您选择哪条路径,都适用相同的变量集。大多数推出只需要ANTHROPIC_BASE_URL 和凭证;当您的网关设置需要时包括条件行。
通过托管设置分发
通过托管设置文件的env 块交付变量,由 MDM、注册表策略或配置管理推送:
env 块。托管的 ANTHROPIC_BASE_URL 被强制执行,不能被开发者的 shell 导出覆盖,因为 Claude Code 在进程环境和较低优先级设置上应用它。
不要在托管设置中与网关凭证一起包括 forceLoginMethod 或 forceLoginOrgUUID。任一密钥,具有任何值,在启动时阻止 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 和 apiKeyHelper,开发者无法继续。他们看到 This machine's managed settings require a first-party login,或在 "gateway" 值下看到 Administrator policy requires a Cloud gateway sign-in。
服务器管理的设置交付需要直接连接到 api.anthropic.com,因此它不会到达网关路由的会话。网关部署使用这个基于文件的托管设置路径,它强制执行相同的密钥。
对于凭证,在托管设置文件中分发一个 apiKeyHelper 命令,如上所示;该命令作为本地开发者对您的秘密存储进行身份验证,因此每台机器都接收自己的密钥。或者,通过您现有的秘密流程向每个开发者交付他们的密钥,并让他们自己设置 ANTHROPIC_AUTH_TOKEN。
某些环境需要单独的交付:
- 桌面应用从其第三方推理配置读取网关路由,而不是从托管设置;通过 MDM 部署该文件以及托管设置,以便桌面会话也通过网关路由。请参阅桌面第三方配置文档和桌面网关文档
- CI 运行器需要在运行器的环境中设置
ANTHROPIC_BASE_URL和凭证 - 托管 Windows 机器上的 WSL 仅在
wslInheritsWindowsSettings为true时读取 Windows 托管设置
手动向开发者提供值以自己设置
如果您没有托管设置分发,请向每个开发者发送他们需要的内容以遵循连接页面:- 网关 URL
- 他们的个人凭证
- 将凭证放在哪个变量中:对于 bearer-token 网关为
ANTHROPIC_AUTH_TOKEN,或对于x-api-key网关为ANTHROPIC_API_KEY。告诉开发者哪一个可以节省他们在连接页面上描述的试错 - 要分发的内容表中的任何条件变量,以及它们的值
claude 启动会话而不显示登录屏幕,因为分发的凭证满足身份验证。然后运行 /status 并打开状态选项卡:Anthropic base URL 行显示网关地址,对于托管分发,Setting sources 行包括托管设置。登录屏幕或缺少 Anthropic base URL 行意味着配置没有到达机器。
验证推出
从开发者机器而不是网关主机确认一切工作,以便测试涵盖开发者使用的网络路径。发送流式请求,它一次检查端点、流式传输传递和模型路由:- Bash 或 Zsh
- PowerShell
data: 行逐步到达。整个响应在暂停后一次到达意味着网关正在缓冲,这会停滞 Claude Code;404 意味着模型名称未路由。每个模型名称重复。
然后启动 claude 并发送消息。此步骤的每个症状都有一个原因:
- 登录提示意味着凭证缺口。运行
/status并打开状态选项卡:当Setting sources行不包括托管设置时,分发没有到达机器;当它包括时,开发者凭证没有被交付,因此设置ANTHROPIC_AUTH_TOKEN或apiKeyHelper Failed to authenticate错误意味着网关拒绝请求;其日志说明了哪个凭证失败。网关自己记录的拒绝命名开发者密钥,而来自api.anthropic.com或您的提供商端点的401意味着网关持有的提供商凭证被拒绝- 当网关期望密钥在
x-api-key标头中时,在首次使用时出现一次性批准提示是预期的,设置为ANTHROPIC_API_KEY。使用ANTHROPIC_AUTH_TOKEN,不会出现提示,变量会无声地接管;以前保存的 claude.ai 登录对该会话无效
/fast:可用性检查直接调用 api.anthropic.com 而不是遵循网关基础 URL,因此网关路由的会话可以报告快速模式不可用或禁用,即使推理有效。在代理和 LLM 网关后面使用快速模式将每条消息映射到恢复它的变量,与配置的其余部分一起分发。
最后,检查网关的日志以查看您发送的消息:凭证标识开发者,x-claude-code-session-id 标头按会话对请求进行分组。如果功能因故障排除症状而失败,网关正在剥离标头或重写错误;请参阅上面的网关要求。
维护网关
推出后,三种变化会随着时间到达网关。每一种都有一个症状要观察和一个要采取的行动。
在调整每个密钥的速率限制时,考虑客户端重试瞬时故障,包括
429 响应,最多 10 次,带有退避,遵守 Retry-After。将兼容性指南作为每个 Claude Code 版本发送的内容的参考。
规划 Claude Code 版本升级
某些 Claude Code 行为内置于已安装的版本中,而不是在您的网关处设置,因此将开发者移至新版本可以改变整个部署中的行为,即使网关配置没有改变。要控制何时发生这种情况,请使用requiredMaximumVersion 将开发者固定到已测试的版本,或者如果您通过自己的渠道分发 Claude Code,请使用 DISABLE_UPDATES。在提高固定版本之前,请阅读新版本的更新日志条目并针对网关测试它。
当您测试一个版本时,网关拒绝的新标头或请求字段显示为维护网关中描述的 400 错误。下表涵盖不产生错误的版本相关变化,以及保持每个变化在升级中保持不变的设置。
相关资源
- 将 Claude Code 连接到 LLM 网关:面向开发者的设置步骤,具有每个表面的配置和您可以交给开发者的故障排除表
- 网关兼容性指南:网关运营商的参考指南,涵盖端点、要转发的标头以及功能传递表
- Claude Code 使用的值:托管、项目和用户设置如何组合
- 交付机制:托管文件在每个平台上的位置
- 为您的组织设置 Claude Code:这个网关是其中一部分的更广泛推出,包括策略强制执行、使用可见性和数据处理