Claude Code 接入 MiniMax API 报错:invalid message role: system (2013) 完整排查记录

Claude Code 接入 MiniMax API 报错:invalid message role: system (2013) 完整排查记录

结论

这是CC自动更新了,把版本降级回去就行了。

最近在折腾 Claude Code 接入 MiniMax 的 Anthropic 兼容接口时,踩了一个非常隐蔽的坑。

现象非常离谱:

  • 命令行 CLI 能正常使用

  • VSCode 插件却直接报错

  • 重装之后,CLI 也突然炸了

最终定位发现:

不是配置错了,而是 Claude Code 新版本修改了消息格式,而 MiniMax 的 /anthropic 兼容接口对 system message 的位置有严格限制。

这篇文章完整记录一下整个排查过程。


一、问题现象

VSCode 中使用 Claude Code 插件时,持续报错:

复制代码
API Error: 400 invalid params, chat content has invalid message role: system (2013)

但奇怪的是:

同样的 API Key、

同样的配置、

命令行里的 Claude Code CLI 却完全正常。


二、环境配置

我的 Claude Code 配置如下:

文件:

复制代码
~/.claude/settings.json

内容:

复制代码
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-cp-xxx...",
    "ANTHROPIC_MODEL": "MiniMax-M2.7"
  }
}

本质上就是:

让 Claude Code 不再请求 Anthropic 官方接口,

而是转发到:

复制代码
https://api.minimaxi.com/anthropic

也就是 MiniMax 提供的 Anthropic 兼容 API。


三、初始状态

最开始时:

组件 版本 状态
Claude Code CLI 2.1.113 ✅ 正常
VSCode 插件 2.1.156 ❌ 报错

这里已经埋下了关键线索:

CLI 和插件版本不一致。


四、开始怀疑:消息格式兼容性

因为错误信息里明确提到:

复制代码
invalid message role: system

于是开始直接测试 MiniMax API 对 message 格式的兼容情况。


五、直接测试 MiniMax Anthropic 接口

经过多轮实验,发现了一个关键问题:

MiniMax 的 /anthropic 兼容接口:

system message 有严格限制


测试结果

1. system message 在第一位

复制代码
[
  {
    "role": "system",
    "content": "you are helpful"
  },
  {
    "role": "user",
    "content": "hello"
  }
]

结果:

复制代码
✅ 成功

2. system message 不在第一位

复制代码
[
  {
    "role": "user",
    "content": "hello"
  },
  {
    "role": "system",
    "content": "you are helpful"
  }
]

结果:

复制代码
❌ 失败
错误码:2013

3. 多个 system message

复制代码
[
  {
    "role": "system",
    "content": "a"
  },
  {
    "role": "system",
    "content": "b"
  }
]

结果:

复制代码
❌ 失败

4. system message 出现在对话中间

结果:

复制代码
❌ 失败

六、根本原因终于出现了

问题本质:

MiniMax 的 Anthropic 兼容层并不完全兼容 Anthropic 官方协议

它要求:

  • system message 必须在 messages 数组第一位

  • 且只能有一个

而新版 Claude Code:

改变了内部消息组织方式

Claude Code 新版本(大约 2.1.154+):

在某些 Agent / Tool 调用场景下,

会动态插入新的 system message。

于是:

原本合法的:

复制代码
[
  system,
  user
]

变成了:

复制代码
[
  user,
  assistant,
  system
]

或者:

复制代码
[
  system,
  user,
  system
]

这直接触发了 MiniMax 的 2013 错误。


七、更离谱的事情发生了

后来我卸载重装了 Claude Code。

结果:

CLI 也突然炸了。

原因是:

Claude Code CLI 自动升级了

原本:

组件 版本
CLI 2.1.113

升级后:

组件 版本
CLI 2.1.154

于是:

CLI 和 VSCode 插件都开始报同一个错。


八、最终解决方案:降级

目前最稳定的方案:

锁定 Claude Code 到旧版本


1. 卸载当前版本

复制代码
winget uninstall "Claude Code" --silent

2. 安装旧版 CLI

复制代码
winget install Anthropic.ClaudeCode --version 2.1.113

3. VSCode 插件降级

复制代码
code --uninstall-extension anthropic.claude-code

code --install-extension anthropic.claude-code@2.1.112

九、最终可用版本

组件 版本 状态
CLI 2.1.113 ✅ 正常
VSCode 插件 2.1.112 ✅ 正常

十、如何防止自动升级

否则下次还会炸。

可以直接 pin:

复制代码
winget pin add Anthropic.ClaudeCode

十一、问题总结

这次问题的本质:

Claude Code 新版本 + MiniMax 不完整 Anthropic 兼容

两边共同导致的。


Claude Code 新版行为变化

新版会:

  • 动态插入 system message

  • 修改 message 顺序

  • Agent 模式下插入额外 system prompt


MiniMax 兼容层限制

MiniMax /anthropic 接口:

  • 不允许多个 system

  • 不允许 system 不在第一位

而 Anthropic 官方 API 实际上更宽松。


十二、临时方案与长期方案

临时方案

直接锁版本:

  • CLI:2.1.113

  • VSCode 插件:2.1.112

目前最稳。


长期方案

有两个方向:

方案一:MiniMax 更新兼容层

支持:

  • 多 system message

  • 任意位置 system message

真正兼容 Anthropic。


方案二:Claude Code 增加兼容模式

例如:

复制代码
compatibility_mode=minimax

自动:

  • 合并 system

  • 规范化位置

不过目前还没有。


十三、结语

这个问题最坑的地方在于:

表面看像 API Key 配错

但实际上:

是消息协议层面的兼容性问题。

而且:

CLI 能用、

插件不能用、

非常容易把人带偏。

如果你也在:

  • Claude Code

  • MiniMax API

  • Anthropic 兼容接口

这一套组合里踩坑,

希望这篇文章能帮你少走一点弯路。

相关推荐
golang学习记1 天前
VSCode 1.124 新特性:使用快捷键重构AI协作的“心流”
visual studio code
恒云客2 天前
vibe coding实践
claude code
WonderThink2 天前
AI编程:Claude Code + VSCode + CC-Switch
visual studio code
shangjian0073 天前
claude code使用技巧-完成通知
claude code
xing-xing3 天前
Mac 安装 Claude Code
claude code
悟空码字3 天前
把 Claude Code 变成你的架构顾问:如何用“隐式重构模式”自动消除代码坏味道
ai·大模型·agent·智能体·claude code
辞忧九千七3 天前
解锁Claude Code超强能力:DeepSeek V4无缝接入指南
ai·deepseek·claude code
赛博李同学AI手记4 天前
不是 Premiere,不是剪映——我用 Claude Code 做了一条视频
claude code·hyperframes
HelloFYW4 天前
Superpowers 5.1.0 技能使用手册(中文版)
开发工具·ai开发·claude code·superpowers·技能手册
SmartManWind4 天前
vscode中claude-code插件wsl中开启自动模式
ide·vscode·编辑器·claude code