直接答案
从客户端配置到协议透传,说明 Claude Code 接入 LLM gateway 时真正需要验证的链路。
这篇内容解决什么问题
帮助用户和 gateway 运维者正确配置模型路由,并识别“能请求”与“完整兼容”的差异。
优先用当前 CLI 可识别的模型入口
Claude Code 可以通过交互式 /model 或启动参数选择模型。官方别名会随产品更新指向对应模型,固定模型 ID 则适合必须复现结果的受控环境。
Gateway 可能使用自己的模型 ID 或别名。不要因为页面展示某个名字就假设上游支持,最终应以 gateway 模型列表和一次真实请求为准。
claude --model sonnet/model配置 base URL 与正确的凭据变量
Anthropic Messages 格式的 gateway 使用 ANTHROPIC_BASE_URL。Bearer token 放在 ANTHROPIC_AUTH_TOKEN,x-api-key 放在 ANTHROPIC_API_KEY。错误的变量会把凭据发送到服务端不读取的请求头。
首次连接只在当前 shell 临时导出变量。确认 URL、认证与模型后,再迁移到用户级安全配置。
export ANTHROPIC_BASE_URL='https://gateway.example.com'
export ANTHROPIC_AUTH_TOKEN='<gateway-token>'
claude先用最小 Messages 请求验证 gateway
在打开 Claude Code 前直接调用 /v1/messages,可以把 gateway URL 和认证问题从 CLI 配置中分离。模型 ID 应使用服务方明确提供的值,不要照抄其他供应商示例。
401 指向凭据或请求头;404 常见于 base URL 路径错误;未知模型通常说明网络与认证已经到达 gateway,下一步检查模型路由。
export CLAUDE_MODEL='<gateway-model-id>'
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
-H 'anthropic-version: 2023-06-01' \
-H 'content-type: application/json' \
-d "{\"model\":\"$CLAUDE_MODEL\",\"max_tokens\":1,\"messages\":[{\"role\":\"user\",\"content\":\".\"}]}"完整兼容要求不止一个 /v1/messages
Claude Code 消费服务端发送事件,gateway 必须持续转发流式响应,不能等完整响应后一次性返回。anthropic-version、anthropic-beta 与对应请求体字段需要按协议一起透传。
Gateway 不应按当前观察到的固定字段白名单转发。Claude Code 更新会加入新能力;剥离 header、改写 body 或包装上游错误,可能让重试和能力降级失效。
- SSE 数据到达后立即转发,避免客户端表现为卡住。
- 保留 beta header 与配套 body 字段。
- 上游错误状态和响应体尽量原样返回。
- 可选 token-counting 端点缺失时,客户端会改用本地估算。
按需启用 gateway 模型发现
支持 Anthropic Messages 格式的 gateway 可以实现 /v1/models,Claude Code 在显式启用模型发现后把合规模型加入 /model 选择器。该能力默认关闭,且需要当前 CLI 与 gateway 都支持。
发现失败不应影响基础推理;客户端可能使用缓存或内置列表。对外教程必须先实测端点、认证头、3 秒响应约束和模型 ID 过滤,再宣称支持自动发现。
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
claude --debug-file /tmp/claude-gateway-debug.log理解自定义 gateway 的界面边界
CLI 与 VS Code 可以按各自配置读取 gateway 变量;Desktop 使用单独的第三方推理配置。Claude Code 网页版和 Slack 属于 Anthropic 托管界面,不会因为本地设置了 ANTHROPIC_BASE_URL 就通过自定义 gateway。
某些依赖 claude.ai 身份或直连服务的功能在 gateway 凭据生效时不可用。文档应把“CLI 推理可用”与“Claude Code 全部产品界面可用”明确分开。
官方来源与核验范围
本文以公开官方文档为事实依据;命令和配置可能随客户端版本变化,执行前请同时核对对应来源。
查看技术核验方法