惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
博客园 - 叶小钗
S
SegmentFault 最新的问题
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
量子位
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
J
Java Code Geeks
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 三生石上(FineUI控件)
Attack and Defense Labs
Attack and Defense Labs
AI
AI
The Cloudflare Blog
T
Tailwind CSS Blog
S
Schneier on Security
爱范儿
爱范儿
PCI Perspectives
PCI Perspectives
Stack Overflow Blog
Stack Overflow Blog
S
Secure Thoughts
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
V2EX - 技术
V2EX - 技术
S
Securelist
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
Help Net Security
Help Net Security
C
Cisco Blogs
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
K
Kaspersky official blog
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog

博客园 - 悠哉大斌

AI Agent 安全沙箱技术对比:E2B、Cube Sandbox 与 Docker Sandboxes linux 升级 claude code的坑 debian(WSL) apt 代理配置 linux内核之Namespaces、Cgroups、Capabilities、Seccomp和Landlock 大语言模型推理中的隐藏瓶颈及其解决方法 Docker Sandboxes 技术是什么,和docker容器有什么区别 什么是 Docker Agent以及一个Docker Agent示例 windows wsl 安装 Temurin® JDK claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么 Java 并发编程发展史与 java.util.concurrent 全景解析 LLM 真的改变了编码风格吗? 如果人工智能会犯错且不精确,为什么它正在改变世界? Python 的协程模型和 JavaScript 的 async/await python闭包和function.__closure__特殊属性 python 的 dunder name和 sunder name 基于nodejs设计REST API的知名开源框架 windows上使用node-oracledb Thick 模式连接 Oracle 11g python里对象(object)到底是什么 Python 泛型演变史 Python 类型别名的演变 Python 类型提示的演变史 PEP 593 新增的Annotated 类型 Alibaba AgentScope 和 microsoft agent framework 详细对比分析 spring AI Alibaba Agent Framework 和 agentscope有什么区别和联系 AI Agent协作模式以及主流开源框架对协作模式的支持 Tailscale 是如何接管 DNS 的? Agent = Model + Harness 使用rust编写typescript编译器的难点在什么地方,哪些数据结构是rust不擅长的? TypeScript/JavaScript 中的异步迭代语句 js中的生成器函数 Tailscale Serve and Funnel openclaw gateway的网络绑定模式 websocket协议和http协议有何依赖关系? MCP通信的双方是谁? claude code MCP 安装范围 如何在wsl2环境下给claude code cli 配置 playwright-mcp wsl的网络模式有哪几种,有哪些区别? AI Agent memory是什么? ai agent skills是什么? Go测试生态系统工具与最佳实践深度调研(聚焦认证授权系统) 线性代数中常见矩阵类型的概念关系思维导图 三种主流授权策略
Claude Code CLI连接 DeepSeek V4模型后调用报400错误
悠哉大斌 · 2026-04-28 · via 博客园 - 悠哉大斌

API 400错误

API Error: 400 {"error":{"message":"The content[].thinking in the thinking mode must be passed back to the API.","type":"invalid_request_error","param":null,"code":"invalid_request_error"}}

当前claude版本: 2.1.118 (Claude Code)

这个错误是 Claude Code 在使用 DeepSeek V4 模型时因思考模式(thinking mode)的机制引发的。

一、错误原因

DeepSeek V4 的思考模式机制

DeepSeek V4 默认启用思考模式(thinking mode),模型在输出最终答案前会先输出一段思维链(Chain-of-Thought),通过 reasoning_content 参数返回。

API 对 Tool Call(工具调用)轮次(即 Agent 多轮交互场景)的推理连续性有严格校验,官方文档明确指出:

"在两个 user 消息之间,如果模型进行了工具调用,则中间 assistant 的 reasoning_content 需参与上下文拼接,在后续所有 user 交互轮次中必须回传给 API。"
https://api-docs.deepseek.com/zh-cn/guides/thinking_mode
微信截图_20260428163512

触发该错误的典型场景

  1. 同一对话中切换过不同厂商的模型
    会话前半段使用了 OpenAI、Anthropic 或其他非 DeepSeek 模型,切回 DeepSeek V4 后,Claude Code 尝试将之前的对话历史(不含 reasoning_content)发给 DeepSeek,而 DeepSeek 严格校验发现缺少应有的 reasoning_content,便报出 The content[].thinking in the thinking mode must be passed back to the API 错误。

  2. 中间层(API 网关、代理、中转服务)未能完整透传 reasoning_content
    若通过 API 网关、代理或中转服务调用 DeepSeek,这些中间层可能丢失或未正确处理 reasoning_content 字段,导致 API 收到的消息不完整。
    这种情况常见于在 Claude Code 中通过第三方代理接入 DeepSeek 的场景——代理协议转换时如果漏掉了 reasoning_content 字段,就会触发校验失败。

  3. 对话历史中缺失必要的 reasoning_content 信息
    在多轮 Agent 对话中,新的请求必须携带完整的消息历史,其中包含此前所有轮次返回的 reasoning_content。如果 Claude Code 在拼接上下文时遗漏了该字段,也会触发该错误。


二、解决方案汇总

✅ 方案1:新开对话会话(最直接最彻底)

如果对话中途出现该错误,最快捷的解决方式是直接重启 Claude Code 或开启一个全新的对话会话,不要复用之前已损坏的会话上下文。


✅ 方案2:避免在同一对话中切换不同厂商的模型

DeepSeek V4 对工具调用轮次有严格的推理连续性要求,混用其他模型会破坏这一结构。建议:

  • 在一个会话中始终使用 DeepSeek V4 模型,不要中途切换
  • 如果需要换模型,直接开启新的会话,不要沿用旧历史的上下文


✅ 方案3:升级 Claude Code 和相关工具至最新版

开发者社区反馈新版 Claude Code 对 DeepSeek 思考模式的兼容性有所改善。建议更新至最新版本:

同时检查 Claude Code 的版本:

claude --version

✅ 方案4:检查 API 网关/代理/中转服务是否完整透传 reasoning_content

如果你的请求经过了代理网关(如 SuCloud、SiliconFlow 等),请向服务提供方确认:

  • 网关是否完整支持 DeepSeek V4 思考模式
  • reasoning_content 字段是否在响应和后续请求中被正确保留和透传

社区也曾报告类似问题——群友反馈用 API 网关中转时经常遇到该错误,改用官方直连后问题消失。建议尽量直接使用 DeepSeek 官方 API:

ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic

✅ 方案5:确认对话历史拼接策略符合 DeepSeek API 规范

DeepSeek 要求每次请求携带完整的对话历史,且包含所有 assistant 消息中的 reasoning_content 字段。如果使用自定义代理或网关,应确保:

  1. 从 API 响应中正确提取 reasoning_content
  2. 在后续请求中将其连同 content 一并塞入 messages[-2](即上一条 assistant 消息)
  3. 不丢失任何字段——任何字段的缺失都可能触发严格校验报错

备选方案:关闭思考模式

如果上述方案均无效,可在 Claude Code 的配置中关闭思考模式,使其按非思考模式运行。

不过需要注意的是:

  • DeepSeek V4 思考模式默认启用
  • 关闭思考模式可能影响 Agent 场景下模型的表现,对于复杂 Agent 场景(如 Claude Code、OpenCode),思考模式的 effort 会自动设置为 max