DeepSeek V4 思考模式踩坑实录:一个 HTTP 400 如何让整个会话崩掉

花了一个小时排查,根因很简单,但平台还没修。


起因

最近我把 OpenClaw 的模型从旧版 deepseek-chat 切到了最新的 deepseek-v4-pro,顺手开了思考模式(reasoning: true)。一切看起来都很好——回答质量不错,想事情也挺快。

直到它开始调工具。


现象

对话中一旦触发工具调用(读文件、跑命令这些),第一个调用正常返回,然后——整个会话卡死。

不是超时,不是无响应。是底层的 DeepSeek API 直接甩了一个冷冰冰的 HTTP 400:

The reasoning_content in the thinking mode must
be passed back to the API.

翻译成人话就是:“你上一轮思考的内容呢?没还给我,这轮不接了。”


扒文档

顺着 DeepSeek 的官方文档摸过去,规则写得非常清楚:

🟢 没有工具调用 → 思维链(reasoning_content)用后即弃,下一轮不用传

🔴 有工具调用 → 思维链是上下文的一部分,后续所有请求必须原样带回,少一个字段直接 400

也就是说,工具调用的每一轮,messages 里那个 assistant 消息必须完整携带三个字段:

# ✅ 正确
messages.append(response.choices[0].message)
# 等价于:
{
    "role": "assistant",
    "content": "...",
    "reasoning_content": "...",   # 这条不能丢!
    "tool_calls": [...]
}

而 OpenClaw 的问题是:它在内部拼接消息发回 DeepSeek 时,把 reasoning_content 丢了。


影响范围

场景 是否受影响
思考模式 OFF + 工具调用 ✅ 正常
思考模式 ON + 纯聊天 ✅ 正常
思考模式 ON + 工具调用 💀 直接卡死

这也解释了为什么之前没人注意到——如果只用纯问答,永远碰不到;但一旦让 AI 帮你跑命令、读文件,就必然踩坑。


版本确认

版本 状态
2026.4.15(本地) ❌ 存在
2026.4.23(最新) ❌ 存在

临时解决方案

如果你也遇到了,最快止血方式:关掉 DeepSeek 模型的思考模式

openclaw.json 中找到 deepseek-v4-pro 的配置:

{
  "id": "deepseek-v4-pro",
  "reasoning": false   // ← 改这里
}

重启网关后恢复正常。纯文本问答质量基本不受影响,代价是复杂推理场景少了一层思考、也看不到模型的"内心戏"了。


踩坑不易,分享止损。 🍻

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐