English | 简体中文 | 日本語 | Deutsch | Español | Русский |Portuguese
源于开源,回馈开源。
DeerFlow(Deep Exploration and Efficient Research Flow)是一个社区驱动的深度研究框架,它建立在开源社区的杰出工作基础之上。我们的目标是将语言模型与专业工具(如网络搜索、爬虫和 Python 代码执行)相结合,同时回馈使这一切成为可能的社区。
目前,DeerFlow 已正式入驻火山引擎的 FaaS 应用中心,用户可通过体验链接进行在线体验,直观感受其强大功能与便捷操作;同时,为满足不同用户的部署需求,DeerFlow 支持基于火山引擎一键部署,点击部署链接即可快速完成部署流程,开启高效研究之旅。
请访问DeerFlow 的官方网站了解更多详情。
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
在此演示中,我们展示了如何使用 DeerFlow:
DeerFlow 使用 Python 开发,并配有用 Node.js 编写的 Web UI。为确保顺利的设置过程,我们推荐使用以下工具:
uv:
简化 Python 环境和依赖管理。uv会自动在根目录创建虚拟环境并为您安装所有必需的包—无需手动安装 Python 环境。
nvm:
轻松管理多个 Node.js 运行时版本。
pnpm:
安装和管理 Node.js 项目的依赖。
确保您的系统满足以下最低要求:
# 克隆仓库
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# 安装依赖,uv将负责Python解释器和虚拟环境的创建,并安装所需的包
uv sync
# 使用您的API密钥配置.env
# Tavily: https://app.tavily.com/home
# Brave_SEARCH: https://brave.com/search/api/
# 火山引擎TTS: 如果您有TTS凭证,请添加
cp .env.example .env
# 查看下方的"支持的搜索引擎"和"文本转语音集成"部分了解所有可用选项
# 为您的LLM模型和API密钥配置conf.yaml
# 请参阅'docs/configuration_guide.md'获取更多详情
cp conf.yaml.example conf.yaml
# 安装marp用于PPT生成
# https://github.com/marp-team/marp-cli?tab=readme-ov-file#use-package-manager
brew install marp-cli
可选,通过pnpm安装 Web UI 依赖:
cd deer-flow/web
pnpm install
请参阅配置指南获取更多详情。
[! 注意] 在启动项目之前,请仔细阅读指南,并更新配置以匹配您的特定设置和要求。
运行项目的最快方法是使用控制台 UI。
# 在类bash的shell中运行项目
uv run main.py
本项目还包括一个 Web UI,提供更加动态和引人入胜的交互体验。
[! 注意] 您需要先安装 Web UI 的依赖。
# 在开发模式下同时运行后端和前端服务器
# 在macOS/Linux上
./bootstrap.sh -d
# 在Windows上
bootstrap.bat -d
[! 注意] 出于安全考虑,后端服务器默认绑定到 127.0.0.1 (localhost)。如果您需要允许外部连接(例如,在Linux服务器上部署时),您可以修改启动脚本中的主机地址为 0.0.0.0。(uv run server.py --host 0.0.0.0) 请注意,在将服务暴露给外部网络之前,请务必确保您的环境已经过适当的安全加固。
打开浏览器并访问http://localhost:3000探索 Web UI。
在web目录中探索更多详情。
DeerFlow 支持多种搜索引擎,可以在.env文件中通过SEARCH_API变量进行配置:
Tavily(默认):专为 AI 应用设计的专业搜索 API
.env文件中设置TAVILY_API_KEYDuckDuckGo:注重隐私的搜索引擎
Brave Search:具有高级功能的注重隐私的搜索引擎
.env文件中设置BRAVE_SEARCH_API_KEYArxiv:用于学术研究的科学论文搜索
Searx/SearxNG:自托管的元搜索引擎
.env文件中设置SEARX_HOST要配置您首选的搜索引擎,请在.env文件中设置SEARCH_API变量:
# 选择一个:tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow 支持基于私有域知识的检索,您可以将文档上传到多种私有知识库中,以便在研究过程中使用,当前支持的私域知识库有:
RAGFlow:开源的基于检索增强生成的知识库引擎
# 参照示例进行配置 .env.example RAG_PROVIDER=ragflow RAGFLOW_API_URL="http://localhost:9388" RAGFLOW_API_KEY="ragflow-xxx" RAGFLOW_RETRIEVAL_SIZE=10
[MOI]:AI 原生多模态数据智能平台
# 参照示例进行配置 .env.example RAG_PROVIDER=moi MOI_API_URL="https://freetier-01.cn-hangzhou.cluster.matrixonecloud.cn" MOI_API_KEY="xxx-xxx-xxx-xxx" MOI_RETRIEVAL_SIZE=10 MOI_LIST_LIMIT=10
VikingDB 知识库:火山引擎提供的公有云知识库引擎
注意先从 火山引擎 获取账号 AK/SK
# 参照示例进行配置 .env.example RAG_PROVIDER=vikingdb_knowledge_base VIKINGDB_KNOWLEDGE_BASE_API_URL="api-knowledgebase.mlp.cn-beijing.volces.com" VIKINGDB_KNOWLEDGE_BASE_API_AK="volcengine-ak-xxx" VIKINGDB_KNOWLEDGE_BASE_API_SK="volcengine-sk-xxx" VIKINGDB_KNOWLEDGE_BASE_RETRIEVAL_SIZE=15
🔍 搜索和检索
📃 RAG 集成
🔗 MCP 无缝集成
💬 智能澄清功能
🧠 人在环中
📝 报告后期编辑
DeerFlow 实现了一个模块化的多智能体系统架构,专为自动化研究和代码分析而设计。该系统基于 LangGraph 构建,实现了灵活的基于状态的工作流,其中组件通过定义良好的消息传递系统进行通信。

在deerflow.tech上查看实时演示
系统采用了精简的工作流程,包含以下组件:
协调器:管理工作流生命周期的入口点
规划器:负责任务分解和规划的战略组件
研究团队:执行计划的专业智能体集合:
报告员:研究输出的最终阶段处理器
DeerFlow 现在包含一个文本转语音 (TTS) 功能,允许您将研究报告转换为语音。此功能使用火山引擎 TTS API 生成高质量的文本音频。速度、音量和音调等特性也可以自定义。
您可以通过/api/tts端点访问 TTS 功能:
# 使用curl的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
DeerFlow 使用 LangGraph 作为其工作流架构。您可以使用 LangGraph Studio 实时调试和可视化工作流。
DeerFlow 包含一个langgraph.json配置文件,该文件定义了 LangGraph Studio 的图结构和依赖关系。该文件指向项目中定义的工作流图,并自动从.env文件加载环境变量。
# 如果您没有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
# 安装依赖
pip install -e .
pip install -U "langgraph-cli[inmem]"
# 启动LangGraph服务器
langgraph dev
启动 LangGraph 服务器后,您将在终端中看到几个 URL:
在浏览器中打开 Studio UI 链接以访问调试界面。
在 Studio UI 中,您可以:
当您在 Studio UI 中提交研究主题时,您将能够看到整个工作流执行过程,包括:
DeerFlow 支持 LangSmith 追踪功能,帮助您调试和监控工作流。要启用 LangSmith 追踪:
确保您的 .env 文件中有以下配置(参见 .env.example):
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY="xxx"
LANGSMITH_PROJECT="xxx"
通过运行以下命令本地启动 LangSmith 追踪:
langgraph dev
这将在 LangGraph Studio 中启用追踪可视化,并将您的追踪发送到 LangSmith 进行监控和分析。
您也可以使用 Docker 运行此项目。
首先,您需要阅读下面的配置部分。确保.env和.conf.yaml文件已准备就绪。
其次,构建您自己的 Web 服务器 Docker 镜像:
docker build -t deer-flow-api .
最后,启动运行 Web 服务器的 Docker 容器:
# 将deer-flow-api-app替换为您首选的容器名称
# 启动服务器并绑定到localhost:8000
docker run -d -t -p 127.0.0.1:8000:8000 --env-file .env --name deer-flow-api-app deer-flow-api
# 停止服务器
docker stop deer-flow-api-app
您也可以使用 docker compose 设置此项目:
# 构建docker镜像
docker compose build
# 启动服务器
docker compose up
WARNING
如果您想将 DeerFlow 部署到生产环境中,请为网站添加身份验证,并评估 MCPServer 和 Python Repl 的安全检查。
DeerFlow 现在包含一个文本转语音 (TTS) 功能,允许您将研究报告转换为语音。此功能使用火山引擎 TTS API 生成高质量的文本音频。速度、音量和音调等特性也可以自定义。
您可以通过/api/tts端点访问 TTS 功能:
# 使用curl的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
以下示例展示了 DeerFlow 的功能:
OpenAI Sora 报告 - OpenAI 的 Sora AI 工具分析
Google 的 Agent to Agent 协议报告 - Google 的 Agent to Agent (A2A) 协议概述
什么是 MCP? - 对"MCP"一词在多个上下文中的全面分析
比特币价格波动 - 最近比特币价格走势分析
什么是 LLM? - 对大型语言模型的深入探索
如何使用 Claude 进行深度研究? - 在深度研究中使用 Claude 的最佳实践和工作流程
医疗保健中的 AI 采用:影响因素 - 影响医疗保健中 AI 采用的因素分析
量子计算对密码学的影响 - 量子计算对密码学影响的分析
克里斯蒂亚诺·罗纳尔多的表现亮点 - 克里斯蒂亚诺·罗纳尔多表现亮点的分析
要运行这些示例或创建您自己的研究报告,您可以使用以下命令:
# 使用特定查询运行
uv run main.py "哪些因素正在影响医疗保健中的AI采用?"
# 使用自定义规划参数运行
uv run main.py --max_plan_iterations 3 "量子计算如何影响密码学?"
# 在交互模式下运行,带有内置问题
uv run main.py --interactive
# 或者使用基本交互提示运行
uv run main.py
# 查看所有可用选项
uv run main.py --help
应用程序现在支持带有英文和中文内置问题的交互模式:
启动交互模式:
uv run main.py --interactive
选择您偏好的语言(English 或中文)
从内置问题列表中选择或选择提出您自己问题的选项
系统将处理您的问题并生成全面的研究报告
DeerFlow 包含一个人在环中机制,允许您在执行研究计划前审查、编辑和批准:
计划审查:启用人在环中时,系统将在执行前向您展示生成的研究计划
提供反馈:您可以:
[ACCEPTED]接受计划[EDIT PLAN] 添加更多关于技术实现的步骤)自动接受:您可以启用自动接受以跳过审查过程:
auto_accepted_plan: trueAPI 集成:使用 API 时,您可以通过feedback参数提供反馈:
{
"messages": [{ "role": "user", "content": "什么是量子计算?" }],
"thread_id": "my_thread_id",
"auto_accepted_plan": false,
"feedback": "[EDIT PLAN] 包含更多关于量子算法的内容"
}
应用程序支持多个命令行参数来自定义其行为:
请参阅FAQ.md获取更多详情。
本项目是开源的,遵循MIT 许可证。
DeerFlow 建立在开源社区的杰出工作基础之上。我们深深感谢所有使 DeerFlow 成为可能的项目和贡献者。诚然,我们站在巨人的肩膀上。
我们要向以下项目表达诚挚的感谢,感谢他们的宝贵贡献:
这些项目展示了开源协作的变革力量,我们很自豪能够在他们的基础上构建。
衷心感谢DeerFlow的核心作者,他们的愿景、热情和奉献使这个项目得以实现:
您坚定不移的承诺和专业知识是 DeerFlow 成功的驱动力。我们很荣幸有您引领这一旅程。