Home
Login

基于大语言模型的社区驱动深度研究框架,集成网络搜索、爬虫和Python执行等专业工具

MITTypeScript 14.2kbytedancedeer-flow Last Updated: 2025-06-19

DeerFlow - 深度研究自动化框架

项目概述

DeerFlow(Deep Exploration and Efficient Research Flow)是由字节跳动开源的社区驱动深度研究框架。该项目建立在开源社区的杰出工作基础之上,旨在将大语言模型与专业工具相结合,包括网络搜索、爬虫和Python代码执行等功能,同时回馈开源社区。

项目地址: https://github.com/bytedance/deer-flow

核心特性

🤖 LLM集成

  • 通过 litellm 支持大多数模型的集成
  • 支持Qwen等开源模型
  • OpenAI兼容的API接口
  • 针对不同任务复杂度的多层LLM系统

🔍 搜索与检索

  • 通过Tavily、Brave Search等进行网络搜索
  • 使用Jina进行爬虫
  • 高级内容提取功能

🔗 MCP无缝集成

  • 扩展私有域访问、知识图谱、网络浏览等功能
  • 促进多样化研究工具和方法论的集成

🧠 人机交互循环

  • 支持使用自然语言交互式修改研究计划
  • 支持研究计划的自动接受

📝 报告后期编辑

  • 支持类似Notion的块编辑
  • 允许AI精炼,包括AI辅助润色、句子缩短和扩展
  • 基于 tiptap 构建

🎙️ 播客和演示文稿生成

  • AI驱动的播客脚本生成和音频合成
  • 自动创建简单的PowerPoint演示文稿
  • 可定制的模板用于个性化内容

技术架构

DeerFlow实现了模块化多智能体系统架构,专为自动化研究和代码分析而设计。系统基于LangGraph构建,通过明确定义的消息传递系统实现灵活的基于状态的工作流,其中组件之间进行通信。

工作流组件

系统采用简化的工作流,包含以下组件:

协调器(Coordinator)

  • 管理工作流生命周期的入口点
  • 基于用户输入启动研究过程
  • 在适当时将任务委托给规划器
  • 充当用户与系统之间的主要接口

规划器(Planner)

  • 任务分解和规划的战略组件
  • 分析研究目标并创建结构化执行计划
  • 确定是否有足够的上下文或需要更多研究
  • 管理研究流程并决定何时生成最终报告

研究团队(Research Team)

执行计划的专业智能体集合:

  • 研究员(Researcher): 使用网络搜索引擎、爬虫甚至MCP服务等工具进行网络搜索和信息收集
  • 编码员(Coder): 使用Python REPL工具处理代码分析、执行和技术任务

每个智能体都可以访问针对其角色优化的特定工具,并在LangGraph框架内运行。

报告员(Reporter)

  • 研究输出的最终阶段处理器
  • 汇总研究团队的发现
  • 处理和结构化收集的信息
  • 生成综合研究报告

安装和快速开始

系统要求

  • Python 3.12+
  • Node.js(用于Web UI)
  • 推荐使用 uvnvmpnpm

安装步骤

# 克隆仓库
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow

# 安装依赖,uv会处理Python解释器和虚拟环境创建,并安装所需包
uv sync

# 配置环境变量
cp .env.example .env
# 配置您的API密钥:
# - Tavily: https://app.tavily.com/home
# - Brave Search: https://brave.com/search/api/
# - volcengine TTS: 如果有的话添加您的TTS凭证

# 配置LLM模型和API密钥
cp conf.yaml.example conf.yaml

# 安装marp用于PPT生成
brew install marp-cli

运行项目

控制台UI(最快方式)

uv run main.py

Web UI

# 首先安装Web UI依赖
cd deer-flow/web
pnpm install

# 运行后端和前端服务器(开发模式)
# macOS/Linux
./bootstrap.sh -d

# Windows
bootstrap.bat -d

然后访问 http://localhost:3000 体验Web UI。

支持的搜索引擎

DeerFlow支持多种搜索引擎,可在 .env 文件中使用 SEARCH_API 变量进行配置:

  • Tavily(默认): 专为AI应用设计的搜索API
  • DuckDuckGo: 注重隐私的搜索引擎,无需API密钥
  • Brave Search: 具有高级功能的注重隐私的搜索引擎
  • Arxiv: 专门用于学术研究的科学论文搜索

配置示例:

# 选择一个: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily

文本转语音集成

DeerFlow包含文本转语音(TTS)功能,允许您将研究报告转换为语音。此功能使用volcengine TTS API生成高质量音频,支持自定义速度、音量和音调。

API调用示例

curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "这是文本转语音功能的测试。",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3

开发和调试

运行测试

# 运行所有测试
make test

# 运行特定测试文件
pytest tests/integration/test_workflow.py

# 运行覆盖率测试
make coverage

# 运行代码检查
make lint

# 格式化代码
make format

LangGraph Studio调试

DeerFlow使用LangGraph作为其工作流架构。您可以使用LangGraph Studio实时调试和可视化工作流。

# 安装uv包管理器(如果没有的话)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 安装依赖并启动LangGraph服务器
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking

启动服务器后,您可以访问:

使用示例

命令行参数

# 运行特定查询
uv run main.py "影响医疗保健AI采用的因素有哪些?"

# 使用自定义规划参数运行
uv run main.py --max_plan_iterations 3 "量子计算如何影响密码学?"

# 交互模式运行
uv run main.py --interactive

# 查看所有可用选项
uv run main.py --help

人机交互循环

DeerFlow包含人机交互机制,允许您在执行前审查、编辑和批准研究计划:

  1. 计划审查: 启用人机交互时,系统会在执行前展示生成的研究计划供您审查
  2. 提供反馈: 您可以:
    • 通过回复 [ACCEPTED] 接受计划
    • 通过提供反馈编辑计划(例如:[EDIT PLAN] 添加更多关于技术实现的步骤
  3. 自动接受: 您可以启用自动接受来跳过审查过程

示例报告

项目包含多个示例报告,展示DeerFlow的功能:

  • OpenAI Sora分析报告
  • Google的智能体到智能体协议报告
  • MCP(模型上下文协议)综合分析
  • 比特币价格波动分析
  • 大语言模型深度探索
  • Claude深度研究最佳实践
  • 医疗保健AI采用影响因素
  • 量子计算对密码学的影响
  • 克里斯蒂亚诺·罗纳尔多表现亮点

致谢

DeerFlow建立在开源社区的杰出工作基础之上,特别感谢:

  • LangChain: 提供了出色的LLM交互和链框架
  • LangGraph: 在多智能体编排方面的创新方法

这些项目体现了开源协作的变革力量,我们很荣幸能在他们的基础上构建DeerFlow。

Star History Chart