OpenClaw 接入 deepseek-v4-pro,开启思考模式(reasoning: true)后,HTTP 400
花了一个小时排查,根因很简单,但平台还没修。
·
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 // ← 改这里
}
重启网关后恢复正常。纯文本问答质量基本不受影响,代价是复杂推理场景少了一层思考、也看不到模型的"内心戏"了。
踩坑不易,分享止损。 🍻
更多推荐




所有评论(0)