Claude Desktop 支持把推理请求指向你自己的网关。本页给出接入 CodeGateway 的完整配置,包括模型选择器清单与 1M 上下文的正确声明方式。
一、打开三方推理配置
在 Claude Desktop 里:Help > Troubleshooting > Enable Developer Mode,然后 Developer > Configure Third-Party Inference…。
二、连接设置
配置项 | 值 |
|---|---|
Inference provider | Gateway |
Gateway base URL |
|
Credential kind | Static API key |
Gateway auth scheme | Bearer( |
Gateway API key | 你的 |
配好后,Claude Desktop 用 GET /v1/models 拉模型目录,把对话与 Code 会话的请求发到 POST /v1/messages——两者都会走 CodeGateway 的路由、计量与账单。
三、模型选择器里的清单
走自动发现时,Claude Desktop 只保留 id 里含 claude 或 anthropic 的条目,所以 CodeGateway 目录里的 claude-* 都会出现在选择器里(名字用 id,副标题显示「From gateway」)。
想完全自己控制清单(顺序、显示名、默认项),用 managed configuration 的 inferenceModels——它会替代自动发现,第一条即默认选中:
[
{ "name": "claude-sonnet-5-5", "supports1m": true, "anthropicFamilyTier": "sonnet", "isFamilyDefault": true },
{ "name": "claude-opus-5-5", "supports1m": true, "anthropicFamilyTier": "opus", "isFamilyDefault": true },
{ "name": "claude-fable-5-1", "supports1m": true, "anthropicFamilyTier": "fable", "isFamilyDefault": true },
{ "name": "claude-sonnet-5", "supports1m": true, "anthropicFamilyTier": "sonnet" },
{ "name": "claude-opus-5", "supports1m": true, "anthropicFamilyTier": "opus" },
{ "name": "claude-opus-4-8", "anthropicFamilyTier": "opus" },
{ "name": "claude-sonnet-4-6", "anthropicFamilyTier": "sonnet" },
{ "name": "claude-haiku-4-5", "anthropicFamilyTier": "haiku", "isFamilyDefault": true }
]name必须与/v1/models返回的 id 完全一致。填sonnet这类别名不会生效——别名不会折叠成 1M 变体。inferenceModels是 managed configuration(MDM profile /bootstrapUrl/ 各平台的 managed-settings 文件)里的键;Apply locally写入的本地配置等价。
四、1M 上下文:只给确认 1M 的模型标 supports1m
supports1m 是你在配置里做的一条能力声明:声明这个部署接受 1M token 的请求。请只对目录里确实是 1M 窗口的条目打开它:
id | 上下文窗口 |
|
|---|---|---|
| 1M | 可以标 |
| 1M | 可以标 |
| 1M | 可以标 |
| 1M | 可以标 |
| 200K | 不要标 |
标错会怎样?选择器仍会显示一个 1M 变体,但请求打到 CodeGateway 时会被拒绝:网关只在模型目录的 context_window ≥ 1M 时才认 [1m] 后缀,因此 claude-sonnet-4-6[1m] 返回 400 Unsupported model。这样设计是为了让「客户端以为 1M、实际 200K,跑到一半撞上限」这类静默失败变成启动即报错。
五、让裸别名落到正确的模型
Code sessions 里用 sonnet / opus / haiku 这类裸别名时,Claude Desktop 靠 anthropicFamilyTier 决定它对应清单里的哪一条;同一 tier 有多条时,isFamilyDefault: true 的那条胜出。
六、验证
curl -s https://api.codegateway.dev/v1/models \
-H "Authorization: Bearer sk-cg-YOUR_KEY" | head -c 400再用 CodeGateway 的 Anthropic 端点发一条最小请求:
curl -sS https://api.codegateway.dev/v1/messages \
-H "x-api-key: sk-cg-YOUR_KEY" -H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'返回 "type":"message" 即链路已通。1M 窗口由模型本身提供,不需要额外开关。