DeerFlow 概述
学习目标: 了解 DeerFlow 的项目背景、Harness 架构理念、核心组件和适用场景
预计时间: 40 分钟
难度等级: ⭐⭐☆☆☆
更新时间: 2026年5月
DeerFlow 是什么
项目背景
DeerFlow 出自字节跳动之手,核心作者是 Daniel Walnut 和 Henry Li。2026 年 2 月,DeerFlow 2.0 发布后迅速登顶 GitHub Trending #1,截至 2026 年 5 月已获得 超过 64,000 个 GitHub Star,采用 MIT 开源协议。
技术栈方面,DeerFlow 基于 LangGraph 1.0 与 LangChain 构建——不是从零造轮子,是在 LangGraph 的编排能力之上做了更高层的封装。
字节跳动内部孵化出很多优秀的开源项目(比如 Rspack、Modern.js),DeerFlow 是他们在 AI Agent 领域的一次重要布局。它解决的问题非常明确:让 Agent 真正能干活,而不只是会聊天。
Super Agent Harness 定位
DeerFlow 将自己定位为 Super Agent Harness,而不是又一个 Agent 框架。Harness 和 Framework 有什么区别?一个简单的类比:
| 概念 | 类比 | 说明 |
|---|---|---|
| Framework(框架) | 积木盒 | 给你一堆积木,你自己搭房子。灵活但需要自己拼装。 |
| Harness(马具) | 已组装好的发动机 | 核心功能完整,你只需要接上就能跑。开箱即用。 |
| DeerFlow | 安装了发动机的整车 | 不仅有发动机(Harness),还有轮胎、方向盘、座椅——拿来就能上路。 |
更直白地说:用 LangGraph 你需要自己写图结构、自己搭运行环境、自己实现记忆和工具调度。而 DeerFlow 把这些都集成好了,你只需要配置和运行。
名称含义
DeerFlow 全称是 Deep Exploration and Efficient Research Flow——深度探索与高效研究流。这个名字反映了它的初心:让 AI Agent 能够深入探索多个研究方向,并高效地产出成果。
从 Deep Research 到 Super Agent Harness
1.x 时代:专注研究
DeerFlow 1.x 是纯粹的 Deep Research 框架,定位很窄——针对需要深度调研、多方资料收集、综合报告生成的场景。它就像一个"研究助手",把大模型的研究能力发挥到极致。
社区的意外推动
但开发者们用它做的事情远远超出了"研究"范畴:
- 数据流水线:多步骤数据抓取、清洗、分析
- PPT 生成:自动根据主题创建完整演示文稿
- Dashboard 开发:让 Agent 从数据直接生成可视化面板
- 内容自动化:批量文章生成、多语言翻译、社交媒体发布
团队意识到:人们需要的不是一个"研究工具",而是一个通用的 Agent 执行容器。
2.0 彻底重写
2026 年 2 月发布的 DeerFlow 2.0 完全重写了代码库(与 1.x 不共享代码)。定位从"Deep Research 框架"升级为"Super Agent Harness"。
Harness 理念的两个核心:
- 开箱即用:部署一个 Docker 容器,就能得到一个具备记忆、沙箱执行、多 Agent 协作能力的完整系统
- 可扩展:所有组件——Skills、Memory、Sandbox——都可以替换和定制
2.0 的架构决策非常务实:不追求什么都自己造,而是在 LangGraph 之上做封装,把精力集中在"开发者真正需要但框架不提供"的东西上——隔离沙箱、持久记忆、上下文工程。
核心架构
DeerFlow 的架构可以拆解为五大核心组件:Lead Agent、Sub-Agents、Sandbox 执行环境、Skills 系统和 Memory 系统。
Lead Agent
Lead Agent 是整个系统的统一调度中枢。它的职责包括:
- 任务拆解:将用户输入的复杂任务分解为可执行的子任务
- Sub-Agent 调度:根据子任务类型,动态创建合适的 Sub-Agent
- 结果汇总:收集所有 Sub-Agent 的结构化输出,综合成最终交付物
Lead Agent 本身不直接执行代码或访问文件系统,它是一个"管理者"角色。
Sub-Agents
Sub-Agent 是实际干活的人。有几个关键设计:
- 按需动态拉起:Lead Agent 认为需要时才会创建,不是预分配
- 独立 Scoped Context:每个 Sub-Agent 有完全隔离的上下文窗口,看不到其他 Sub-Agent 或 Lead Agent 的内部状态
- 并发限制:最多 3 个 Sub-Agent 并行执行
- 超时保护:每个 Sub-Agent 最长运行 15 分钟
Sub-Agent 分为两种类型:
| 类型 | 说明 | 可用工具 |
|---|---|---|
| General-purpose | 通用执行代理 | 完整工具集,不可递归(不能再创建 Sub-Agent) |
| Bash | 命令行专用代理 | 仅限于终端命令执行 |
每个 Sub-Agent 执行完毕会返回结构化结果,由 Lead Agent 汇总整合。
整体编排流程如下:
┌──────────────────────────────────────┐
│ Lead Agent │
│ (协调中枢:拆解 + 调度 + 汇总) │
└──────────┬────────────┬───────────────┘
│ │
┌───────────────┼────────────┼───────────────┐
│ │ │ │
▼ ▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Sub-Agent 1 │ │ Sub-Agent 2 │ │ Sub-Agent 3 │ │ ... │
│ (研究方向A) │ │ (研究方向B) │ │ (研究方向C) │ │ (最多3并行) │
│ │ │ │ │ │ │ │
│ Sandbox │ │ Sandbox │ │ Sandbox │ │ │
│ (隔离Docker) │ │ (隔离Docker) │ │ (隔离Docker) │ │ │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │ │
└────────────────┼────────────────┼────────────────┘
│ │
▼ ▼
┌──────────────────────────────────┐
│ Lead Agent 汇总结构化结果 │
│ 研究报告 / 网站 / PPT / 代码 │
└──────────────────────────────────┘Sandbox 执行环境
Sandbox 是 DeerFlow 区别于纯"对话式 Agent"的关键。它不是让 Agent 告诉你"我建议你这样做",而是让 Agent 直接动手做。
每个 Sub-Agent 运行在一个隔离的 Docker 容器中,拥有完整的文件系统:
/mnt/user-data/
├── workspace/ # 工作目录
├── uploads/ # 上传文件
└── outputs/ # 输出文件支持的后端:
| 后端 | 说明 |
|---|---|
| 本地 Docker | 默认方式,适合开发和测试 |
| 远程 K8s Pod | 生产环境,可弹性伸缩 |
资源管理:
- Warm Pool 热池:预启动容器,减少 Sub-Agent 等待时间
- LRU 驱逐:当容器数量超限时,回收最近最少使用的容器
- 空闲超时:600 秒无活动自动释放
- 默认并发:3 个 Sandbox 同时运行
有 Sandbox 和没有 Sandbox 的区别,用一个表格展示很清楚:
| 维度 | 带工具的聊天机器人 | DeerFlow(有 Sandbox 的 Agent) |
|---|---|---|
| 执行环境 | 无,只能生成文本建议 | 隔离 Docker 容器,可运行代码 |
| 文件操作 | 不能读写文件 | 完整文件系统,可创建/修改/删除 |
| 持久产出 | 聊天记录 | 实际文件:报告、网页、PPT |
| 安装依赖 | 不行 | 可在容器内 pip install / apt-get |
| 错误恢复 | 只能告诉你出错了 | 可在容器内重试、排查、修复 |
| 安全性 | 由 API 提供商保障 | 容器隔离,限制对宿主机访问 |
Skills 系统
DeerFlow 的 Skills 是用 Markdown 文件定义的指令模板,按需渐进加载到 Agent 上下文窗口。
加载策略:
- 不在初始化时一次性把所有 Skill 塞入上下文(那样 Token 消耗是不可接受的)
- 只在 Lead Agent 判断需要时,才加载对应的 Skill 文档
- 按需加载让技能库可以无限扩展,不会拖慢每次交互
内置 Skills:
| Skill | 用途 |
|---|---|
| 研究 | 多来源信息收集、整合、报告撰写 |
| 报告 | 结构化报告生成,支持 Markdown/PDF |
| 幻灯片 | 从内容自动生成演示文稿 |
| 网页 | 使用代码生成网站页面 |
| 图片/视频 | 多媒体内容生成 |
可扩展性:
- 所有 Skill 都是可自定义的——直接修改 Markdown 文件即可
- 可替换——你可以用自己的 Skill 替换内置的
- 可组合——一个任务可以串行或并行使用多个 Skill
还有一个有意思的集成 Claude Code 集成:通过 claude-to-deerflow Skill,DeerFlow 可以把 Claude Code 作为 Sub-Agent 来调用,编排更复杂的协作流水线。
Memory 系统
DeerFlow 的记忆系统跟 Hermes Agent 的自学习不同,它走的是自动事实提取路线。
核心机制:
- LLM 驱动:每次交互后,大模型自动扫描对话内容,提取"值得记住的事实"
- 三层结构:
| 层次 | 存储内容 | 示例 |
|---|---|---|
| 用户上下文 | 用户身份、偏好、常用配置 | 用户是一名研究者,偏好 Python |
| 历史记录 | 过往任务的摘要和结果 | 上次调研了 RAG 技术的 3 种方案 |
| 离散事实 | 具体知识点(含置信度评分) | "DeerFlow 2.0 发布于 2026-02"(置信度: 高) |
实现方式:
- 数据以 JSON 格式 存储在本地
- 提供 CRUD API,支持程序化读写
- 附带 前端管理界面,可直接查看和编辑记忆
- 使用 Tiktoken 控制 记忆大小,防止无限膨胀
- 去重队列 确保同一事实不会被重复存储
Context Engineering
DeerFlow 在上下文管理上有一些独特的设计,团队称之为 Context Engineering(上下文工程)。它解决的问题很实际:长链路任务中,Agent 的上下文窗口一直在膨胀,怎么保证它不"漂"?
子代理上下文隔离
每个 Sub-Agent 有独立的作用域上下文(scoped context)。一个 Sub-Agent 的上下文不会泄漏到另一个,Lead Agent 也只看到 Sub-Agent 返回的结构化结果,而不是它的完整对话过程。这既保护了上下文窗口不被污染,也是一种安全机制。
上下文压缩中间件
在每次 LLM 调用之前,中间件会检测上下文是否接近窗口上限,如果是,则对历史对话做智能摘要压缩,保留关键信息但大幅减少 Token 数。
会话状态快照中间件
每隔一段时间(或在关键节点),中间件会对当前会话状态做快照——包括已完成的子任务、已收集的信息、剩余的步骤。如果 Agent 出现上下文漂移或陷入循环,可以用快照恢复。
交付物保护中间件
Sub-Agent 可能因为上下文溢出而"忘记"自己正在生产什么。交付物保护中间件会在 Sub-Agent 的上下文中持续注入当前交付物的中间状态,确保它始终知道自己在生成什么。
这四类中间件解决的是一个核心问题:长链路自治 = 让 Agent 在漫长的执行过程中始终保持聚焦。DeerFlow 的这种设计思路,在实际的长耗时任务中非常关键。
编排模式与多 Agent 协作
基本流程
DeerFlow 的编排模式遵循一个清晰的三步走流程:
用户输入
│
▼
┌─────────────────────────────────────────┐
│ Step 1: Lead Agent 拆解 │
│ "调研 A、B、C 三个方向,各写 500 字报告" │
│ → 拆解为 3 个独立子任务 │
└──────────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Step 2: Sub-Agent 并行执行 │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ Sub-1 │ │ Sub-2 │ │ Sub-3 │ ... │
│ │ 方向A │ │ 方向B │ │ 方向C │ │
│ └────────┘ └────────┘ └────────┘ │
│ 最多 3 个并行,15 分钟超时 │
└──────────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Step 3: Lead Agent 汇总 │
│ 将 3 份结构化结果合并为最终报告 │
└─────────────────────────────────────────┘多路并行研究
DeerFlow 的并行能力可以做到:同时让十几个 Sub-Agent 去研究不同方向(虽然同时最多 3 个在跑,但因为 Sub-Agent 快速完成并退出,新 Sub-Agent 不断接力,整体上可以实现"看似同时进行十几个方向"的效果)。
想象一下这种场景:你让它"调研 2026 年 AI Agent 领域的最新进展",它可能同时在研究 "LangGraph 1.0 的新特性"、"OpenAI Codex CLI"、"Anthropic Agent SDK"、"MCP 协议生态"等多个方向,每个方向一个 Sub-Agent,独立搜索、独立分析、独立产出,最后 Lead Agent 汇总成一篇全面报告。
产出类型
DeerFlow 的最终产出不只是文字报告。Lead Agent 可以根据需要决定产出的类型:
| 产出类型 | 示例 |
|---|---|
| 研究报告 | 多章节 Markdown 文档 |
| 网站 | 静态 HTML 页面 |
| 演示文稿 | PPTX 幻灯片 |
| 代码 | 完整的项目或脚本 |
| 图片/视频 | 基于描述生成的多媒体文件 |
生态对比
与 Agent 框架/平台的对比
| 维度 | DeerFlow | Hermes Agent | LangGraph | OpenManus |
|---|---|---|---|---|
| 定位 | Super Agent Harness | 带自学习 Agent | 图式编排框架 | 通用 Agent |
| 部署 | 服务器 Docker | 6 种后端 | 框架层面 | 本地 CLI |
| 核心优势 | 开箱即用完整性 | 自学习循环 | 编排灵活性 | 极简配置 |
| 记忆 | 跨 session 持久 | SQLite + FTS5 | 需自行实现 | 会话内 |
| Sandbox | 原生 Docker | 无 | 无 | 有 |
| 构建基础 | LangGraph 1.0 之上 | 自研 | 底层框架 | 自研 |
选型建议:
- 需要完整运行时(不想自己搭 Sandbox、Memory、Skills)→ DeerFlow
- 需要自学习能力(Agent 越用越聪明)→ Hermes Agent
- 需要自定义编排逻辑(你有特殊的图结构需求)→ LangGraph
与工作流平台的对比
DeerFlow 常被拿来与 Dify 和扣子(Coze)比较,但三者的定位和目标用户差异很大:
| 维度 | DeerFlow | Dify | 扣子(Coze) |
|---|---|---|---|
| 定位 | Super Agent Harness | 开源 LLMOps 平台 | AI Bot 开发平台 |
| 目标用户 | 高级开发者 | 开发者为主 | 非技术用户 |
| 工作流编排 | 代码驱动 (Lead Agent) | 可视化 DAG 拖拽 | 可视化流程图 |
| 部署方式 | 自托管 Docker | 自托管/云版 | SaaS 云服务 |
| 编程要求 | 高(Docker + Python) | 中(低代码) | 低(零代码) |
| Sandbox | 原生 Docker 沙箱 | 代码执行沙箱 | 无 |
| 长期记忆 | 自动事实提取 | 知识库 + RAG | 内置跨会话 |
| 开放性 | MIT 开源 | Apache 2.0 开源 | 闭源 |
| 核心场景 | 长时域自治任务 | 知识库/企业 AI | 聊天 Bot/客服 |
选型建议:
- 需要深度自动化,Agent 要"真正干活"(跑代码、写文件、生成交付物)→ DeerFlow
- 需要一个可视化的 LLM 应用搭建平台,以知识库和 RAG 为核心 → Dify
- 零门槛构建聊天 Bot,快速部署到飞书/微信等平台 → 扣子
适用场景
1. Deep Research
DeerFlow 的初心能力。多方向并行探索 + Sub-Agent 独立调研 + Lead Agent 综合报告。特别适合需要大量资料收集和整理的研究任务。
2. 数据流水线
多步骤任务编排,每个步骤一个 Sub-Agent,后一步依赖前一步的输出。Sandbox 环境意味着每个步骤都可以真正运行代码来处理数据。
3. 自动化内容生产
利用内置的幻灯片、网页、图片/视频 Skill,可以从一个主题直接生成多种格式的交付物——研究报告 + 演示文稿 + 配套网页一站搞定。
4. 多步骤开发任务
从需求分析到代码生成到测试执行,每个阶段可以由不同的 Sub-Agent 负责,Lead Agent 统筹全局。
5. 模型兼容性
DeerFlow 支持所有 OpenAI 兼容 API 的 LLM,不绑定特定模型提供商。你可以根据任务类型选择最合适的模型——研究任务用 Claude,代码任务用 GPT,或者混合使用。
不适合的场景
- 轻量级单次任务:启动整个 DeerFlow 容器做一次简单查询,性价比不高
- 交互式对话:如果只是需要聊天体验,DeerFlow 的重型架构偏重
- 低代码环境:团队没有 Docker 和 Python 基础,DeerFlow 不是好选择
思考题
检验你的理解
- [ ] 能说出 DeerFlow 的核心定位和 Harness vs Framework 的区别
- [ ] 能解释 Lead Agent + Sub-Agent 的编排模式
- [ ] 知道 Sandbox 的作用和对比不带 Sandbox 的 Agent 的差异
- [ ] 理解 Skills 的按需加载策略和 Memory 的三层结构
- [ ] 能根据场景判断是否适合使用 DeerFlow
- [ ] 了解 DeerFlow 与 Dify、扣子(Coze)的核心差异
本节小结
通过本节学习,你应该掌握了:
✅ DeerFlow 背景
- 字节跳动出品,MIT 开源,64K+ Stars
- Super Agent Harness 定位 vs 传统 Framework
- 2.0 从 Deep Research 工具升级为通用 Harness
✅ 核心架构
- Lead Agent 调度 + Sub-Agent 并行执行
- 隔离 Docker Sandbox 执行环境
- 按需加载的 Skills 系统
- LLM 驱动的自动事实提取记忆系统
✅ Context Engineering
- 子代理上下文隔离
- 三种中间件(压缩、快照、交付物保护)
✅ 生态定位
- 与 Hermes Agent、LangGraph、OpenManus 的对比
- 与 Dify、扣子的差异化分析
✅ 适用场景
- Deep Research、数据流水线、内容生产
- 不适合轻量交互和低代码环境
