什么是DeerFlow
这是一款字节跳动开发的开源项目。它并不是传统的LLM封装套壳工具,而是一个模块化、可扩展、具备人机协作能力的多AI智能体框架,也就是Multi Agent。
这不再只是一个简单的语言模型,而是将传统语言模型、搜索引擎、网络爬虫、代码执行以及文本转语音等多种功能进行了结合,用于智能化提取信息和整理工作。
DeerFlow的核心概念
- 深度搜索与高效研究流程(Deep Exploration and Efficient Research Flow):这是DeerFlow项目的核心目标——帮助用户对数据信息进行提取整理并进行全面的分析,并给出合理化的建议
- 模块化多智能体架构:
DeerFlow的整体设计架构采用了MultiAgent中较为常见的Supervisor架构,即整个框架由多智能体构成,有一个leader-agent和若干team-agent(我们可以将其视为一个个领域专家模型),多个模型之间协作相互协作完成目标。 - 人机协作(Human-in-the-Loop):
DeerFlow并非一个完全自主的Black-Box。它强调人类的参与与反馈,允许用户在智能体执行过程中进行干预从而对智能体的决策进行调整甚至修正。 - 端到端自动化:从最初的用户查询到最终的结果生成(结果可能有多重形式,如演示文稿、报告、播客等),旨在实现全流程自动生成。
MultiAgent架构详解
DeerFlow架构基于LangGraph构建,这是一种灵活且可追溯的状态机架构,用于管理智能体之间的协作和数据流。下面我们来介绍一下DeerFlow架构中的主要组成部分以及起扮演的角色:
1. 协调器(Coordinator)
协调器相当于整个多智能体架构的领导者,也就是leader-agent。它主要负责接收并理解用户的需求,并将任务传递给Planner。
主要功能
- 任务接收:接收来自用户的请求
- 启动规划:启动规划引擎,开始整个研究流程
- 任务分发:根据规划者的指示,将不同的子任务分发给不同的智能体。
2. 规划者(Planner)
规划者是DeerFlow的参谋部,负责将领导者发来的用户问题进行分类整理,将一个大的任务分解成若干个子任务,并制定整个任务的解决方案
主要功能
- 问题分解:将宏观的研究问题分解为可供各个
team-agent解决的子任务 - 路径规划:决定研究的步骤和顺序,包括何时进行信息收集、何时进行数据分析、何时生成报告等
- 循环决策:判断是否需要回溯以获取更多信息,或者是否可以继续推进到报告生成阶段
3. 研究团队(Research Team)
研究团队是DeerFlow的核心团队,由各个专家智能体构成,负责解决由规划者分配的任务,彼此之间也要相互协作
- 研究员(Researcher):负责对所有相关信息的收集,包括通过调用各种工具进行网络搜索、网络爬虫等操作从网页中提取相关内容,并调用各种API来获取所需的数据,确保了后续专家需要的数据的质量
- 程序员(Coder):程序员智能体主要通过执行
Python代码,进行数据处理、统计分析、运行模拟或验证引用。这可以让DeerFlow处理问题时不仅仅停留在文本信息处理阶段,还能深入到数据和代码层面。 - 报告员(Reporter):主要职责就是整合各个专家的信息并进行呈现。它利用大型语言模型(LLM)将研究员和程序员收集、分析的所有信息进行总结、归纳,并生成结构化、人类可读且可由AI进一步编辑的报告、演示文稿或播客脚本。它确保了最终输出的质量和可理解性。
4. 工具与集成(Tools & Integrations)
DeerFlow的强大数据处理功能离不开丰富的工具,它利用LangGraph管理多智能体之间的协作与通信,并支持各种工具、平台之间的关联:
- 搜索与爬虫工具:支持Travily,Brave Search,DuckDuckGo,Arxiv等主流搜索API,以及Jina等网络爬虫工具,确保信息来源的广泛性
- 语言模型集成:通过LitLLM支持包括OpenAI兼容模型在内的多种大型语言模型以及各类开原模型,为智能体提供强大的语言理解和生成能力
- 文本转语音(TTS):集成volcengine TTS等工具,能够将最终的文本报告转化为高质量的音频,方便用户以博客的形式消费研究成果
- 演示文稿生成:利用
marp-cli等工具生成PowerPoint幻灯片 - 外部系统连接:易于连接到
Notion或自定义数据库等外部系统,方便用户管理和利用研究数据