微信扫码
添加专属顾问
我要投稿
探索Dify开源工作流,解锁本地与Web混合搜索新技能。 核心内容: 1. Dify内置DeepResearch工作流的开源实现与本地信源导入问题 2. 工作流图解析的挑战与Mermaid代码的应用 3. 大模型解析工作流配置文件的尝试与效果展示
在之前的文章中,我介绍了Dify内置DeepResearch工作流,深入剖析了它的构成并体验了它的运行效果。发现不足还是挺多的,比如信源配置单一,只有Tavily一种信源输入,最头痛的是不能检索和使用本地文献进行研究。今天,带大家看看另一个开源实现(Open-Deep-Research-workflow-on-Dify),它正好解决了本地信源导入问题。
项目链接:https://github.com/AdamPlatin123
这个工作流是对DeepResearch进行了复现,但是没有介绍参考了哪个项目。从作者github首页看到follow了一个DeepResearch开源项目——open-deep-research,是参照这个了吗?
不妨打开这个项目看下:
# Deep Researcher On Dify 工作流图```mermaidgraph TD n1["开始 start"] n2["sub主题1分析 llm"] n3["问题4 answer"] n4["条件分支 if-else"] n5["问题2 answer"] n6["问题分解 llm"] n7["变量赋值 assigner"] n8["问题参数提取 parameter-extractor"] n9["第一次回复&问题1 answer"] n10["上下文变量赋值 assigner"] n11["问题变量赋值 assigner"] n12["问题3 answer"] n13["最终回复 answer"] n14["上下文变量赋值 assigner"] n15["上下文变量赋值 assigner"] n16["上下文变量赋值 assigner"] n17["输出:正在生成最终回答 answer"] n18["sub主题提取 llm"] n19["sub主题提取 parameter-extractor"] n20["回答优化 llm"] n21["回答优化 llm"] n22["回答优化 llm"] n23["回答优化 llm"] n24["sub主题2分析 llm"] n25["sub主题3分析 llm"] n26["sub主题4分析 llm"] n27["总结文档 template-transform"] n28["变量赋值 assigner"] n29["主题提取 llm"] n30["回答记录1 assigner"] n31["回答记录2 assigner"] n32["回答记录3 assigner"] n33["回答记录4 assigner"] n34["输出:研究主题 answer"] n35["输出:构建研究角度 answer"] n36["输出:研究角度 answer"] n37["迭代搜索1 iteration"] n38["sub关键词提取1 parameter-extractor"] n39["sub关键词提取2 parameter-extractor"] n40["sub关键词提取3 parameter-extractor"] n41["sub关键词提取4 parameter-extractor"] n42["迭代搜索2 iteration"] n43["迭代搜索3 iteration"] n44["迭代搜索4 iteration"] n45["起始段 llm"] n46["结尾段 llm"] n47["条件分支 2 if-else"] n48["条件分支 3 if-else"] n49["直接回复 10 answer"] n4 -->|sys.dialogue_count=1| n5 n4 -->|sys.dialogue_count=0| n7 n7 --> n6 n6 --> n8 n8 --> n9 n4 -->|sys.dialogue_count=2| n12 n4 -->|sys.dialogue_count=3| n3 n18 --> n19 n20 --> n14 n23 --> n16 n22 --> n10 n21 --> n15 n29 --> n28 n4 -->|sys.dialogue_count=4| n17 n4 -->|sys.dialogue_count=4| n29 n5 --> n30 n12 --> n31 n3 --> n32 n17 --> n33 n28 --> n34 n19 --> n36 n1 --> n4 n19 --> n38 n8 --> n11 n4 -->|sys.dialogue_count=4| n21 n4 -->|sys.dialogue_count=4| n20 n4 -->|sys.dialogue_count=4| n23 n2 --> n24 n26 --> n46 n24 --> n25 n46 --> n27 n37 --> n42 n42 --> n43 n38 --> n39 n40 --> n41 n39 --> n37 n41 --> n37 n19 --> n40 n43 --> n44 n25 --> n26 n27 --> n47 n47 -->|17391136443240.te...| n13 n44 --> n45 n45 --> n2 n10 --> n48 n48 -->|conversation.quer...| n35 n35 --> n18 n47 -->|其他情况| n49 n16 --> n22```
第一阶段【问题初始化】
通过对话轮次判断(sys.dialogue_count),首次进入时由LLM分解用户问题,提取关键参数并生成首个回复。
通过sys.dialogue_count=0触发:变量赋值(n7)→ 问题分解LLM(n6)→ 参数提取(n8)→ 生成首问(n9)
第二阶段【渐进式信息收集】
分三轮对话(dialogue_count=1-3)依次处理预设问题,通过assigner节点记录每轮回答,构建研究基础数据。
分轮次处理:dialogue_count=1→问题2(n5)dialogue_count=2→问题3(n12)dialogue_count=3→问题4(n3)通过assigner节点(n30-n33)逐步记录回答
第三阶段【并行化内容精炼】
第4轮触发并行处理:Gemini模型提取核心主题,4个优化LLM同步精炼内容,输出研究方向和优化中间结果。
dialogue_count=4触发:主题提取LLM(n29)→ 输出研究主题(n34)4个优化LLM并行运作(n20-n23)→ 变量赋值节点(n10,n14-n16)存储中间结果
第四阶段【循环式知识拓展】
通过子主题分析LLM拆解4个维度,混合检索引擎(本地知识库+网络迭代搜索)获取细分领域数据
起始段LLM(n45)启动sub主题分析链(n2→n24→n25→n26)每个sub主题触发3级迭代搜索(n37→n42→n43→n44网络搜索)结尾段LLM(n46)衔接文档总结(n27)
第五阶段【条件化输出】
整合所有分析结果,由起始段/结尾段LLM生成首尾内容,经template-transform模板引擎格式化,最终输出万字级Markdown研究报告。
模板引擎(n27)根据搜索有效性分支:✅ 有效结果→生成最终报告(n13)❌ 无效结果→触发直接回复(n49)
后面我会继续深入探索Dify DeepResearch,包括对它的补充、完善、优化,如扩充信源(本地文献、开源Firecrawl、百度和bing等)、工作流优化,以及Dify Agent 相关功能,欢迎持续关注。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-01
阿里巴巴开源:AI框架,快速落地大模型应用
2025-04-01
开源Manus替代:智谱AutoGLM沉思来了
2025-04-01
Heygem - Heygen的开源平替产品
2025-04-01
挖到一个Deep Research和Manus的替代品,是新发布的开源项目,香
2025-04-01
字节跳动MegaTTS 3!0.45B超轻量语音克隆模型,中英文混合输出+口音控制黑科技
2025-04-01
开源 Remote MCP Server 一站式托管来啦!
2025-04-01
MCP的配置文件解析。不过讲真,配置文件仍然是MCP最失败的设计之一!
2025-04-01
47.3K star!这款开源RAG引擎真香!文档理解+精准检索+可视化干预,一站式搞定!
2025-01-01
2024-07-25
2025-01-21
2024-05-06
2024-09-20
2024-07-20
2024-06-12
2024-07-11
2024-08-13
2024-12-26
2025-04-01
2025-03-31
2025-03-25
2025-03-25
2025-03-24
2025-03-22
2025-03-19
2025-03-17