基于DIFY的DeepResearch实践

深度调研(Deep Research)是代理式工作流(agentic workflow)的典型应用场景,在这种场景中,用户的意图可以通过一系列步骤逐步被理解并形式化。主要建设的目的是充分利用大语言模型及其相关工具的能力,完成针对具体问题的深入研究。
这个概念首先由OpenAI提出,目前我个人有应用的包括qwen agent的RAG模块、modelscope 的DockResearch模块,以及本文中基于Dify构建DeepResearch的ChatFlow。简单来说,在Dify中点击“探索”,检索“research”,有两个系统自带的参考模板:
相比之下,第2个模板时间更新一点,所以我们选择“research agent process flow”,并将其加载到工作区。

一、修改配置,跑通流程

一直以来,我解决工程问题的思路都是“能够实际运行的例子是最好的参考资料”。所以这里我们首先修改现有模板,将例子拉通。

1、更改为DeepSeek作为基座模型

考虑到内部移植的需要,我一般都选择开源模型作为基座。目前DeepSeek和Qwen系列都很不错,参考下图将几个部分修改(这里选择DeepSeek chat作为基座模型):

2、配置Agent策略

这里行动(ACT)部分添加了策略
如果不单独安装,会有报错。解决方法是在“插件”中安装DifyAgent模块,如下图所示。

3、安装EXA插件(EXA的检索能力后面具体说明)

目前其API可以免费试用(10元限度),那么融入DIFY查看效果(下图为API key位置):
 
在插件这块安装EXA

4、解决细节问题并拉通流程

完成配置查看效果,这里检索的是关于“图像处理中的frangi算法”相关问题,是一个经典的增强算法,目前在Loop环节报错:

1、阶段一:研究准备与基础设置

这个阶段的目标是明确研究主题,补充背景信息,并深挖用户的真实意图,为后续的自动化研究打下坚实的基础。

1.1 开始节点(start)

START 节点要求用户输入 research_topic(研究主题)和 max_loop(最大循环次数),为整个流程设定目标和边界。
注意这里的sys.files也是选配参数,证明对于文件的检索也是可行的。

1.2 EXA检索

利用 Exa 搜索引擎对主题进行初步检索,快速获取与主题相关的网页和内容,作为后续分析的原始素材。
这里EXA的内容在后面具体研究,我们查看一下目前检索获得的结果:

1.3 意图分析(INTENT ANALYSIS)

调用大模型对用户输入进行多层次意图挖掘,包括表层意图、实际意图和潜在意图,确保后续研究方向精准。
查看上一次结果(这里确实是把算法的主要应用场景说清楚了)

1.4输出初步检索结果

这里具体看我框选的地方,采用串联的方法,分别使用GET CONTEXT获得EXA ANSWER和使用INTENT ANALYSIS 获得INTENT ANALYSIS的结果。

2、阶段二:循环深入研究

通过多轮“反思-检索-分析-聚合”,不断填补知识空白,模拟人类研究员的查漏补缺过程。
设置了以下循环存储变量:
findings:用于储存每一轮迭代新发现的知识;
executed_querys:用于储存已经查询过的 query,避免重复查询;
current_loop:用于记录当前循环的次数;
knowledge_gaps:记录当前研究中识别出的知识缺口。
visited_urls:用于记录已访问的链接,做来源的引用标注;
image_urls:可以作为研究过程中图文混排的链接来源;
每轮循环包含以下节点:

2.1 推理节点(reasoning)

由大模型根据当前知识缺口(knowledge_gap)、已知信息(findings)、已执行查询(executed_queries)等,自动生成下一步检索问题(search_query)。
注意分析这里的提示词。

2.2 中间输出(Answer)

输出本轮 reasoning、knowledge_gaps 和下一步 search_query,便于用户追踪 AI 的推理和行动路径。

2.3 行动(Act)

智能体根据 search_query 自动调用 Exa 搜索、内容抓取、思考(think)等工具,获取新知识。
工具调用采用 FunctionCalling 策略,支持多种检索和内容处理方式。

2.4 链接提取(url extract)

自动从抓取内容中提取有效链接,便于后续追溯和引用。

2.5 变量管理(Variable Assigner)

管理和更新循环变量(executed_queries、findings、visitedURLs、current_loop),保证信息积累和可追溯。

3、阶段三:研究成果整合

目标:对所有研究成果进行结构化整合,生成最终调研报告,便于用户查看和应用

3.1 EXA SEARCH

3.2 大模型汇总(finalize_summary)

综合所有 findings、executed_queries、visitedURLs 等,生成结构化、详细的调研报告。
报告内容包括:重要洞察、结论、剩余不确定性,并引用所有信息来源。
支持插入图片、引用等多种内容,提升报告的可读性和权威性。

3.3 输出(Answer )

展示最终调研报告

三、重点研究

1、EXA 搜索

是一款专门为大模型提供检索的工具(这决定了它必须在线运行)。登录其网站(https://exa.ai/),开展测试:
 
这里我检索了一个非常经典(非常美丽)的opencv 算法问题:Finding distance between two curves。这个问题在原来的answerOpenCV网站上是有很好的解答的(http://answers.opencv.org/question/129819/finding-distance-between-two-curves/)
那么从检索获得的结果来看,绝大多数都是stackoverflow或answeropencv的数据,虽然没有直接找到我所需要的,但是也都相关的——
 
正确配置的话,应该是获得了很多相关的信息,关键是这里的回答的质量是不错的(当然也只局限于我比较熟悉的编程领域)
这是另一个问题:
 

2、使用魔搭提供免费LLM服务

具体操作方法可以问大模型或查看之前文章,这里具体看“提示词”
暂时无法在飞书文档外展示此内容
设计者的主要思路是分析出“真实意图”,那么对于编程方面的提问可能比较简单,但是应该还有其他复杂的问题。
这里,DeepSeek分析我们是什么意图了,应该还是比较中性的。
暂时无法在飞书文档外展示此内容

3、在线反馈结果

通过 Answer 节点的流式输出机制,避免用户长时间等待从而对问题回答失去兴趣。
 
 

四、初步小结

1、Dify提供了平台(包括这里官方的例子和研究),方便我们快速搭建一个大概能够解决问题的流程

特别是在当前大语言模型技术发展迅速的今天,这里提供的平台对于快速迭代试错,是非常有帮助的。同样的道理,在局域网内部搭建能够稳定更新的映射环境,也是非常有价值的。因为毕竟在这个领域,目前还是空白;

2、平台研究的结果仍然应该是集成

解决具体的问题还是需要一个“小而精”的算法,特别是在资源比较有限的局域网环境。所以经过这里实验研究的结果,需要能够抽象出来。可能是需要自己重写,或者采用其它耦合度更高的框架进行重构;

3、在线运行也有市场

目前dify提供了很多在线运行的机制(比如结合github action),特别是它本身的chatflow、workflow是能够提供API输出的。那么自己构建一个不断出发的API调用,就可以实现在线运行,从而开展相关的价值转换工作。

4、提出疑问

其实这里如果能够获得比较不错的结果,很大程度的原因是因为EXA检索发挥了重要的作用。我们可以认为在目前市场驱使下,通过经济投票选出了像EXA等优秀的检索工具——这恰恰是局域网环境最为缺乏的,那么这里的建设应该通过什么方式来进行推动?

五、参考资料

本文参考了以下资料,在次非常感谢:
1、《Dify Deep Research工作流详解》;
2、
3、
 

posted on 2026-01-16 06:50  jsxyhelu  阅读(0)  评论(0)    收藏  举报

导航