CC-024:第三方 Anthropic 兼容端点返回 system role 400
问题现象
第三方端点返回类似错误:
400 ... messages[1].role: unknown variant `system`, expected `user` or `assistant`这通常表示第三方所谓“Anthropic 兼容”接口没有实现 Claude Code 当前使用的完整 Messages API 行为。兼容范围应由该端点发布方证明,不能仅凭 Base URL 可连接就认定兼容。
已撤下的旧方案
旧版页面建议把任意第三方端点伪装成 Microsoft Foundry,设置 CLAUDE_CODE_USE_FOUNDRY 与 ANTHROPIC_FOUNDRY_*,并引用非官方论坛作为“标准做法”。Anthropic 官方资料只把相应变量用于实际的 Foundry 集成,本次没有官方依据支持将其用于无关端点,因此该方案已撤下。
最小排查
- 向第三方端点发布方确认其明确支持 Claude Code 当前版本和 Anthropic Messages API,而不只是基础 Chat Completions
- 使用该发布方正式记录的协议、Base URL、模型 ID 与鉴权头;不要从同名模型或搜索结果推断
- 用新的空会话发送最小请求,保存去除 Key/Token 后的响应状态与 request ID
- 如果端点只支持 OpenAI Chat Completions,应改用官方支持该协议的客户端,不要强行把它伪装成 Anthropic/Foundry
- 如果使用的确实是 Microsoft Foundry,按 Anthropic LLM Gateway 文档 与 Microsoft 官方资料配置
资料来源:Anthropic LLM Gateway 文档(2026-07-26 核对)