📂 文章分类:How to
本文介绍如何在 Dify 中构建类 GPT-Researcher 的研究工作流。通过并行处理与高级迭代功能,实现子问题拆解、多源信息抓取与自动汇总,大幅提升研究效率。
利用并行与高级迭代功能增强 GPT-Researcher 工作流
大家好,我是 Dify 产品团队的 Evan。今天我将为大家解析 GPT-Researcher 的运行原理,并演示如何利用高级迭代功能优化你的工作流。
简介
GPT-Researcher 是一款热门的研究智能体。它能在每次任务中自动抓取、筛选并聚合来自 20 多个网络资源的信息,从而自动化繁琐的研究工作。

传统人工研究往往需要数周才能找到合适的资料并得出客观结论。GPT-Researcher 采用并行智能体替代同步操作。这显著提升了任务速度与可靠性。其核心机制包含“规划器(planner)”与“执行器(execution)”。规划器负责生成研究问题。执行器负责检索相关信息。最后由规划器筛选并聚合数据,生成最终报告。
借助 Dify Workflow,我们可以搭建类似的研究框架。利用“parallel mode”可大幅加速任务执行。
在线演示
工作原理
由于研究任务的生成过程并非对话式交互,我们将直接使用 Workflow 应用类型。
步骤 1:定义起始表单字段
- Title:指定研究主题。
- Language:选择研究报告的输出语言。

步骤 2:使用 LLM 生成子查询以拆解问题
我们需要让子查询满足以下特定条件。这能控制 LLM 的输出格式,便于后续通过代码节点进行处理。如果你不擅长编写提示词,可以直接使用系统推理模型来生成。
- 生成合适的搜索引擎查询语句,用于拆解用户问题。
- 确保输出内容不包含任何 XML 标签。
- 输出必须干净利落。严格遵循
<example>样式,不附加任何额外解释。 - 至少拆解为 4 到 6 个子问题。
- 多个子问题之间仅用逗号分隔。


你可以在 Settings -> Model Providers 中配置系统推理模型。
步骤 3:使用代码节点分割输入字符串
GPT-Researcher 的核心思路是运行“planner”与“execution”。planner 会将复杂问题拆解为多个独立且易于处理的小问题。这使得后续的子问题研究能够并发执行。


步骤 4:利用高级迭代功能加速“execution”
这一步至关重要。子查询虽然适合搜索引擎,但直接用作报告小标题并不理想。我们需要借助 LLM 提取共性主题,从而生成研究的二级标题。在下方的迭代模块中,我们调用 Tavily API 执行搜索引擎查询。配置好返回链接数量后,再使用 LLM 对结果进行总结与分析,并将其作为上下文。

在迭代面板中,Parallel Mode 与 Error Response Method 属于高级功能。开启并行模式后,迭代任务将并发执行。这能缩短运行时间(计算公式为:总串行时间除以最大并行度)。但需注意,由于任务是无序执行的,若使用强依赖顺序的工具,可能会引发意外结果。
开发者可通过调整最大并行度,在迭代模块内控制 API 请求频率。这能有效避免触发限流。

关于 Error Response Method:单个迭代项的异常不应影响其他项。我们需要在迭代项级别隔离异常,并自定义处理逻辑。这样即使部分子任务失败,整个迭代流程仍能顺利完成。更多细节请参考 Iteration Node 文档。
步骤 5:提取子问题
我们使用参数提取器,将多个子查询合并为预设数量的二级标题。这样,我们可以预先编排四个并行分支来分别接收这些参数。每个 LLM 都会将迭代输出作为上下文,用于回答对应的子问题。

最后,我们使用模板节点生成格式规范的研究报告。

研究报告输出
总结
以下是 Dify 工作流搭建类 GPT-Researcher 研究框架的核心逻辑:
- 创建初始表单,收集研究主题与输出语言偏好。
- 通过提示词引导 LLM,将主问题拆解为 4 到 6 个独立、可搜索的子查询。
- 针对每个子查询,利用并行处理同时执行以下操作:
- 提取共性主题,生成研究二级标题。
- 调用 Tavily API 抓取相关搜索结果。
- 使用 LLM 分析并总结搜索结果。
- 将各并行研究流的数据汇总,生成格式统一的最终结构化报告。
核心特性与技术考量
并行处理优势
- 大幅缩短研究时间(总串行时间除以最大并行度)。
- 支持多任务并发处理。
- 可通过并行度设置灵活控制 API 请求频率。
错误处理
- 隔离迭代项,防止故障级联扩散。
- 允许在个别子任务失败的情况下,仍完成整体并行任务。
- 保障整个研究流程的稳定性。
以上就是本次分享的全部内容。如需深入了解高级迭代功能,请查阅我们的官方文档。该演示案例也已上线 Explore 页面。欢迎前往体验!
参考资料
- How we built GPT Researcher
- 本页内容