🦌 DeerFlow 2.0 架构分析报告

报告生成时间:2026-04-02

项目版本:DeerFlow 2.0 (彻底重写版)

GitHub: bytedance/deer-flow

分析范围:后端架构、前端架构、核心模块、扩展系统

📑 目录

1. 执行摘要

DeerFlow 2.0 是字节跳动开源的 Super Agent Harness 框架,从 Deep Research 工具演进为通用的 Agent 运行时基础设施。基于 LangGraph 和 LangChain 构建,提供开箱即用的多 Agent 编排能力。

核心定位:DeerFlow 不只是一个研究工具,而是一个真正让 Agents 把事情做完的运行时基础设施。

关键特性

2. 系统架构概览

┌──────────────────────────────────────────────────────────────────────────┐ │ Client (Browser) │ └─────────────────────────────────┬────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────────────┐ │ Nginx (Port 2026) │ │ 统一反向代理入口 │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ /api/langgraph/* → LangGraph Server (2024) │ │ │ │ /api/* → Gateway API (8001) │ │ │ │ /* → Frontend (3000) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────┬────────────────────────────────────────┘ │ ┌───────────────────────┼───────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ │ LangGraph Server │ │ Gateway API │ │ Frontend │ │ (Port 2024) │ │ (Port 8001) │ │ (Port 3000) │ │ │ │ │ │ │ │ - Agent Runtime │ │ - Models API │ │ - Next.js App │ │ - Thread Mgmt │ │ - MCP Config │ │ - React UI │ │ - SSE Streaming │ │ - Skills Mgmt │ │ - Chat Interface │ │ - Checkpointing │ │ - File Uploads │ │ │ │ │ │ - Thread Cleanup │ │ │ │ │ │ - Artifacts │ │ │ └─────────────────────┘ └─────────────────────┘ └─────────────────────┘

端口规划

端口 服务 协议 说明
2026 Nginx HTTP/WS 统一入口,反向代理
2024 LangGraph Server HTTP/SSE Agent 运行时,核心引擎
8001 Gateway API HTTP REST API,非 Agent 操作
3000 Frontend HTTP Next.js 前端应用

3. 后端架构详解

3.1 技术栈

Python 3.12+ YAML JSON

核心依赖

3.2 目录结构

backend/
├── app/                          # 应用层
│   ├── gateway/                  # Gateway API
│   │   ├── app.py               # FastAPI 应用入口
│   │   ├── routers/             # API 路由
│   │   │   ├── agents.py        # Agents 管理
│   │   │   ├── mcp.py           # MCP 配置
│   │   │   ├── skills.py        # Skills 管理
│   │   │   ├── threads.py       # Threads 管理
│   │   │   ├── uploads.py       # 文件上传
│   │   │   └── ...
│   │   └── services.py          # 业务服务
│   └── channels/                 # IM 渠道
│       ├── manager.py           # 渠道管理器
│       ├── telegram.py          # Telegram Bot
│       ├── slack.py             # Slack Bot
│       └── feishu.py            # 飞书 Bot
├── packages/harness/deerflow/   # 核心 Harness
│   ├── agents/                  # Agent 系统
│   │   ├── lead_agent/          # Lead Agent
│   │   ├── middlewares/         # 中间件链
│   │   ├── memory/              # 记忆系统
│   │   └── checkpointer/        # 检查点
│   ├── tools/                   # 工具系统
│   │   └── builtins/            # 内置工具
│   ├── subagents/               # Sub-Agent 系统
│   │   └── builtins/            # 内置 Sub-Agent
│   ├── sandbox/                 # 沙箱系统
│   │   └── local/               # 本地沙箱
│   ├── skills/                  # Skills 系统
│   ├── models/                  # 模型工厂
│   ├── mcp/                     # MCP 客户端
│   ├── config/                  # 配置系统
│   └── runtime/                 # 运行时
│       ├── store/               # 状态存储
│       ├── runs/                # 运行管理
│       └── stream_bridge/       # 流式桥接
└── tests/                       # 测试

3.3 Agent 架构

┌─────────────────────────────────────────────────────────────────────────┐ │ make_lead_agent(config) │ └────────────────────────────────────┬────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ Middleware Chain │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ 1. ThreadDataMiddleware - 初始化 workspace/uploads/outputs │ │ │ │ 2. UploadsMiddleware - 处理上传文件 │ │ │ │ 3. SandboxMiddleware - 获取沙箱环境 │ │ │ │ 4. SummarizationMiddleware - 上下文压缩 (如启用) │ │ │ │ 5. TitleMiddleware - 自动生成标题 │ │ │ │ 6. TodoListMiddleware - 任务追踪 (plan_mode) │ │ │ │ 7. ViewImageMiddleware - 视觉模型支持 │ │ │ │ 8. ClarificationMiddleware - 澄清处理 │ │ │ └──────────────────────────────────────────────────────────────────┘ │ └────────────────────────────────────┬────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ Agent Core │ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐ │ │ │ Model │ │ Tools │ │ System Prompt │ │ │ │ (from factory) │ │ (configured + │ │ (with skills) │ │ │ │ │ │ MCP + builtin) │ │ │ │ │ └──────────────────┘ └──────────────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────┘

ThreadState 结构

class ThreadState(AgentState):
    messages: list[BaseMessage]      # 消息历史
    sandbox: dict                    # 沙箱环境信息
    artifacts: list[str]             # 生成的文件路径
    thread_data: dict                # {workspace, uploads, outputs}
    title: str | None                # 自动生成的标题
    todos: list[dict]                # 任务追踪 (plan mode)
    viewed_images: dict              # 视觉模型图像数据

3.4 Sandbox 系统

模式 实现 场景 隔离级别
Local LocalSandboxProvider 开发环境 进程级
Docker AioSandboxProvider 生产环境 容器级
Kubernetes Provisioner 大规模部署 Pod 级

虚拟路径映射

虚拟路径 物理路径
/mnt/user-data/workspace backend/.deer-flow/threads/{thread_id}/user-data/workspace
/mnt/user-data/uploads backend/.deer-flow/threads/{thread_id}/user-data/uploads
/mnt/user-data/outputs backend/.deer-flow/threads/{thread_id}/user-data/outputs
/mnt/skills deer-flow/skills/

3.5 工具系统

工具来源

4. 前端架构详解

4.1 技术栈

TypeScript React 19 Next.js 16

核心依赖

4.2 目录结构

frontend/
├── src/
│   ├── app/                      # Next.js App Router
│   │   ├── api/                  # API 路由
│   │   │   ├── auth/             # 认证
│   │   │   └── memory/           # 记忆 API
│   │   ├── workspace/            # 工作区页面
│   │   ├── layout.tsx            # 根布局
│   │   └── page.tsx              # 首页
│   ├── components/               # React 组件
│   │   ├── workspace/            # 工作区组件
│   │   │   ├── messages/         # 消息列表
│   │   │   ├── artifacts/        # 工件展示
│   │   │   ├── agents/           # Agent 卡片
│   │   │   └── settings/         # 设置页面
│   │   ├── ui/                   # 基础 UI 组件
│   │   └── ai-elements/          # AI 元素
│   ├── core/                     # 核心逻辑
│   │   ├── agents/               # Agent 状态
│   │   ├── threads/              # Thread 管理
│   │   ├── messages/             # 消息处理
│   │   ├── tools/                # 工具调用
│   │   ├── memory/               # 记忆管理
│   │   ├── skills/               # Skills 状态
│   │   ├── mcp/                  # MCP 状态
│   │   └── api/                  # API 客户端
│   ├── hooks/                    # 自定义 Hooks
│   ├── lib/                      # 工具库
│   ├── styles/                   # 全局样式
│   └── typings/                  # 类型定义
├── public/                       # 静态资源
└── package.json

4.3 核心模块

Threads 管理 (frontend/src/core/threads/)

消息系统 (frontend/src/core/messages/)

工作区组件 (frontend/src/components/workspace/)

5. 核心模块分析

5.1 Sub-Agent 系统

目录结构

backend/packages/harness/deerflow/subagents/
├── executor.py          # Sub-Agent 执行器 (21KB)
├── registry.py          # Sub-Agent 注册表
├── config.py            # 配置
└── builtins/
    ├── general_purpose.py  # 通用 Sub-Agent
    └── bash_agent.py       # Bash 执行 Agent

执行流程

  1. Lead Agent 分析任务,决定是否需要 Sub-Agent
  2. 创建 Sub-Agent 配置(独立上下文、工具、终止条件)
  3. 并行执行多个 Sub-Agent(条件允许时)
  4. Sub-Agent 返回结构化结果
  5. Lead Agent 汇总结果,生成最终输出

5.2 记忆系统

目录结构

backend/packages/harness/deerflow/agents/memory/
├── storage.py           # 记忆存储 (7KB)
├── updater.py           # 记忆更新器 (17KB)
├── queue.py             # 记忆队列 (7KB)
└── prompt.py            # 记忆提示词 (15KB)

记忆类型

记忆更新策略

5.3 Skills 系统

目录结构

backend/packages/harness/deerflow/skills/
├── installer.py         # Skills 安装器 (6KB)
├── loader.py            # Skills 加载器 (4KB)
├── parser.py            # Skills 解析器 (2KB)
├── types.py             # 类型定义 (2KB)
└── validation.py        # 验证器 (3KB)

Skills 分类

类别 路径 示例
内置 Skills skills/public/ deep-research, report-generation
自定义 Skills skills/custom/ 用户自定义工作流

内置 Skills 列表

5.4 中间件系统

目录结构

backend/packages/harness/deerflow/agents/middlewares/
├── thread_data_middleware.py       # Thread 数据初始化
├── uploads_middleware.py           # 文件上传处理
├── sandbox_audit_middleware.py     # 沙箱审计
├── summarization_middleware.py     # 上下文摘要
├── title_middleware.py             # 标题生成
├── todo_middleware.py              # 任务追踪
├── view_image_middleware.py        # 图像查看
├── clarification_middleware.py     # 澄清处理
├── memory_middleware.py            # 记忆注入
├── tool_error_handling_middleware.py # 工具错误处理
└── ...

中间件执行顺序

  1. ThreadDataMiddleware - 初始化工作目录
  2. UploadsMiddleware - 处理上传文件
  3. SandboxMiddleware - 获取沙箱环境
  4. SummarizationMiddleware - 上下文压缩
  5. TitleMiddleware - 生成标题
  6. TodoListMiddleware - 任务追踪
  7. ViewImageMiddleware - 视觉支持
  8. ClarificationMiddleware - 澄清处理

5.5 配置系统

目录结构

backend/packages/harness/deerflow/config/
├── app_config.py          # 应用配置 (14KB)
├── agents_config.py       # Agent 配置
├── model_config.py        # 模型配置
├── sandbox_config.py      # 沙箱配置
├── skills_config.py       # Skills 配置
├── memory_config.py       # 记忆配置
├── subagents_config.py    # Sub-Agent 配置
├── extensions_config.py   # 扩展配置 (11KB)
└── paths.py               # 路径管理 (12KB)

配置文件

6. 扩展系统

6.1 MCP (Model Context Protocol)

目录结构

backend/packages/harness/deerflow/mcp/
├── client.py            # MCP 客户端
├── cache.py             # MCP 缓存
├── oauth.py             # OAuth 认证
└── tools.py             # MCP 工具

支持的认证方式

6.2 IM 渠道集成

目录结构

backend/app/channels/
├── manager.py           # 渠道管理器 (31KB)
├── base.py              # 基础类
├── service.py           # 渠道服务
├── telegram.py          # Telegram (13KB)
├── slack.py             # Slack (9KB)
├── feishu.py            # 飞书 (25KB)
└── message_bus.py       # 消息总线

支持渠道

渠道 传输方式 难度
Telegram Bot API (long-polling) 简单
Slack Socket Mode 中等
飞书/Lark WebSocket 中等

渠道命令

6.3 Community 贡献

目录结构

backend/packages/harness/deerflow/community/
├── aio_sandbox/         # 异步沙箱
├── ddg_search/          # DuckDuckGo 搜索
├── tavily/              # Tavily 搜索
├── jina_ai/             # Jina AI 工具
├── firecrawl/           # Firecrawl 爬取
├── image_search/        # 图像搜索
└── infoquest/           # InfoQuest 搜索

7. 部署架构

7.1 Docker 部署

目录结构

docker/
├── docker-compose.yaml        # 生产环境编排
├── docker-compose-dev.yaml    # 开发环境编排
├── nginx/
│   └── nginx.local.conf       # Nginx 配置
└── provisioner/               # Kubernetes Provisioner

开发模式启动

# 初始化沙箱镜像
make docker-init

# 启动服务
make docker-start

生产模式启动

# 构建并启动
make up

# 停止服务
make down

7.2 本地开发

# 检查依赖
make check

# 安装依赖
make install

# 启动服务
make dev

7.3 脚本工具

scripts/
├── serve.sh                    # 启动服务脚本
├── config-upgrade.sh           # 配置升级
├── cleanup-containers.sh       # 容器清理
├── docker.sh                   # Docker 工具
├── deploy.sh                   # 部署脚本
├── start-daemon.sh             # 守护进程启动
└── wait-for-port.sh            # 端口等待

8. 安全机制

8.1 Sandbox 隔离

8.2 访问控制

8.3 数据安全

⚠️ 安全警告: DeerFlow 具备系统指令执行、资源操作等高权限能力,默认设计为部署在本地可信环境(仅本机 127.0.0.1 回环访问)。部署到公网必须采取严格安全措施(IP 白名单、前置认证、网络隔离)。

9. 总结与建议

9.1 架构优势

9.2 技术亮点

9.3 适用场景

9.4 改进建议

总体评价: DeerFlow 2.0 是一个设计精良、功能强大的 Super Agent Harness 框架。从 Deep Research 工具成功转型为通用 Agent 运行时,展现了优秀的架构演进能力。适合需要构建复杂 Agent 工作流的团队使用。

报告生成时间:2026-04-02 | DeerFlow 2.0 架构分析 | 基于 GitHub 最新版本