DeerFlow 深度拆解:当字节跳动决定「给 AI 造一台带沙箱的电脑」——从 LangGraph 图引擎到动态子代理编排,一个 52K Star 的开源框架如何用「SuperAgent Harness」重新定义深度研究的终极形态
2026 年 2 月 28 日,字节跳动技术团队将 DeerFlow 2.0 推上 GitHub Trending 榜首。与 1.x 版本没有任何共用代码的彻底重写,标志着项目从「深度研究助手」向「超级智能体执行底座」的战略转型。本文将深入剖析这一框架的架构设计、核心原理与实战部署。
一、背景:AI Agent 从「能说」到「能做」的范式转变
1.1 早期 Agent 框架的困境
2023 年 AutoGPT 横空出世,让人们第一次见识到 AI Agent 的潜力——一个能自主规划、执行任务的智能系统。然而两年过去了,大部分 Agent 框架仍然停留在「能说不能做」的阶段:
执行能力薄弱:大多数 Agent 只能生成文本回复,缺乏真实的代码执行环境。用户问「帮我分析这个数据集」,Agent 给出一堆分析建议,但无法真正运行 Python 脚本处理数据。
上下文管理混乱:长任务执行时容易「遗忘」前期信息。一个需要 30 分钟的研究任务,执行到第 15 分钟时 Agent 可能已经「忘记」了最初的规划。
扩展性不足:LangChain、AutoGPT、CrewAI 各自为政,添加新功能需要深入理解框架内部机制,门槛极高。
安全性缺失:代码执行缺乏隔离,Agent 生成的 rm -rf 命令可能直接在宿主机上执行。
1.2 OpenAI Deep Research 的启示
2025 年初,OpenAI 推出的 Deep Research 功能展示了 AI 在深度研究领域的巨大潜力。它能够自动搜集信息、分析数据、生成报告,将原本需要数小时的研究工作压缩到几分钟。然而 Deep Research 是闭源服务,需要 $20/月的 Plus 订阅,无法自定义和扩展。
这一市场空白催生了开源替代方案的需求。字节跳动技术团队于 2025 年 5 月首次开源 DeerFlow 1.0,定位为「深度研究框架」。经过社区反馈和持续迭代,2026 年 2 月 DeerFlow 2.0 正式发布——一次彻底的重写,与 v1 版本没有共用一行代码。
1.3 DeerFlow 2.0 的定位
DeerFlow(Deep Exploration and Efficient Research Flow)不是一个简单的 Agent 框架,而是一套 SuperAgent Harness(超级智能体装备系统)。它的核心理念是:
给 AI 一台带沙箱的「电脑」,让它自己完成从研究到执行的完整项目。
这种定位与传统 Agent 框架有本质区别——不是让 AI 回答问题,而是让 AI 做事。
二、架构设计:分层解耦的四层体系
2.1 整体架构
DeerFlow 采用四层分层架构,各层职责清晰,耦合度低:
┌─────────────────────────────────────────────────────────────┐
│ 接入层(Access Layer) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Web UI │ │ Telegram │ │ Slack │ │ 飞书/Lark│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼─────────────┼─────────────┼─────────────┼──────────┘
└─────────────┴──────┬──────┴─────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 网关层(Gateway Layer) │
│ nginx 反向代理 → FastAPI Gateway API │
│ 文件上传/下载 · 技能管理 · 记忆查询 · 配置管理 │
└──────────────────────────────┬──────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 运行时层(Runtime Layer) │
│ LangGraph Server + LangChain │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Lead Agent │ │
│ │ 任务规划 · 子代理调度 · 结果整合 · 上下文管理 │ │
│ └──────────────────┬───────────────────────────────────┘ │
│ │ │
│ ┌──────────┬───────┴───────┬──────────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Sub-Agent│ │Sub-Agent│ │Sub-Agent│ │Sub-Agent│ │
│ │ #1 │ │ #2 │ │ #3 │ │ #N │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└──────────────────────────────┬──────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 执行层(Execution Layer) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Sandbox │ │ Tools │ │ Skills │ │
│ │ (Docker) │ │ (MCP/内置) │ │ (Markdown) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
2.2 接入层:多渠道消息网关
DeerFlow 的接入层支持多种消息渠道,通过统一的 Gateway API 转发请求。每个渠道在配置完成后自动启动,不要求公网 IP:
- Web UI:默认运行在
http://localhost:3000,基于 Node.js 22+ 构建 - Telegram:通过 Bot Token 接入
- Slack:通过 App 接入
- 飞书/Lark:通过企业自建应用接入
这种设计意味着你可以从手机上的 Telegram 直接发一条消息,DeerFlow 就会在服务器上启动一个长达数小时的研究任务。
2.3 运行时层:Lead Agent + Sub-Agent 编排
这是 DeerFlow 最核心的设计。运行时层建立在 LangGraph 1.0 之上,采用主代理(Lead Agent)+ 动态子代理(Sub-Agent)的编排模式。
Lead Agent 的核心职责:
- 接收用户请求并理解意图
- 将复杂任务分解为可执行的子任务
- 动态创建和管理子代理
- 汇总子代理结果并生成最终输出
- 管理整体上下文和记忆
Sub-Agent 的执行模型:
每个子代理都在独立的上下文中运行,看不到主代理的完整上下文,也看不到其他子代理的上下文。这种设计带来两个关键好处:
- 专注性:子代理只聚焦当前子任务,不被无关信息干扰
- 安全性:子代理的错误不会影响主代理或其他子代理
# 伪代码:子代理创建与执行
sub_agent = create_sub_agent(
task="搜索关于 AI Agent 框架的最新研究进展",
tools=["web_search", "fetch_webpage"],
context_isolation=True, # 上下文隔离
max_iterations=10
)
result = await sub_agent.run()
2.4 执行层:Docker 沙箱 + MCP 工具 + Skills
执行层是 DeerFlow 真正「做事」的地方,包含三个核心组件:
Docker 沙箱:每个任务都在隔离的 Docker 容器中执行,支持 CPU/内存/网络资源限制,状态快照与恢复。沙箱内提供完整的文件系统:
/mnt/user-data/
├── uploads/ ← 用户上传的文件
├── workspace/ ← Agent 的工作目录
├── outputs/ ← 最终交付物
└── skills/ ← 技能文件(只读挂载)
MCP 工具集成:DeerFlow 完整支持 MCP(Model Context Protocol)协议,这是 Anthropic 开源的 AI 工具调用标准,被誉为 AI 领域的「USB-C 接口」。
Skills 技能系统:采用 Markdown 文件定义工作流,按需渐进加载。Skills 作为声明式文档而非硬编码流程,可以动态添加和替换。
三、核心机制深度解析
3.1 子代理并行调度机制
DeerFlow 的核心创新之一是其子代理调度系统。当面对复杂任务时,主代理会自动进行任务分解,创建多个子代理并行执行。
完整工作流程:
用户请求
│
▼
Lead Agent 分析任务
│
├──► 子任务 1:搜集资料 ──► Sub-Agent 1 ──► 结果 A
├──► 子任务 2:数据分析 ──► Sub-Agent 2 ──► 结果 B
├──► 子任务 3:趋势预测 ──► Sub-Agent 3 ──► 结果 C
└──► 子任务 4:报告撰写 ──► Sub-Agent 4 ──► 结果 D
│
▼
Lead Agent 整合
│
▼
最终研究报告
性能对比:
| 执行模式 | 任务耗时(示例) | 资源利用率 |
|---|---|---|
| 串行执行 | 40 分钟 | 低(单核) |
| DeerFlow 并行 | 12 分钟 | 高(多核) |
| 提升倍数 | 3-5x | 显著提升 |
3.2 分层记忆系统
DeerFlow 的记忆系统模仿人类记忆的分层机制,这是它能处理长时程任务的关键:
| 记忆类型 | 作用 | 存储方式 | 生命周期 |
|---|---|---|---|
| 工作记忆 | 当前任务相关数据 | 上下文窗口 | 单次请求 |
| 短期记忆 | 最近会话记录 | 内存 + 文件 | 当前 Session |
| 长期记忆 | 持久化知识库 | 本地存储 | 跨 Session |
| 程序记忆 | 存储技能与流程 | 文件系统 | 永久 |
上下文工程:
DeerFlow 采用积极的上下文管理策略,确保在长链路、多步骤任务中上下文窗口始终保持「干净」:
- 自动总结:已完成的子任务自动压缩为摘要
- 中间结果转存:将中间结果写入文件系统而非保留在上下文中
- 信息压缩:暂时不重要信息被压缩或移除
- 按需加载:技能文档只在需要时加载到上下文
# 上下文管理策略伪代码
class ContextManager:
def process_subtask_result(self, result, context):
# 1. 压缩历史子任务结果
compressed = self.compress_history(context.subtask_results)
# 2. 将完整结果写入文件系统
self.persist_to_file(result, f"workspace/subtask_{result.id}.md")
# 3. 只保留摘要到上下文
summary = self.summarize(result)
context.update(summary)
# 4. 检查上下文窗口大小
if context.token_count > self.threshold:
context.evict_oldest()
3.3 Skills 技能系统
Skills 是 DeerFlow 能做「几乎任何事」的关键。它采用 Markdown 声明式定义 + LLM 按需读取 的模式。
Skill 文件结构:
---
name: research
version: 1.0.0
author: DeerFlow Team
description: 深度研究技能,支持多角度资料搜集和分析
---
# 研究技能
## 工作流
1. 明确研究主题和目标
2. 使用 web_search 工具搜集资料
3. 使用 fetch_webpage 工具获取详细内容
4. 分析整理信息
5. 生成研究报告
## 最佳实践
- 每次搜索使用不同的关键词组合
- 验证信息来源的可靠性
- 交叉验证关键数据点
Skill 发现与加载机制:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 扫描阶段 │───►│ 解析阶段 │───►│ 注入阶段 │───►│ 按需加载 │
│ loader.py │ │ YAML 元数据 │ │ prompt.py │ │ LLM 决策 │
│ 扫描目录 │ │ 获取描述 │ │ 动态生成 │ │ 只加载需要 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
设计优势:
- 声明式工作流:技能作为文档而非硬编码流程
- 按需加载:节省上下文长度,提高效率
- 渐进式扩展:可以动态添加、替换技能
- 版本管理:支持技能版本控制和兼容性检查
3.4 MCP 协议集成
DeerFlow 完整支持 MCP(Model Context Protocol)协议,支持:
- HTTP/SSE 传输方式
- OAuth token 流程(client_credentials、refresh_token)
- 动态工具发现和调用
# config.yaml 中的 MCP 配置示例
mcp_servers:
- name: filesystem
transport: stdio
command: npx
args: ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/files"]
- name: github
transport: sse
url: https://api.github.com/mcp/sse
headers:
Authorization: Bearer $GITHUB_TOKEN
四、与其他框架的对比分析
4.1 框架定位对比
| 维度 | DeerFlow 2.0 | OpenClaw | AutoGen | CrewAI |
|---|---|---|---|---|
| 核心定位 | 超级智能体执行底座 | 个人 AI 工作站 | 多智能体对话框架 | 基于角色的流程编排 |
| 架构模式 | 主智能体 + 动态子智能体 | 单体智能体 + 插件 | 异步对话驱动 | 顺序/并行任务流 |
| 执行环境 | Docker 沙箱(原生) | 本地宿主环境 | 本地/容器(需配置) | 本地宿主环境 |
| 任务时长 | 长时程(小时级) | 短时程(分钟级) | 中时程(易陷入循环) | 中时程(固定流程) |
| 技能扩展 | Markdown 文件定义 | SOUL.md 配置文件 | Python 函数/类 | Python 类/方法 |
| 安全机制 | 三级隔离(用户/网络/存储) | 基础策略管道 | 依赖外部沙箱 | 无内置沙箱 |
4.2 技术栈对比
| 框架 | 语言 | 底层引擎 | 协议支持 |
|---|---|---|---|
| DeerFlow 2.0 | Python + Node.js | LangGraph 1.0 + LangChain | MCP、OpenAI API |
| OpenClaw | TypeScript | 自研引擎 | 自有协议 |
| AutoGen | Python | 自研对话引擎 | OpenAI API |
| CrewAI | Python | LangChain | OpenAI API |
4.3 适用场景对比
DeerFlow 2.0 最适合:
- 需要长时间运行的深度研究任务
- 涉及代码执行和文件操作的复杂工作流
- 需要多步骤、多工具协作的场景
- 对安全性有要求的生产环境
OpenClaw 最适合:
- 个人 AI 助手场景
- 需要多渠道消息集成
- 短时程的日常任务
AutoGen 最适合:
- 需要多 Agent 对话的场景
- 对话驱动的工作流
CrewAI 最适合:
- 快速搭建角色化流程
- 简单的顺序任务编排
五、实战部署与代码示例
5.1 环境准备
# 1. 克隆仓库
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# 2. 安装 Python 依赖(推荐使用 uv)
pip install uv
uv sync
# 3. 安装前端依赖
cd web
pnpm install
cd ..
# 4. 配置环境变量
cp .env.example .env
cp conf.yaml.example conf.yaml
5.2 配置模型与搜索服务
编辑 .env 文件:
# LLM 配置(支持多种模型)
OPENAI_API_KEY=your-api-key
OPENAI_API_BASE=https://api.openai.com/v1
# 或使用 DeepSeek
DEEPSEEK_API_KEY=your-deepseek-key
# 搜索服务配置
TAVILY_API_KEY=your-tavily-key
# TTS 配置(可选)
TTS_PROVIDER=edge # 或 azure
编辑 conf.yaml 文件:
# 模型配置
llm:
provider: openai
model: gpt-4o
temperature: 0.7
# 搜索配置
search:
provider: tavily
max_results: 10
# 沙箱配置
sandbox:
enabled: true
type: docker
resources:
cpu_limit: "2.0"
memory_limit: "4g"
timeout: 300
5.3 启动服务
# 方式一:控制台模式(快速测试)
uv run main.py
# 方式二:Web UI 模式(推荐)
./bootstrap.sh -d
# 访问 http://localhost:3000
5.4 使用示例:深度研究任务
在 Web UI 中输入:
帮我研究 2026 年 Rust 异步运行时的发展趋势,重点关注 Tokio、async-std 和
Smol 的技术演进,分析各自的优劣势,并生成一份包含代码示例的对比报告。
DeerFlow 会自动:
规划阶段:将任务分解为 4 个子任务
- 搜集 Tokio 最新版本特性
- 搜集 async-std 最新进展
- 搜集 Smol 生态发展
- 对比分析并撰写报告
执行阶段:创建 4 个子代理并行执行
- Sub-Agent 1:调用 web_search 搜索 Tokio 信息
- Sub-Agent 2:调用 web_search 搜索 async-std 信息
- Sub-Agent 3:调用 web_search 搜索 Smol 信息
- Sub-Agent 4:在沙箱中运行 Python 脚本生成对比图表
整合阶段:汇总所有子代理结果,生成最终报告
5.5 自定义 Skill 示例
创建一个自定义研究技能:
# 创建技能目录
mkdir -p skills/custom/my-research
# 创建 Skill 文件
cat > skills/custom/my-research/SKILL.md << 'EOF'
---
name: my-research
version: 1.0.0
description: 自定义技术调研技能
---
# 技术调研技能
## 工作流
1. 分析调研主题,确定关键问题
2. 使用 web_search 搜索权威资料
3. 使用 fetch_webpage 获取技术文档
4. 在沙箱中运行代码验证关键技术点
5. 整理调研结果,生成结构化报告
## 代码验证步骤
对于技术调研,建议在沙箱中运行以下代码验证关键概念:
```python
# 示例:验证 Rust 异步运行时性能
import subprocess
import json
def benchmark_runtime(runtime_name):
"""简单基准测试"""
result = {
"runtime": runtime_name,
"status": "verified"
}
return result
输出格式
报告应包含:
- 技术概述
- 核心特性对比
- 性能数据(如有)
- 适用场景建议
- 代码示例
EOF
---
## 六、性能优化与生产部署
### 6.1 性能优化策略
**并行度优化**:
```yaml
# conf.yaml 中调整并行参数
execution:
max_concurrent_agents: 5 # 最大并发子代理数
agent_timeout: 300 # 单个子代理超时(秒)
retry_count: 2 # 失败重试次数
内存管理:
# 自定义内存管理策略
class OptimizedMemoryManager:
def __init__(self, max_tokens=8000):
self.max_tokens = max_tokens
self.compression_threshold = 0.7
def should_compress(self, context):
"""当上下文超过 70% 时自动压缩"""
return context.token_count > self.max_tokens * self.compression_threshold
def compress(self, context):
"""压缩策略:保留最近 3 个子任务摘要"""
recent_summaries = context.subtask_results[-3:]
old_results = context.subtask_results[:-3]
# 将旧结果写入文件
for result in old_results:
self.persist_to_file(result)
# 只保留摘要
context.subtask_results = [
self.summarize(r) for r in recent_summaries
]
6.2 Docker Compose 生产部署
# docker-compose.prod.yaml
version: '3.8'
services:
deerflow:
build: .
ports:
- "8080:8080"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}
volumes:
- ./data/workspace:/mnt/user-data/workspace
- ./data/skills:/mnt/user-data/skills:ro
deploy:
resources:
limits:
cpus: '4'
memory: 8G
restart: unless-stopped
sandbox:
image: deerflow/sandbox:latest
volumes:
- ./data/workspace:/mnt/user-data/workspace
deploy:
resources:
limits:
cpus: '2'
memory: 4G
restart: unless-stopped
nginx:
image: nginx:alpine
ports:
- "443:443"
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/nginx/certs
depends_on:
- deerflow
restart: unless-stopped
6.3 监控与可观测性
# 集成 Prometheus 监控
from prometheus_client import Counter, Histogram, generate_latest
# 指标定义
TASK_COUNT = Counter('deerflow_tasks_total', 'Total tasks processed', ['status'])
TASK_DURATION = Histogram('deerflow_task_duration_seconds', 'Task duration', ['task_type'])
AGENT_COUNT = Counter('deerflow_agents_created_total', 'Total agents created')
# 在 Lead Agent 中埋点
class MonitoredLeadAgent:
def execute_task(self, task):
with TASK_DURATION.labels(task_type=task.type).time():
try:
result = self._execute(task)
TASK_COUNT.labels(status='success').inc()
return result
except Exception as e:
TASK_COUNT.labels(status='failure').inc()
raise
七、安全机制深度分析
7.1 三级隔离架构
DeerFlow 采用三级隔离机制确保安全性:
第一级:用户隔离
不同用户的任务完全隔离,包括文件系统、网络访问和资源配额。
第二级:网络隔离
沙箱容器默认不具有宿主机网络访问权限,只能通过白名单访问外部服务。
第三级:存储隔离
每个任务的文件系统独立挂载,任务结束后可选择清理或保留。
# 沙箱安全配置
sandbox_config = {
"isolation_level": "strict",
"network": {
"mode": "bridge",
"whitelist": ["api.openai.com", "api.tavily.com"],
"dns": ["8.8.8.8"]
},
"storage": {
"workspace_size": "10G",
"cleanup_on_exit": True,
"allowed_paths": ["/mnt/user-data/workspace"]
},
"resources": {
"cpu_limit": "2.0",
"memory_limit": "4g",
"pid_limit": 100
}
}
7.2 代码执行安全
所有用户代码都在沙箱中执行,具有以下安全特性:
- 资源限制:CPU、内存、磁盘空间、进程数均有上限
- 超时控制:单次执行最长 5 分钟,可配置
- 网络限制:默认禁止外部网络访问
- 文件系统限制:只能访问指定目录
八、未来展望与生态演进
8.1 短期路线图(2026 Q3-Q4)
- 多模态支持:集成图像理解和生成能力
- 协作编辑:支持多人同时与 Agent 协作
- 插件市场:社区贡献的 Skills 和 Tools 市场
8.2 中期愿景(2027)
- 自主学习:Agent 从执行结果中学习,自动优化工作流
- 跨组织协作:多个 DeerFlow 实例之间的协作
- 边缘部署:支持在边缘设备上运行轻量级 Agent
8.3 技术趋势判断
DeerFlow 2.0 的出现反映了 AI Agent 领域的几个重要趋势:
- 从对话到执行:Agent 不再只是聊天机器人,而是真正的执行者
- 从单体到分布式:动态子代理编排成为标配
- 从开放到安全:沙箱隔离和权限控制成为刚需
- 从封闭到开放:MCP 等开放协议推动生态互通
九、总结
DeerFlow 2.0 代表了 AI Agent 框架发展的一个重要方向——从「能说」到「能做」的范式转变。通过 LangGraph 图引擎、动态子代理编排、Docker 沙箱执行和 Skills 技能系统,DeerFlow 构建了一个完整的 SuperAgent 执行底座。
对于开发者而言,DeerFlow 的价值在于:
- 开箱即用:配置即可运行,无需深入理解 Agent 内部机制
- 安全可控:三级隔离机制确保代码执行安全
- 高度可扩展:Skills 和 MCP 支持灵活扩展功能
- 生产就绪:Docker 部署、监控集成、资源限制等生产级特性
对于行业而言,DeerFlow 的意义在于:
- 开源替代:为 OpenAI Deep Research 提供了开源替代方案
- 生态推动:MCP 协议的完整支持推动了 AI 工具生态的互通
- 范式定义:SuperAgent Harness 的定位为 Agent 框架设定了新的标准
如果你正在寻找一个能真正「做事」的 AI Agent 框架,DeerFlow 2.0 值得认真评估。它不仅仅是一个工具,更代表了 AI Agent 从实验室走向生产环境的关键一步。
项目地址:https://github.com/bytedance/deer-flow
官方文档:https://deerflow.one
许可证:MIT License
技术栈:Python 3.12+ / Node.js 22+ / LangGraph 1.0 / Docker / MCP