Description
When using deepseek/deepseek-v4-flash in OpenClaw's embedded subagent (via WeChat), any message triggers a 400 error:
400 The reasoning_content in the thinking mode must be passed back to the API.
Reproduction
- Set model to deepseek/deepseek-v4-flash
- Send any message from WeChat → triggers embedded subagent call
- Error appears immediately
Root Cause
DeepSeek V4 Flash has thinking mode enabled by default. When the model calls a tool, all subsequent requests must include the reasoning_content field. OpenClaw's embedded subagent doesn't implement reasoning_content round-trip, causing the API to reject the request.
DeepSeek Official Docs
https://api-docs.deepseek.com/zh-cn/guides/thinking_mode
The correct way to disable thinking mode is:python
extra_body={"thinking": {"type": "disabled"}}
What I've tried
- agents.defaults.thinkingDefault = "off" — doesn't translate to extra_body.thinking.type
- agents.defaults.models["deepseek/deepseek-v4-flash"].params.thinking = "off" — same, no effect
- Both are accepted by config schema, hot reload succeeds, but the 400 error persists
Suggested Fix
When thinkingLevel === "off" for a DeepSeek model, inject {"thinking": {"type: "disabled"}} into extra_body of the API request.
Workaround
Use deepseek-chat instead (catalog has reasoning: false), but this is a less powerful model.
Environment
- OpenClaw: 2026.4.23
- Model: deepseek/deepseek-v4-flash
- Channel: WeChat (openclaw-weixin)