🊌 DeerFlow 2.0 深床解析字节跳劚匀源的"超级 Agent harness"架构揭秘

4 阅读6分钟

🊌 DeerFlow 2.0 深床解析字节跳劚匀源的"超级 Agent harness"架构揭秘

2026幎2月28日DeerFlow 登顶 GitHub Trending #1 —— 这䞪来自字节跳劚的匀源项目凭什么匕爆匀发者瀟区


📌 䞀、项目定䜍从 Deep Research 到 Super Agent Harness

DeerFlow 的党称是 Deep Exploration and Efficient Research Flow䜆它已经远远超出了䞀䞪"深床研究框架"的范畎。

栞心定䜍蜬变

  • v1.x: 深床研究框架Deep Research Framework
  • v2.0: 超级 Agent Harness —— 䞀䞪完敎的智胜䜓运行时基础讟斜

官方自述"DeerFlow 䞍再是䞀䞪需芁䜠自行组装的框架而是䞀䞪匀箱即甚的超级 Agent 基础讟斜——电池已包含完党可扩展。"


🏗 二、敎䜓架构四层埮服务讟计

┌─────────────────────────────────────────┐
│         Nginx (Port 2026)              │
│         统䞀反向代理入口                 │
└───────┬──────────────────┬──────────────┘
        │                  │
        ▌                  ▌
┌─────────────────┐  ┌──────────────────────┐
│ LangGraph Server│  │   Gateway API        │
│  (Port 2024)    │  │   (Port 8001)        │
│                 │  │                      │
│  ┌───────────┐  │  │  Models / MCP /      │
│  │Lead Agent │  │  │  Skills / Memory     │
│  │Middleware │  │  │  Uploads / Artifacts │
│  │   Chain   │  │  └──────────────────────┘
│  │  (18层)   │  │
│  └───────────┘  │
└─────────────────┘
        │
        ▌
┌─────────────────┐
│  Frontend       │
│ (Next.js 3000)  │
└─────────────────┘

䞀种运行暡匏

暡匏进皋数特点适甚场景
Standard4Gateway + LangGraph 分犻生产环境需芁 LangGraph Platform
Gateway3Gateway 嵌入 Agent 运行时资源敏感启劚曎快

🧠 䞉、栞心技术架构拆解

1. Agent 系统18层䞭闎件流氎线

DeerFlow 的 Lead Agent 采甚了䞥栌的䞭闎件铟匏架构共 18 䞪䞭闎件按序执行

# 䞭闎件执行顺序关键郚分
1. ThreadDataMiddleware      # 创建线皋隔犻目圕
2. UploadsMiddleware         # 泚入䞊䌠文件
3. SandboxMiddleware         # 获取沙箱环境
4. DanglingToolCallMiddleware    # 倄理䞭断工具调甚
5. LLMErrorHandlingMiddleware    # 错误规范化
6. GuardrailMiddleware       # 安党策略检查
7. SandboxAuditMiddleware    # 沙箱审计日志
8. ToolErrorHandlingMiddleware   # 工具错误恢倍
9. SummarizationMiddleware   # 䞊䞋文摘芁
10. TodoListMiddleware       # 任务远螪Plan Mode
11. TokenUsageMiddleware     # Token 甚量记圕
12. TitleMiddleware          # 自劚生成标题
13. MemoryMiddleware         # 记忆提取队列
14. ViewImageMiddleware      # 囟像泚入倚暡态
15. DeferredToolFilterMiddleware  # 延迟工具过滀
16. SubagentLimitMiddleware  # 子 Agent 并发限制
17. LoopDetectionMiddleware  # 埪环检测
18. ClarificationMiddleware  # 柄枅请求拊截

讟计哲孊每䞪䞭闎件只倄理䞀䞪暪切关泚点通过 before/after 钩子实现 AOP 匏猖皋。


2. 沙箱系统䞉层隔犻架构

┌─────────────────────────────────────────┐
│  Agent View (Virtual Paths)            │
│  /mnt/user-data/workspace              │
│  /mnt/user-data/uploads                │
│  /mnt/user-data/outputs                │
│  /mnt/skills                           │
└─────────────────┬───────────────────────┘
                  │ 路埄映射
                  ▌
┌─────────────────────────────────────────┐
│  Sandbox Provider                      │
│  ├─ LocalSandboxProvider               │
│  └─ AioSandboxProvider (Docker/K8s)   │
└─────────────────┬───────────────────────┘
                  │ 物理存傚
                  ▌
┌─────────────────────────────────────────┐
│  Host Filesystem                       │
│  backend/.deer-flow/threads/{id}/      │
└─────────────────────────────────────────┘

安党讟计

  • 虚拟路埄系统隔犻 Agent 䞎宿䞻
  • str_replace 操䜜按 (sandbox_id, path) 序列化避免并发冲突
  • 支持 Docker/Kubernetes 容噚化沙箱

3. 记忆系统LLM 驱劚的长期记忆

数据结构存傚于 memory.json

{
  "userContext": {
    "workContext": "...",
    "personalContext": "...",
    "topOfMind": "1-3句话摘芁"
  },
  "history": {
    "recentMonths": [],
    "earlierContext": [],
    "longTermBackground": []
  },
  "facts": [
    {
      "id": "uuid",
      "content": "甚户偏奜...",
      "category": "preference/knowledge/context/behavior/goal",
      "confidence": 0.85,
      "createdAt": "2026-01-01T00:00:00Z",
      "source": "conversation"
    }
  ]
}

工䜜流皋

  1. MemoryMiddleware 过滀消息甚户蟓入 + AI 回倍
  2. 防抖队列默讀 30s批量倄理
  3. 后台线皋调甚 LLM 提取事实
  4. 原子写入䞎时文件 + rename
  5. 䞋次对话泚入 Top 15 事实

4. 子 Agent 系统并发任务分解

并发暡型

  • 双线皋池讟计调床池3 workers+ 执行池3 workers
  • 最倧并发3 䞪子 Agent
  • 超时15 分钟

执行流皋

Lead Agent 调甚 task() 工具
       ↓
SubagentExecutor 调床
       ↓
后台线皋执行子 Agent
       ↓
5秒蜮询 + SSE 事件流
       ↓
返回结构化结果

内眮 Agent 类型

  • general-purpose: 党工具集陀 task
  • bash: 呜什行䞓家仅圚启甚 shell 时可甚

5. 工具系统四层工具生态

┌─────────────────────────────────────────┐
│  Config-defined Tools                  │
│  (config.yaml 䞭配眮)                  │
├──────────────────────────────────────────
│  MCP Tools                             │
│  (Model Context Protocol 服务噚)        │
├──────────────────────────────────────────
│  Built-in Tools                        │
│  present_files / ask_clarification     │
│  view_image / task (子Agent)           │
├──────────────────────────────────────────
│  Community Tools                       │
│  Tavily / Jina AI / Firecrawl          │
│  DuckDuckGo / AioSandbox               │
└─────────────────────────────────────────┘

MCP 集成亮点

  • 支持 stdio / SSE / HTTP 䞉种䌠蟓
  • OAuth 自劚刷新client_credentials / refresh_token
  • 懒加蜜 + mtime 猓存倱效

🔧 四、技术栈选型解析

层级技术选型理由
Agent 框架LangGraph 1.0.6+状态机驱劚的倚 Agent 猖排
LLM 抜象LangChain 1.2.3+统䞀的工具调甚接口
API 层FastAPI 0.115+高性胜匂步 Python 框架
前端Next.js + Node.js 22+SSR + API 路由
包管理uv (Python) / pnpm (Node)极速䟝赖安装
沙箱agent-sandbox / Docker安党代码执行
文档蜬换markitdownPDF/PPT/Excel → Markdown

🚀 五、郚眲架构建议

资源配眮矩阵

场景起步配眮掚荐配眮倇泚
本地匀发4 vCPU / 8 GB8 vCPU / 16 GB2vCPU/4GB 通垞䞍足
Docker 匀发4 vCPU / 8 GB / 25GB SSD8 vCPU / 16 GB镜像构建需芁额倖空闎
生产服务噚8 vCPU / 16 GB / 40GB SSD16 vCPU / 32 GB倚 Agent 并发场景

眑络拓扑

┌─────────────┐     ┌─────────────┐     ┌─────────────────┐
│   Client    │────▶│   Nginx     │────▶│   Frontend      │
└─────────────┘     │  (Port 2026)│     └─────────────────┘
                    ├──────────────     ┌─────────────────┐
                    │ /api/langgraph│───▶│  LangGraph      │
                    │ /api/*        │───▶│  Gateway API    │
                    └─────────────┘     └─────────────────┘

💡 六、架构讟计亮点

1. Harness / App 分层架构

┌─────────────────────────────────────────┐
│  App Layer (app.*)                     │
│  Gateway API / IM Channels             │
│  (FastAPI / Feishu / Slack / TG)       │
├──────────────────────────────────────────
│  Harness Layer (deerflow.*)            │
│  Agent / Sandbox / Tools / MCP         │
│  (可独立发垃䞺 deerflow-harness 包)      │
└─────────────────────────────────────────┘

关键纊束App 可以富入 deerflow䜆 deerflow 绝䞍胜富入 appCI 区制检查

2. 配眮热重蜜

config.yaml 修改后无需重启服务通过 mtime 检测自劚重蜜

get_app_config()  # 猓存 + 自劚倱效

3. 嵌入匏客户端

无需启劚 HTTP 服务盎接嵌入 Python 代码

from deerflow.client import DeerFlowClient
client = DeerFlowClient()
response = client.chat("分析这篇论文", thread_id="my-thread")

4. Gateway 䞀臎性测试

TestGatewayConformance 确保嵌入匏客户端䞎 HTTP API 返回栌匏完党䞀臎Pydantic 暡型双向验证。


📊 䞃、䞎同类项目对比

特性DeerFlow 2.0AutoGPTLangGraph StudioDify
子 Agent 猖排✅ 内眮并发❌ 需自行实现✅ 可视化✅ 工䜜流
沙箱执行✅ 倚暡匏支持✅ 有限❌❌
长期记忆✅ LLM 驱劚⚠ 向量存傚❌✅ 简单
MCP 支持✅ 完敎 OAuth❌❌⚠ 郚分
IM 集成✅ 5 倧平台❌❌✅ 郚分
技胜系统✅ Markdown 定义❌❌⚠ Prompt 管理

🎯 八、适甚场景

  1. 深床研究倚源信息聚合、报告生成、眑页蜬 PPT/幻灯片
  2. 数据分析沙箱内执行 Python/R 代码、生成可视化
  3. 内容生产文章撰写、视频脚本、倚暡态内容生成
  4. 自劚化工䜜流定时任务、邮件倄理、IM 机噚人
  5. 䌁䞚知识库长期记忆 + 文档䞊䌠 + 结构化问答

🔐 九、安党譊瀺

⚠ 重芁DeerFlow 默讀讟计甚于本地可信环境127.0.0.1具倇系统呜什执行、文件读写、䞚务逻蟑调甚等高权限胜力。

生产郚眲必须

  • IP 癜名单iptables / ACL
  • 反向代理 + 区讀证
  • VLAN 眑络隔犻
  • 穁甹 LocalSandboxProvider 的 bash 执行改甚 Docker 沙箱

📝 总结

DeerFlow 2.0 代衚了圓前匀源 Agent 框架的工皋化巅峰

  • ✅ 架构枅晰18 层䞭闎件、Harness/App 分层、配眮驱劚
  • ✅ 生产就绪倚暡匏郚眲、热重蜜、完敎监控LangSmith/Langfuse
  • ✅ 生态匀攟MCP 协议、Skills 扩展、倚 IM 集成
  • ✅ 安党可控倚级沙箱、Guardrail 䞭闎件、审计日志

GitHub: github.com/bytedance/d

官眑: deerflow.tech
License: MIT


本文基于 DeerFlow 2.0 源码及官方文档深床解析劂有错挏欢迎指正。