[BUG]: Problem with DeepSeek V4.1 flash – missing reasoning_content

这个报错通常出现在 AnythingLLM 调用 DeepSeek thinking 模式模型并触发工具调用后,下一轮请求没有把上一轮返回的 reasoning_content 原样传回 API,导致 DeepSeek 直接返回 400。优先排查 DeepSeek 模型别名与 thinking 模式

快速结论:这个报错通常出现在 AnythingLLM 调用 DeepSeek thinking 模式模型并触发工具调用后,下一轮请求没有把上一轮返回的 reasoning_content 原样传回 API,导致 DeepSeek 直接返回 400。优先排查 DeepSeek 模型别名与 thinking 模式请求链路中 reasoning_content 是否被保留并回传。

适用环境:Issue 中确认的环境包括:AnythingLLM Desktop v1.16.1;自托管 Docker / CapRover 部署的 AnythingLLM v1.16.1;DeepSeek Provider;模型为 deepseek-flash;使用 MCP server over Streamable HTTP。部分场景还提到 Windows Desktop 构建。Issue 未提供 Python、CUDA、显卡等环境信息。

最快修复方案:Issue 最终定性为 DeepSeek 升级了 deepseek-flash 别名,导致模型行为发生变化;若你使用的 AnythingLLM 版本仍在旧别名逻辑下把 deepseek-flash 当作特殊模型处理,应升级 AnythingLLM 或改用 DeepSeek 当前有效的模型名称。该 Issue 被关闭时未记录具体代码修复步骤,因此“暂无确认的一步修复方案”。

注意事项:社区中提到的本地补丁仅由提问者描述为“on my machine, its fix helped completely”,没有在 Issue 中提供可复现的官方修复步骤,不建议直接把该补丁当作通用方案。升级或更换模型名称前,请确认你的 AnythingLLM 版本与 DeepSeek 官方当前模型别名一致。

问题场景

用户在 AnythingLLM 中接入 DeepSeek 的 deepseek-flash 模型进行对话。当触发 MCP 工具调用时,第一轮工具调用可以成功,MCP 连接、工具发现和首次交互都正常;但在工具结果返回后,Agent 需要发起下一轮模型请求时失败,提示 thinking 模式中的 reasoning_content 必须传回 API。

该问题同时出现在 AnythingLLM Desktop v1.16.1 和自托管 Docker / CapRover 部署的 AnythingLLM v1.16.1 上,使用 MCP server over Streamable HTTP 时更容易复现。

报错原文

Could not respond to message.
The agent model failed to respond: 400 The `reasoning_content` in the thinking mode must be passed back to the API.

原因分析

最可能的原因是:DeepSeek 在 thinking 模式下要求后续请求把上一轮返回的 reasoning_content 传回 API。AnythingLLM 在处理 DeepSeek 的 Agent / 工具调用链路时,没有正确保留或重新提交该字段,导致工具结果返回后的下一轮请求被 DeepSeek 以 400 拒绝。

Issue 关闭时给出的说明是:DeepSeek 升级了 deepseek-flash 的别名。该别名过去只对应一个子集,现在剩余模型不再是那个例外,因此旧逻辑下把 deepseek-flash 当作特殊模型的判断失效。这可以解释为什么同一个 MCP 工具调用流程中,首次请求能成功,但后续回传请求失败。

环境排查

  • 确认 AnythingLLM 版本:Issue 中确认受影响的版本为 v1.16.1。
  • 确认部署方式:Desktop 应用或自托管 Docker / CapRover 部署。
  • 确认 LLM Provider 与模型:DeepSeek Provider,模型为 deepseek-flash
  • 确认是否使用 MCP 工具调用:Issue 中复现路径依赖 MCP server over Streamable HTTP。
  • 确认 DeepSeek 当前模型别名是否已变化:Issue 关闭说明指出 deepseek-flash 别名已被 DeepSeek 升级。
  • Issue 未提供 Python、CUDA、PyTorch、显卡、依赖版本等信息,无需在此补充。

解决步骤

  1. 先确认你的 AnythingLLM 是否为 v1.16.1 或更早版本。该问题已在 Issue 中确认影响 v1.16.1。
  2. 检查你当前在 AnythingLLM 中配置的 DeepSeek 模型名称是否为 deepseek-flash。Issue 关闭原因指向 DeepSeek 已升级该别名。
  3. 优先尝试将 AnythingLLM 升级到包含 DeepSeek 模型别名适配的版本;如果无法升级,可优先尝试改用 DeepSeek 当前有效的模型名称,并重新测试 Agent + MCP 工具调用链路。
  4. 如果你之前根据提问者提供的本地补丁修改过代码,请记录修改内容,并在升级后确认是否仍需保留;Issue 中没有给出该补丁的完整内容,无法保证其长期兼容。
  5. 重新发起一次会触发 MCP 工具调用的对话,观察第一轮工具调用成功后,第二轮模型请求是否仍返回 400。

验证方法

重新执行之前会触发失败的 MCP 工具调用流程。如果 MCP 连接、工具发现、首次工具调用和工具结果返回后的下一轮模型请求都能正常完成,并且不再出现 The reasoning_content in the thinking mode must be passed back to the API,即可认为问题已解决。若仍报错,请记录当前 AnythingLLM 版本、DeepSeek 模型名称和完整请求日志,继续排查 reasoning_content 是否被正确回传。

参考来源

Mintplex-Labs/anything-llm #6349

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 23982

发表回复

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