关于 目前 新版CC 请求体启用了 mid_conversation_system 导致错误的解决方案

[!Warning] 错误概要: Claude cli v2.1.154 国产模型报400 API Error: 400 Failed to deserialize the JSON body into the target type: messages[1].role: unknown varia...
关于 目前 新版CC 请求体启用了 mid_conversation_system 导致错误的解决方案
关于 目前 新版CC 请求体启用了 mid_conversation_system 导致错误的解决方案

[!Warning] 错误概要:
Claude cli v2.1.154 国产模型报400
API Error: 400 Failed to deserialize the JSON body into the target type: messages[1].role: unknown variant system, expected user or assistant at line 1 column 994`

明确 messages 数组要求的role 不包含 system 项

通过分析发现 是新 beta 请求头 mid_conversation_system 带来的变化

而三方厂商肯定没有跟进
所以现给出解决方法
以 DeepSeek 为例

~/.claude/settings.deepseek.json

{
  "env": {
    "CLAUDE_CODE_USE_FOUNDRY": "1",
    "ANTHROPIC_FOUNDRY_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_FOUNDRY_API_KEY": "sk-",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES": "thinking,adaptive_thinking,temperature,effort,max_effort",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash[1m]",
    "ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES": "thinking,adaptive_thinking,temperature,effort,max_effort",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES": "thinking,adaptive_thinking,temperature,effort,max_effort"
  },
  "model": "opus",
  "effortLevel": "max"
}

claude --settings ~/.claude/settings.deepseek.json
至于 --settings 分配置启动的细节 回顾 Any牌路由器使用清障!

ps: 你可能会疑惑 怎么 一会 路由上写 [1m] 一会不写 用 “model”: “opus[1m]” 来代替的

聪明的你应该发现 [1m] 只能有一处有 至于为什么现在的这个 又改到 路由指定上写了呢
是因为 *_SUPPORTED_CAPABILITIES 需要去匹配模型id (opus[1m] 匹配不到) 所以不得已转了个弯 把 [1m] 写路由指代上去

我自己用哪还折腾这么多 直接Patch干掉! 写这个是为了 用 Claude Desktop 的佬~ 这样不用捣鼓他那破bun捆包了

问题 轻松秒杀~

28 个帖子 - 28 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文