Agent 框架 08:DeerFlow——字节跳动 Deep Research 深度研究框架架构拆解

Agent 框架 08:DeerFlow——字节跳动 Deep Research 深度研究框架架构拆解
Asaakii2025 年初,OpenAI Deep Research 与 Perplexity Deep Research 的发布引发了业界广泛关注:面对一个宏大而复杂的问题,AI 不再仅仅依赖单次模型推理给出简短答案,而是能够像一位资深行业分析师一样,自主规划数十个研究子方向,进行多轮网络检索、阅读上百篇网页长文、提取关键论据,并在 10~30 分钟内产出一篇结构严谨、数据详实且带标注引用的长篇万字研报。
这类商业产品虽然体验惊艳,但属于完全闭源的 SaaS 云端黑盒,企业无法将其接入内部私有数据,也无法将核心敏感数据送往境外。字节跳动开源的 DeerFlow(GitHub 仓库:bytedance/deer-flow)正是一个能够完全私有化部署的开源深度研究框架。更有意思的是,DeerFlow 底层基于 LangGraph 构建,是业内“用通用图框架构建垂类复杂 Agent”的极佳工程范本。
核心系统架构:多智能体协作拓扑
在 DeerFlow 中,完成一次深度研究绝非简单的“搜索 + 总结”,而是通过一套多角色协同的分层图拓扑进行驱动:
flowchart TD
UserQuery["用户高阶研究课题 (如: 2026全球固态电池商业化进展)"] --> Coord["Coordinator Agent (协调总控)"]
Coord --> IsComplex{"问题复杂度判断"}
IsComplex -- "简单事实性问题" --> FastDirect["快速直出答复"]
IsComplex -- "深度研究课题" --> Planner["Planner Agent (规划专家)"]
subgraph DeepLoop ["深度研究执行集群"]
direction TB
Planner --> Decomp["拆解多维独立子任务 (3~5 个分支)"]
Decomp --> Res1["Researcher Agent 1 (技术路线对比)"]
Decomp --> Res2["Researcher Agent 2 (产业链量产进度)"]
Decomp --> Res3["Researcher Agent 3 (成本与商业壁垒)"]
subgraph SearchPipeline ["单研究员检索流水线"]
WebSearch["多轮检索 (Tavily / Serper / 内网API)"] --> FetchPages["网页长文本清洗与正文提取"]
FetchPages --> Synthesize["单维度精炼事实摘要"]
end
Res1 --> SearchPipeline
Res2 --> SearchPipeline
Res3 --> SearchPipeline
SearchPipeline --> Aggregate["综合事实池 (Research Results)"]
end
Aggregate --> Writer["Writer Agent (长篇报告撰写专家)"]
Writer --> FinalReport(["生成结构化研报 (含目录、摘要与真实引用)"])
核心智能体角色分工
| 角色 | 核心职责 | 模型选型考量 |
|---|---|---|
| Coordinator Agent | 前置把关,判断用户问题是否值得启动高成本的深度检索流 | 强调速度:GPT-4o-mini / 豆包 Lite |
| Planner Agent | 分析研究广度与深度,按相互独立原则拆解研究提纲 | 强调规划与推理:o3-mini / DeepSeek-R1 |
| Researcher Agent | 针对单一提纲生成定向搜索词,调用 API 抓取并精简信息 | 强调长上下文阅读与抗噪:Claude 3.5 Sonnet / 豆包 Pro |
| Writer Agent | 汇总所有研究员事实,组织章节脉络,生成符合专业标准的排版与引用 | 强调文风与长文连贯度:GPT-4o / Claude 3.5 Sonnet |
环境配置与模型双轨制
DeerFlow 在设计上采用了“双模型分工”模式(基础模型处理长文本提取,深度推理模型负责任务拆解与逻辑归纳):
1 | git clone https://github.com/bytedance/deer-flow.git |
核心配置文件 conf.yaml 示范:
1 | # 通用基础模型 (负责爬虫数据清洗、常规生成) |
核心流程剖析:基于 LangGraph 的状态图编排
下面通过精简的代码逻辑,展示 DeerFlow 如何利用 LangGraph 的 StateGraph 和 TypedDict 管理跨节点状态流转:
1 | import operator |
前端全栈交互:Next.js Web UI
DeerFlow 不仅是一个纯后端脚本,它还配套提供了一个基于 Next.js 的全栈 Web 控制台:
1 | cd web |
前端界面重点解决了长任务等待过程中的用户体验问题:
- 实时阶段动效:可视化展示当前正在处于“提纲规划中”、“搜索节点 2 数据抓取中”还是“正在合成第三章节”。
- 流式事实呈现:研究员抓取到的关键引用链接和网页摘要实时滚动展示,让用户确信 Agent 并没有死锁或偷懒。
- 研报一键导出:支持直接导出排版优美的 Markdown 或 PDF 格式文档。
企业级私有化扩展:接入内部知识源
在企业落地时,最有价值的往往是内网的 Confluence、知识库或自建 ElasticSearch。DeerFlow 支持轻量级重写检索工具适配器:
1 | from src.tools.base_search import BaseSearchTool |
选型对比:自建 LangGraph vs 直接使用 DeerFlow
| 考量维度 | 直接基于 DeerFlow 二次开发 | 自己从零用 LangGraph 编写 |
|---|---|---|
| 启动速度 | 极快(已有成熟提纲、提示词与 Web 界面) | 慢(需要从头打磨长文本处理与流式交互) |
| 定制自由度 | 依赖其既定的 4 角色分工结构 | 完全自由,可随心设计更复杂的条件审校分支 |
| 工程成熟度 | 经过字节跳动内部实际测试,错误重试完善 | 取决于团队自身的 LangGraph 架构功底 |
| 学习价值 | 极高:直接学习“如何用 LangGraph 写大项目” | 适合对每个图节点生命周期进行微观掌控 |
优缺点分析与工程选型边界
核心优势
- 开源可私有化:填补了类似 OpenAI Deep Research 无法私有化部署和数据合规出境的空白。
- 架构清爽规范:依托 LangGraph 状态图,没有自造晦涩的私有图抽象,代码可读性极强。
- 开箱即用的前端:省去了算法团队开发可演示前端界面(Demo UI)的时间。
现实痛点与妥协
- 搜索 API 成本较高:深度研究通常需要调用 10~30 次外部搜索请求,依赖商用 Tavily/Serper 计费接口。
- 端到端耗时较长:一次完整的高质量调研往往需要 3~5 分钟以上,必须依靠后台异步队列和 WebSocket 流式通知。











