Claude Code 升级到 v2.1.156 后,DeepSeek 报错?一个配置搞定
今天早上打开 Claude Code发现自动升级到了 v2.1.156结果 DeepSeek 直接崩了。报错信息挺长核心就一句messages[1].role: unknown variant systemexpected user or assistant。我心想这昨天还好好的今天怎么突然就炸了问题根源system 角色进了 messages查了半个多小时终于搞明白了。这次升级之后Claude Code 在请求里加了 system 角色的消息也就是系统指令相当于给 AI 的预设身份卡。但 DeepSeek 的 Anthropic 兼容接口有个坑它的 messages 数组里只认 user 和 assistant 两种角色系统指令应该放在顶层的 system 字段而不是混在 messages 里面。所以一旦请求里出现了 role: “system”DeepSeek 就会直接返回 400。说白了就是 Claude Code 发的东西 DeepSeek 接不住了。我的修复方法换个协议格式如果你跟我一样用 cc-switch一个中转工具相当于 AI 模型的路由器接 DeepSeek旧配植大概率是这样的URL 填 https://api.deepseek.com/anthropic格式选 anthropic 直通模式。这种模式下 cc-switch 不做任何转换发什么传什么以前没问题现在多了 system 角色就彻底翻车。解决办法其实很简单在 cc-switch 里新建一个 DeepSeek providerAPI 地址改成 https://api.deepseek.com注意去掉 /anthropic 后缀格式从 anthropic 换成 openai_chat。openai_chat 模式下cc-switch 会按 OpenAI 的 Chat Completions 格式来转发请求自动把 system 消息处理到正确的位置不再直接塞进 messages 数组。我改完之后重启 Claude CodeDeepSeek 恢复正常跟之前一样流畅。第一次使朋新配植的时候可能会提示重新加载点确定就行。说实话这种兼容性问题挺烦人的本质是各家 API 格式不统一中间转一手就容易出幺蛾子。如果你也遇到这个报错按上面改一下 provider 配置就行亲测有效。你平时用 Claude Code 搭 DeepSeek 的时候还踩过哪些坑