DeerFlow 是由字节跳动开源的一个深度研究框架,旨在通过多智能体协作实现研究任务的自动化。它结合了语言模型和专业工具,如网页搜索、网页爬虫和 Python 代码执行,帮助用户高效完成复杂的研究任务。DeerFlow 基于 LangChain 和 LangGraph 构建,采用模块化设计,支持灵活的任务分配和状态管理。用户可以通过简单的配置快速部署,适合研究人员、开发者或需要处理大量信息的用户。项目完全开源,遵循 MIT 许可证,任何人都可以在 GitHub 上获取源代码并贡献代码。DeerFlow 提供直观的在线体验,支持一键部署到 Volcengine 云平台,方便用户快速上手。
功能列表
- 多智能体协作:通过 Researcher、Coder 和 Reporter 等智能体模块,分工处理搜索、代码分析和报告生成任务。
- 网页搜索与爬取:集成 Tavily 和 Brave 搜索,支持高效的信息收集和网页内容提取。
- Python 代码执行:内置 Python REPL 工具,允许用户直接运行和分析代码。
- 文本转语音:通过 Volcengine TTS API,将研究报告转为高质量音频,支持语速、音量和音调调整。
- 报告生成:自动生成结构化的研究报告,支持导出为文档或 PPT 格式。
- 一键部署:支持在 Volcengine 云平台上快速部署,简化环境配置。
- 交互模式:提供命令行交互模式,允许用户动态调整研究计划。
- 开源贡献:基于 MIT 许可证,鼓励社区参与开发和优化。
使用帮助
安装流程
DeerFlow 的安装和配置过程简单,适合有基础编程经验的用户。以下是详细的安装步骤:
- 克隆仓库
在终端运行以下命令,克隆 DeerFlow 仓库到本地:git clone https://github.com/bytedance/deer-flow.git cd deer-flow
- 安装依赖
使用uv
工具自动创建 Python 虚拟环境并安装所需依赖:uv sync
注意:确保已安装
uv
,可通过pip install uv
安装。 - 配置环境变量
复制示例配置文件并填写 API 密钥:cp .env.example .env
在
.env
文件中添加以下 API 密钥:- Tavily API:用于网页搜索,需在 Tavily 官网 注册获取。
- Brave Search API:用于增强搜索功能,需在 Brave Search 注册。
- Volcengine TTS API:用于文本转语音功能,需在 Volcengine 平台获取凭证。
示例.env
文件内容:
TAVILY_API_KEY=your_tavily_api_key BRAVE_SEARCH_API_KEY=your_brave_api_key VOLCENGINE_TTS_KEY=your_volcengine_tts_key
- 配置模型和参数
复制示例配置文件并根据需要调整:cp conf.yaml.example conf.yaml
在
conf.yaml
中配置语言模型(如 GPT 或其他支持的模型)和 API 密钥。具体配置参考docs/configuration_guide.md
。 - 安装 Marp(可选)
如果需要生成 PPT 格式的报告,需安装 Marp CLI:brew install marp-cli
对于非 macOS 系统,请参考 Marp CLI 官网 获取安装方法。
- 运行 DeerFlow
配置完成后,运行以下命令启动:python main.py --query "你的研究问题" --interactive
例如:
python main.py --query "量子计算对密码学的影响" --interactive
使用主要功能
DeerFlow 的核心功能围绕多智能体协作,分为以下几个模块的操作流程:
- 研究任务输入
用户通过命令行输入研究问题,例如“分析量子计算对密码学的影响”。DeerFlow 的 Planner 智能体会分解任务,生成研究计划,并分配给合适的智能体。用户可在交互模式下动态调整计划:python main.py --query "你的研究问题" --interactive
交互模式会提示用户输入额外信息或确认计划。
- 网页搜索与信息收集
Researcher 智能体使用 Tavily 或 Brave 搜索 API 收集相关信息。它会自动爬取网页内容,提取关键数据,并存储到临时数据库。用户可通过配置文件调整搜索深度:search: engine: tavily max_results: 10
- 代码执行与分析
Coder 智能体支持运行 Python 代码。例如,用户输入一个数据分析任务,Coder 会生成并执行代码:import pandas as pd df = pd.read_csv('data.csv') print(df.describe())
运行结果会反馈到研究报告中。用户可在交互模式中检查代码执行结果。
- 报告生成与文本转语音
Reporter 智能体将收集的信息整理为结构化报告,支持导出为 Markdown、PDF 或 PPT 格式。用户可启用文本转语音功能,将报告转为音频:python main.py --query "你的研究问题" --tts
音频文件会保存到指定目录,支持调整语速和音调:
tts: speed: 1.0 volume: 1.0 pitch: 0.0
- 自定义工作流
DeerFlow 使用 LangGraph 管理智能体状态,用户可通过修改conf.yaml
自定义任务流程。例如,增加搜索迭代次数:max_plan_iterations: 3 max_step_num: 5
特色功能操作
- 动态任务迭代:Planner 智能体支持根据搜索结果动态调整研究计划。例如,如果初始搜索结果不足,Planner 会自动发起新一轮搜索。
- 播客生成:结合文本转语音功能,DeerFlow 可将报告转为播客格式,适合分享研究成果。
- PPT 生成:通过 Marp CLI,DeerFlow 可将报告转为专业 PPT,适合学术会议或团队汇报。
注意事项
- 确保网络连接稳定,以支持 API 调用和网页爬取。
- 检查
.env
和conf.yaml
配置,避免因密钥错误导致功能不可用。 - 参考
docs/FAQ.md
解决常见问题,如依赖安装失败或 API 访问限制。
应用场景
- 学术研究
学生或研究人员可使用 DeerFlow 快速收集文献、分析数据并生成结构化报告。例如,输入“最新的人工智能算法综述”,DeerFlow 会自动搜索相关论文、提取关键信息并生成报告。 - 技术开发
开发者可利用 Coder 智能体分析代码库或运行实验代码。例如,输入“比较不同机器学习模型的性能”,DeerFlow 会执行 Python 脚本并生成比较报告。 - 市场分析
营销团队可使用 DeerFlow 收集行业趋势数据,生成市场报告或播客。例如,输入“2025年社交媒体趋势”,DeerFlow 会爬取相关网页并生成分析报告。 - 教育培训
教师可使用 DeerFlow 生成教学材料或 PPT。例如,输入“量子计算入门”,DeerFlow 会整理相关内容并生成教学幻灯片。
QA
- DeerFlow 支持哪些语言模型?
DeerFlow 支持多种语言模型,包括 GPT 系列和其他开源模型。用户可在conf.yaml
中配置模型类型和 API 密钥。 - 如何解决 API 密钥无效的问题?
检查.env
文件中的密钥是否正确。确保在 Tavily、Brave 或 Volcengine 平台注册并获取有效密钥。 - 是否需要编程经验?
基本使用无需编程经验,但配置环境和自定义工作流需要基础 Python 知识。 - 如何优化搜索结果?
在conf.yaml
中调整max_results
和search_engine
参数,选择更适合的搜索引擎。