How to

【How to】Dify 中的深度研究工作流程:分步指南

Dify 中的深度研究工作流:分步指南

摘要:
本文详细介绍如何在 Dify 中构建“深度研究”(Deep Research)工作流。通过结合循环变量、结构化输出和 Agent 节点,实现从意图识别到迭代探索再到综合报告的自动化流程。该方案模拟专家思维,有效解决复杂问题的信息碎片化难题,提升调研效率与报告质量。


标准搜索查询往往难以应对复杂问题。无论是学术论文、市场分析还是代码调试,找到完整的答案通常意味着需要拼接数十次单独的搜索结果。深度研究(Deep Research) 应运而生——它直面这一日常挑战。Google Gemini、ChatGPT 和 DeepSeek-R1 等主流 AI 平台现已提供这项强大的功能。

深度研究的亮点在于其智能反馈循环:它能识别知识盲区,锁定具体问题,进行系统性探索,并最终交付综合报告。与传统搜索将信息碎片化不同,深度研究提供的答案既广泛又深入。

本指南将展示如何利用 Dify 中的三个关键组件构建深度研究工作流:循环变量(Loop Variables)结构化输出(Structured Outputs)Agent 节点。你将创建一个能够独立进行研究并交付有意义见解的工作流。

工作流概览

Dify 中的这个深度研究遵循三个阶段:

  1. 意图识别 (Intent Identification)
    工作流捕获你的研究主题,收集初始上下文,分析目标以确立清晰的方向。
  2. 迭代探索 (Iterative Exploration)
    工作流利用循环变量评估现有知识、发现盲区、运行针对性搜索,并逐步构建研究成果。
  3. 综合总结 (Synthesis)
    所有收集的信息被整合成一份带有适当引用的结构化报告。

它模拟了专家研究人员的思维过程:“我已经知道了什么?还缺什么?下一步该看哪里?”

第一阶段:研究基础

Start Node(开始节点)

首先,配置 Start 节点以包含必要的输入参数:

  • research topic研究主题。需要探索的核心问题。
  • max loop最大循环次数。本次研究的迭代预算限制。

Dify Start Node Configuration

背景知识获取 (Background Knowledge Acquisition)

我们建议使用 Exa Answer 工具来收集初步信息,确保模型在深入之前理解相关术语。

Exa Answer Tool

意图分析 (Intent Analysis)

你需要使用一个 LLM(大语言模型)节点来挖掘用户的真实意图,从而区分表面问题与进一步的信息需求。

LLM Intent Analysis

第二阶段:动态研究循环

Loop Node(循环节点):研究引擎

Loop 节点驱动整个研究工作。在 Dify 中,它跨迭代传递信息,使每个周期都建立在前一次发现的基础上。

我们的深度研究工作流跟踪六个关键变量:

  • findings新发现的知识点
  • executed_querys已执行的搜索查询(防止重复)。
  • current_loop当前循环计数器
  • visited_urls来源追踪,用于正确引用。
  • image_urls视觉内容参考链接
  • knowledge_gaps识别出的信息缺口/需求

Loop Variables Overview

循环变量与标准变量的根本区别:

  • 普通引用 (Normal references) 遵循线性路径:节点 1 → 节点 2 → 节点 3。
  • 带前次迭代引用的循环 (Loop with Previous Iteration Reference) 创建知识网络:节点可以访问当前和之前迭代的输出结果。

这种设计能够积累知识,避免重复劳动,并使每次循环的焦点更加精准。

Variable Logic Comparison

Reasoning Node(推理节点):提出更好的问题

Reasoning 节点配合结构化输出格式使用,其 JSON 结构如下:

{
  "reasoning": "所选行动路径的详细理由...",
  "search_query": "针对知识缺口提出的具体后续问题",
  "knowledge_gaps": "回答原始问题仍需要的信息"
}

通过启用 LLM 节点中的 Dify 结构化输出编辑器,你将获得一致的 JSON 格式。下游节点可以可靠地处理这些数据,从而清晰地提取推理路径、搜索目标和知识缺口。

Structured Output Editor
JSON Structure Example 1
JSON Structure Example 2

Agent Node(智能体节点):执行研究

好的问题只是开始。有效的研究需要果断的行动,而这正是 Agent 节点的强项。

这些节点充当自主研究人员,为每个上下文选择最合适的工具。我们的工作流赋予 Agents以下能力:

发现工具 (Discovery Tools)

  • exa_search:进行网页搜索并收集结果。
  • exa_content:从特定来源获取完整内容。

分析工具 (Analytical Tools)

  • think:作为系统的反思引擎,灵感来源于 Claude 的 Think Tool。它使 Agent 能够评估发现、识别模式并确定下一步行动。这类似于研究人员暂停下来整理笔记并规划方法的过程。

我们可以通过仅向 Agents 提供它们所需的信息来优化性能:只提供来自上一个 LLM 节点的 search_query(搜索查询),而不是整个上下文。这种聚焦的方法提高了工具选择的准确性。

Agent Configuration

URL 提取 (URL Extraction)

工作流会自动从 Agent 响应中识别 URLs 和视觉引用,从而正确追踪所有信息来源。

URL Extraction

在每次迭代中,Agent 通过收集信息、处理内容和整合发现来完成完整的研究循环。

变量赋值 (Variable Assignment)

每个周期结束后,Variable Assigner(变量分配器)节点会更新研究状态。这确保了每次迭代都建立在前一次工作的基础上,而不是重复劳动。

Variable Assigner

第三阶段:研究综合总结 (Research Synthesis)

当多个探索循环完成后,Final Summary(最终摘要)节点将收集所有累积的变量——发现、来源和支持数据——以生成一份全面的报告。

我们设置此节点以保持适当的 Markdown 引用格式并编译完整的参考文献列表。工作流还在关键位置配置了 Answer 节点,以便在整个研究过程中提供流式更新。这些更新逐步构建最终报告,提供具有有效引用的深入分析,结合了分析的深度与学术的可信度。

Final Summary Node

结论

本深度研究指南展示了 Dify 智能体工作流所能实现的能力。我们将专家的研究方法数字化,并通过自动化加速了这一过程。

研究的未来不仅仅在于拥有更多的数据,更在于以更聪明的方式探索这些数据。利用这些模式,立即构建你的研究引擎吧。

引用资源 (Reference)

  • https://github.com/dzhng/deep-research
  • https://github.com/jina-ai/node-DeepResearch
  • https://github.com/langchain-ai/local-deep-researcher
  • https://github.com/nickscamara/open-deep-research
文章来源: https://dify.ai/blog/deep-research-workflow-in-dify-a-step-by-step-guide
← 返回文章列表