暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GitHub狂揽10.8k星!字节跳动开源DeerFlow多智能体深度研究框架的使用感受

AI云枢 2025-05-19
412
视频演示:
直接上结论,DeerFlow是一个功能强大的深度研究框架,好的地方太多就不赘述,目前只说些需要优化的地方,如有错误欢迎指出:
  1. 目前只支持非推理型模型
  2. 没有会话历史的持久化存储
  3. 研究员智能体主要依赖网络搜索和爬虫工具,缺乏对结构化数据源(如数据库、API)的原生支持
  4. 对私有知识库的集成支持有限
  5. 集成MCP工具的加载过程相对简单,仅支持将工具添加到智能体中,但缺乏更复杂的交互机制,如工具间的协作、状态共享
虽然在使用中遇到些问题,但不妨碍deerflow仍然是个很好用的自动化研究报告生成工具。

下面是DeepFlow介绍及部署,熟悉的大佬可以直接跳过
DeerFlow是由字节跳动开发的社区驱动深度研究框架,全称为"Deep Exploration and Efficient Research Flow"(深度探索和高效研究流程)。这是一个结合了语言模型和专业工具的多智能体系统,旨在自动化复杂的研究任务,截止5月19号日,已收获10.8k星。
系统架构
DeerFlow 实现了一个模块化的多智能体系统架构,专为自动化研究和代码分析而设计。该系统基于 LangGraph 构建,实现了灵活的基于状态的工作流,其中组件通过定义良好的消息传递系统进行通信。系统主要由以下组件组成:
  1. 协调器(Coordinator):作为入口点,管理工作流生命周期
    • 基于用户输入启动研究过程
    • 在适当时候将任务委派给规划器
    • 作为用户和系统之间的主要接口
  2. 规划器(Planner):负责任务分解和规划的战略组件
    • 分析研究目标并创建结构化执行计划
    • 确定是否有足够的上下文或是否需要更多研究
    • 管理研究流程并决定何时生成最终报告
  3. 研究团队(Research Team):执行计划的专业智能体集合
    • 研究员(Researcher):使用网络搜索引擎、爬虫等进行网络搜索和信息收集
    • 程序员(Coder):使用Python REPL工具处理代码分析、执行和技术任务
  4. 报告员(Reporter):研究输出的最终阶段处理器
    • 汇总研究团队的发现
    • 处理和结构化收集的信息
    • 生成全面的研究报告
核心特性
LLM集成
  • 通过litellm支持多种模型
  • 支持Qwen等开源模型
  • 提供OpenAI兼容的API接口 
搜索和检索
  • 通过Tavily、Brave Search等进行网络搜索
  • 使用Jina进行网页爬取
  • MCP无缝集成,扩展私有域访问等功能
人机协作
  • 支持使用自然语言交互式修改研究计划
  • 支持类似Notion的块编辑,允许AI辅助润色
内容创建
  • AI驱动的播客脚本生成和音频合成
  • 自动创建PowerPoint演示文稿
安装和使用
DeerFlow使用Python开发,并带有用Node.js编写的Web UI。
环境要求
  • Python:版本3.12+
  • Node.js:版本22+
安装步骤
源码部署
  1. 克隆仓库
  2. 使用uv sync安装依赖
  3. 配置.env中的API密钥
  4. 配置conf.yaml中的模型设置
  5. 使用uv run main.py或使用bootstrap脚本运行Web UI
Docker部署
    # 构建docker镜像 
    docker compose build  
    # 启动服务器 
    docker compose up

    模型限制
    DeerFlow目前只支持非推理型(non-reasoning)模型,这意味着像OpenAI的o1/o3或DeepSeek的R1等推理型模型目前尚不支持,但项目计划在未来添加对这些模型的支持。
    支持的模型
    DeerFlow支持以下模型以及理论上任何其他实现OpenAI API规范的非推理型聊天模型:
    • doubao-1.5-pro-32k-250115
    • gpt-4o
    • qwen-max-latest
    • gemini-2.0-flash
    • deepseek-v3
    上下文窗口限制
    深度研究过程需要模型具有较长的上下文窗口,并非所有模型都支持这一点。对于上下文窗口较短的模型,有一个变通方法是在网页右上角的设置对话框中将"研究计划的最大步骤数"设置为2,或者在调用API时将max_step_num设置为2
    会话历史管理
    根据代码分析,DeerFlow没有实现会话历史的持久化存储功能。系统使用Zustand在前端管理会话状态,但这只是一个内存中的状态管理,当页面刷新或应用关闭时,这些状态会被重置。
    在前端,会话通过web/src/core/store/store.ts中的Zustand存储管理:
    当消息发送时,它们被添加到内存存储中,但没有保存到任何持久化存储:
    后端的ChatRequest模型定义了聊天请求的结构,包括一个thread_id字段,理论上可以用于会话持久化,但在代码片段中没有显示这个ID被用于保存或检索会话历史:
    系统确实有一个"回放"功能,但这似乎是用于演示目的,而不是实际的会话历史:

    Github:https://github.com/bytedance/deer-flow

    文章转载自AI云枢,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论