claude code + ccSwitch调用deepseek-v4 发生错误API Error: 400 The content[].thinking in the thinking mode must be passed back to the API

解决步骤

点击编辑供应商,修改json文件为

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "你自己的api-key",
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1M]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL_NAME": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_SONNET_MODEL_NAME": "deepseek-v4-flash",
    "ANTHROPIC_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "true"
  },
  "includeCoAuthoredBy": false,
  "modelParams": {
    "stream": true,
    "thinking": false  //关键在这
  }
}

原因分析

在 ccSwitch更新到版本v3.15.0后,调用api方式变了

claude code以为你在用真正的 Claude Opus,所以它发送了 thinking/effort 参数,并在多轮对话中尝试 round-trip thinking blocks。但实际后端是 DeepSeek-V4-flash,它的 Anthropic 兼容层对 thinking signatures 的处理有问题。

将json文件中加上
“modelParams”: {
“stream”: true,
“thinking”: false
}后将会关闭claude code本身的thinking层

关闭thinking层并不会对claude自家模型以外的模型造成影响

对于DeepSeek 的兼容 API 来说,没有任何影响

thinking 是 Anthropic API 的概念——真正的 Claude 模型会用 thinking 做内部分步推理,提升复杂任务质量。但 DeepSeek-V4不是 Claude,它没有 adaptive thinking 机制。

DeepSeek 的 /anthropic 兼容层只是模拟了 response 格式,把 thinking blocks 包装进去。关掉它:

  • DeepSeek-V4-flash 本身的能力 → 完全不变
  • 兼容层不再生成 thinking blocks → 不会再报 400 错误

对于真实的 Claude Opus 4.7,关 thinking 会有能力下降。但对于走兼容 API 的 DeepSeek-V4-flash,thinking: false 只是让兼容层少包一层东西,模型能力不受任何影响。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐