issue: DeepSeek thinking mode fails with “reasoning_content must be passed back” on llama.cpp provider connections when skills, knowledge or

该报错通常出现在通过 Open WebUI 连接 DeepSeek(如 deepseek-flash)并开启 thinking 模式的场景:当对话上下文中带有 skills、知识库或记忆等内置工具结果时,Open WebUI 会把历史思考内容遗漏在请求之外,而 DeepSeek 要求以 reason

快速结论:该报错通常出现在通过 Open WebUI 连接 DeepSeek(如 deepseek-flash)并开启 thinking 模式的场景:当对话上下文中带有 skills、知识库或记忆等内置工具结果时,Open WebUI 会把历史思考内容遗漏在请求之外,而 DeepSeek 要求以 reasoning_content 字段回传,因此拒绝下一条消息。优先排查连接上的 Provider 设置是否仍为 Default,以及对话是否启用了内置工具上下文。

适用环境:Issue 中已确认:Open WebUI v0.13.2(Docker 安装),Ubuntu 26.04,OpenAI 兼容连接(DeepSeek 原生 deepseek-flash),Provider 保持 Default;对照版本为 0.12.5。Ollama 版本未提供。

最快修复方案:进入 Admin Panel > Settings > Connections,编辑 DeepSeek 连接,打开 Advanced,把 Provider 设置为 llama.cpp。此设置下 Open WebUI 会把已存储的思考内容作为 reasoning_content 回传,符合 DeepSeek 的要求;thinking 可保持开启。

注意事项:该方案来自 Issue 维护者说明,属于 Issue 内明确的处理建议,但评论中未附修复后的验证日志。把 Reasoning Effort 设为 none 也能临时规避,但那是关闭思考,不是修复回传逻辑。另据评论者分析,行为变化实际发生在 0.13.1(“Context as hidden tool results”),而非 0.13.2,因此仅回退到 0.13.2 之前的 0.13.x 版本不一定有效。

问题场景

用户在 Open WebUI v0.13.2 中通过 OpenAI 兼容连接与原生 deepseek-flash 对话,Provider 设置为 Default,Reasoning Effort 保持默认(用户与管理员的 reasoning_effort 均为默认,纯模型、无 workspace 配置,也未主动调用工具)。聊天过程中触发 thinking 模式报错。用户将 Model controls -> Advanced Params 中的 Reasoning Effort 改为 none 后恢复正常,因此判断为回归问题。后续讨论指出,升级路径是 0.12.5 → 0.13.2,行为变化来自 0.13.1 将 skills 清单、记忆召回、附加知识列表改为通过 hidden_tool_result() 生成合成的 function_call / function_call_output 注入首轮请求。

报错原文

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

原因分析

该报错由 DeepSeek 服务端返回,Open WebUI 只是透传。DeepSeek 要求:当请求中包含工具(tools)时,必须把之前的思考内容通过 reasoning_content 字段回传。Open WebUI 默认会带上内置工具,所以即使实际没有调用工具也会命中这一要求。而 reasoning_content 是 DeepSeek 扩展字段,不属于 OpenAI Chat Completions 格式,因此 Default Provider 的连接不会把思考内容写入历史,DeepSeek 便拒绝下一条消息。据评论分析,0.13.1 起只要模型挂有 skill 或知识库(model_builtin_tools.get('skills', True) 默认 True),每次对话首轮就会携带这类合成工具流量,这也是用户感觉“以前几个月都正常”的可能原因。

环境排查

  • 确认 Open WebUI 实际版本:是否为 v0.13.2,以及是否从 0.12.5 或 0.13.1 升级而来。
  • 确认 DeepSeek 连接的 Provider 设置:是否为 Default,是否改为 llama.cpp。
  • 确认该模型是否挂有 skills、知识库或记忆上下文。
  • 确认 Reasoning Effort 的当前值(用户级、管理员级、模型级),以及是否为 none。
  • 确认是否为 Docker 部署以及使用的镜像 tag。

解决步骤

  1. 可优先尝试:进入 Admin Panel > Settings > Connections,找到 DeepSeek 连接并编辑。
  2. 打开 Advanced 设置,将 Provider 从 Default 改为 llama.cpp。
  3. 保存后保持 thinking 模式与 Reasoning Effort 原有设置,直接发起一轮新的对话。
  4. 如仍需临时可用,可在对话的 Model controls -> Advanced Params 中把 Reasoning Effort 设为 none,但这是关闭思考而非修复回传。
  5. 如问题持续,对照 0.12.5 与当前版本在 skills、知识库、记忆上下文下的请求差异,并附上升级路径与日志提交到 Issue。

验证方法

在 Provider 改为 llama.cpp 后,继续在带 skills 或知识库上下文的会话中与 deepseek-flash 多轮对话,确认不再出现 reasoning_content 相关报错,且 thinking 内容正常保留与回传。若仍报错,回退检查 Provider 是否保存成功,以及请求中是否仍缺少 reasoning_content 字段。

参考来源

open-webui/open-webui #33940

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 33633

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注