DeerFlow安装配置及使用案例
简介
DeerFlow项目由字节跳动技术团队发起和主导开发,作为一个开源深度研究框架,于2025年年初正式开源。该项目基于LangStack生态,构建于LangChain与LangGraph的开源技术栈之上,充分利用语言模型和专业的工具集成,目标是推动深度研究工作自动化。其设计思想和技术实现产生于字节跳动内部对高效研究流程的需求,强调社区驱动与贡献回馈。
项目目标
DeerFlow旨在提供一个多智能体(Multi-Agent)系统框架,自动化处理复杂的研究任务。通过整合语言模型与网页搜索、爬虫、Python代码执行等多种专用工具,实现端到端自动化的信息采集、分析与报告生成。目标用户包括科研人员、开发者及学生,适合学术研究、市场分析和代码分析等多场景应用。项目力求减少人工干预,提高研究效率,支持动态规划和人机协作。
核心功能
- 多智能体架构:包括协调器、规划器、研究团队和报告员等模块,分工明确,协作完成复杂任务。
- 语言模型集成:支持多种大型语言模型接入,包括开源模型与OpenAI API接口,借助litellm库进行统一管理。
- 网络搜索与爬虫:支持多搜索引擎(如Tavily、DuckDuckGo、Brave Search)以丰富信息源,具备网页爬取能力。
- Python代码执行环境:可运行代码完成数据处理和分析。
- 人机协作:允许用户用自然语言实时修改研究计划和生成内容,支持AI辅助的报告编辑和润色。
- 内容生成:自动生成研究报告,可进一步转化为播客音频和文字版PPT,支持文本到语音(TTS)功能,生成高质量语音内容,借助火山引擎的音色技术。
- 开发与调试工具:配备LangGraph Studio可视化调试 workflow,Replay系统支持多轮对话快速回放。
- 跨平台界面:具备Web UI和控制台UI,提升用户体验。
架构
DeerFlow 实现了一个模块化的多智能体系统架构,专为自动化研究和代码分析而设计。该系统基于 LangGraph 构建,实现了灵活的基于状态的工作流,其中组件通过定义良好的消息传递系统进行通信。
安装DeerFlow
# 克隆仓库
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
配置
配置.env
中的搜索引擎API Key
TAVILY_API_KEY=tvly-xxx
配置conf.yaml
中的模型配置
conf.yaml
# [!NOTE]
# Read the `docs/configuration_guide.md` carefully, and update the configurations to match your specific settings and requirements.
# - Replace `api_key` with your own credentials
# - Replace `base_url` and `model` name if you want to use a custom model
BASIC_MODEL:
base_url: https://ark.cn-beijing.volces.com/api/v3
model: "doubao-1-5-pro-32k-250115"
api_key: xxxx
安装 Web UI 依赖
cd deer-flow/web
pnpm install
启动
控制台 UI
uv run main.py
Web UI
# 在开发模式下同时运行后端和前端服务器
# 在macOS/Linux上
./bootstrap.sh -d
# 在Windows上
bootstrap.bat -d
访问
示例
询问
- DeerFlow是什么项目?
Start research
- 开始搜索
- 总结内容
接入MCP
- 接一个高德地图的MCP Server
{
"mcpServers": {
"amap-amap-sse": {
"url": "https://mcp.amap.com/sse?key=xxxxx"
}
}
}
# demo1
我在上海浦东新区浦星公路,我朋友在黄浦区打浦桥地铁站, 请帮我准荐几个离两个人比较近,方便停车的咖啡馆, 并给出咖啡馆的具体信息。
# demo2
我明天需要从上海去杭州特讯网络大厦参加会议,会议时间是明天下午1.30分以及后天9.30 帮我规划下行程住宿
demo1:
demo2:
LangGraph Studio
- 使用下面命令安装依赖并启动一个基于 LangGraph 的开发服务器
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
PPT生成
去长沙旅游的介绍
- 生成的PPT只有文字
Docker
确保.env
和.conf.yaml
文件已准备就绪。
并且web
目录下的存在.env
文件
cp web/.env.example web/.env
构建镜像
docker compose build
启动
docker compose up
⚠️ 注意:部署到公网时需要在构建前端的时候要在构建参数上填写后端server地址:
比如:docker buildx build --platform linux/amd64 --build-arg NEXT_PUBLIC_API_URL=http://xxxxxx/api -f Dockerfile -t deer-flow:frontend-latest .