type
Post
status
Published
date
Sep 7, 2025
slug
summary
tags
category
icon
password
当我在dify中分别使用不同的模型:deepseek-reasoner与qwen3-max接入同样的12306-mcp与flight-mcp时,分别发现了以下问题: 1.使用deepseek-reasoner模型时,调用mcp工具一直报400并提示reason_content字段缺失 2.使用qwen3-max时,调用mcp一直虚构mcp工具名
由此发现了两个模型机制上的不同。
注意:在使用模搭社区的mcp时,将所给的配置字段“type”务必在dify中改为
transport📝 主要问题
deepseek-reasoner
使用deepseek-reasoner模型时,调用mcp工具一直报400并提示reason_content字段缺失
🧐 错误原因解析
根据错误信息,问题出在API请求中“助理消息”的第二个位置缺少了必需的
reasoning_content 字段。这个错误的典型场景是:
当在Dify中配置的 DeepSeek模型启用了“思维模式”,并且该模型尝试调用一个工具(比如你的12306 MCP)时,API要求模型在返回的工具调用消息中必须包含
reasoning_content 来展示其推理过程。如果请求中没有包含这个字段,就会返回这个400错误。🔍 问题根源:模型机制与Dify的兼容性
Dify在构建API请求时,很可能遵循了标准OpenAI格式,默认没有为模型在工具调用过程中返回的“助手消息”包含
reasoning_content 字段。而启用了思考模式的DeepSeek模型,API会强制要求并期待在特定的消息位置看到这个字段,否则就会报错。简单来说,这是模型特性(必须输出推理内容)与平台默认的请求格式(未包含该字段)之间的不匹配。
解决办法:可以使用deepseek-chat或者切换别的模型
qwen3-max
使用qwen3-max时,调用mcp一直虚构mcp工具名
Qwen3 直接尝试调用用户请求中提到的工具,它假设这个工具存在于MCP服务中,当工具不存在时,MCP服务器直接返回错误。这是因为qwen3-max采用了更激进的策略。
在Dify中的优化方法:
- 提示词工程优化:
- 在系统提示词中明确要求"先列出可用工具"
- 添加工具调用策略的指导
- 工作流设计:
- 可以设计一个预检查步骤
- 或者使用Dify的条件分支来处理工具不存在的情况
- Author:guderain
- URL:https://wangguanxi.space/article/2d12b727-a3a3-80fb-8adc-e1045874fb3f
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!



.webp?table=collection&id=92be88af-5f71-4631-9d3e-ee3bd53dcced&t=92be88af-5f71-4631-9d3e-ee3bd53dcced&width=1080&cache=v2)