FlowSearch: 上海人工智能实验室开源的 Multi-Agent Deep Research Agent方案
本文来自上海人工智能实验室,论文:FlowSearch: Advancing deep research with dynamic structured knowledge flow
关键词:Deep Research Agent、知识图谱、有向无环图
一、研究背景【大模型教程】
本文的研究背景和之前读过的FlashResearch: 基于Tree结构任务调度+自适应planning+并行执行的Deep Research Agent框架 很像,我就直接复制过来了:
目前在各种agent应用中,deep research agent属于热度比较高的一种。商业闭源产品就包括OpenAI Deep Research、Gemini Deep Research、Perplexity Deep Research,开源社区也有诸如GPT-Researcher、LangChain Open Deep Research等众多项目。
简单来说,deep research agent目标是像专业人员那样完成复杂研究任务: 针对问题进行思考→阅读大量外部资料(可以来自互联网或本地数据库) → 分析(冲突)观点 → 综合多方证据 → 输出一份高质量的报告(report)。
在实际运用这类产品时,往往存在两个问题:
-
* 顺序执行(Sequential Bottleneck)带来的时间成本瓶颈
多数agent系统以“串行”方式执行,一个子任务完成后再开始下一个,导致推理轨迹(reasoning trajectory)太长、延迟高(几十分钟起)、实时性方面用户体验较差。我自己使用的比较频繁,虽然多数时候心里已经对报告生成的时间有较长预期了,但是提交query后,为了不浪费时间,往往就做别的事情去了,等到报告生成再回头看内容,最大的问题就出现了:思维的连贯性早已被打断。可能刚才写query的时候还有其他的想法,经过这么几分钟做别的事情,早已忘了。。。
-
* 静态计划(Static Planning)的不灵活性
多数agent系统在一开始就针对用户输入的query决定了任务分解结构(包括搜索depth和搜索breadth), 但是后期执行的时候可能面临各种突发情况,比如某个query检索结果不理想,多个query返回答案冲突,这个时候如果还是根据最开始生成的plan执行后续动作,显然不够合理。
FlashResearch将deep research 任务的执行由序列的线性结构改为树结构, 本文是改为有向无环图结构,二者非常类似。当然用本文的术语描述是,基于结构化的知识流(knowledge flow)来组织query的执行过程。
二、FlowSearch架构
既然是图(graph),那么就先看下节点(node)和边(edge)是什么物理含义,在 FlowSearch 的语境下,图中每一个节点和每一条边,都对应着一个研究行为或知识流动关系。
节点可以理解正在执行的一个子任务。论文中形式化描述为:
𝑣ᵢ = (tᵢ, dᵢ, sᵢ, cᵢ)
其中t是子任务类型,包括search / solve / answer, search是信息检索类任务,solve是推理或分析任务,answer是得到最终答案/生成报告(report)的任务。d是子任务描述,比如对应search query,s是子任务的执行状态,c是子任务执行完成后的结果,比如是search之后的 feedback。
边则定义了节点之间的依赖关系,简单说就是对应父任务和子任务,比如父任务是搜索上半年某品牌汽车所有型号的销售量,子任务是搜索具体型号的的销售量。
这部分结合FlashResearch一起理解就容易多了,就是把顺序的reasoning trajectory改为树/DAG执行。
FlowSearch的框架围绕图的节点扩展、节点执行、节点删减展开,典型的动态plan结构,这部分的论文描述稍微有些抽象,好在是有开源代码的,感兴趣的朋友可以去阅读下源码。
三、实验
底座llm的影响真不小。
如果你也对用Deep Research Agent感兴趣, 欢迎点赞+收藏+关注。