跳转到内容

System message must be at the beginning.:Claude Code

Quick fix

将 Claude Code 的 "model" 从 "opus" 改为 "haiku" 或其他模型族,以避免 OpenAI 兼容 API 返回 400。

报错原文
API Error: 400 System message must be at the beginning.

在 cc-switch 代理 OpenAI 兼容聊天 API 时,Claude Code 使用 "opus" 模型族发出的请求会保留非首位的 system 消息。该后端要求 role: system 位于 messages 数组的第一项,因此拒绝请求并返回 400。

该 issue 中,"haiku" 模型族走的是另一条消息构建路径,system 消息恰好位于首位,所以会话可以正常运行。Issue 建议 cc-switch 在 Anthropic 到 OpenAI Chat Completions 的转换中规范化 system 消息顺序,但该 issue 仍处于 open 状态。

  1. 在 Claude Code 的 cc-switch 配置中,将 "model" 从 "opus" 改为 "haiku",或改用其他模型族。

  2. 重新启动 Claude Code 会话,确认不再出现该 400 错误。

ToolClaude Code
Version3.20.4(受影响版本)
PlatformsmacOS

(暂无 FAQ)

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。