deer-flow

https://github.com/bytedance/deer-flow

我想说:每一次真正的技术革命,拼的从来不是谁先用了什么工具,而是谁真正理解了底层的原理。 OpenClaw 很酷,但它并不神秘。如果你理解了 DeerFlow 2.0 的架构——Lead Agent + Middleware + Sub-agent + Sandbox——你会发现,在这个 Harness 之上,加一个 MessageProxy 做消息路由,加一个 TaskDispatcher + Cronjob + Heartbeat 做任务调度和健康检查,你就能实现自己的 OpenClaw。这不是夸张,这就是 Harness 的意义:地基打好了,上面盖什么楼,取决于你的想象力。 所以,与其追赶每一个新产品的 FOMO,不如静下心来把 Agent 的基础打扎实。理解 ReAct 循环,理解上下文工程,理解工具调用和沙箱隔离,理解 Sub-agent 的分治思想。这些东西不会过时,因为它们是所有 Agent 系统的共同地基。

2025 年 5 月 DeerFlow 横空出世,升级了前后端架构,在不到 10 天内 Star 数突破了 10k,LangChain 的作者 Harrison 也亲自转发了我们的 Tweet,在行业内外掀起了一股“ 逐鹿”浪潮。
前言

勇攀高峰

https://github.com/bytedance/deer-flow
https://github.com/bytedance/deer-flow
https://github.com/bytedance/deer-flow

https://github.com/bytedance/deer-flowgithub.com/bytedance/deer-flow

截止到发稿前,DeerFlow 已获得超过 25k Star登上了 2 月 28 日 GitHub Trending 的榜首,或为目前世界上最流行的 Super Agent 或 Deep Research Agent 框架之一。此外,DeerFlow 先后与 2025 火山大会、火山 FaaS、火山 Sandbox、火山 InfoQuest 服务、Open Viking、AIO Sandbox 联动,在各大技术社区中,也发挥着积极作用。

然而,抱着一颗技术敬畏之心,我们深知 Agent 技术发展迅猛,团队从未满足或打算停留于此

DeerFlow 1.0 最初的定位很明确:做一个深度研究框架,不做那种抓一把搜索结果做个摘要就完事的 Chatbot,而是让 AI 像研究员一样——制定调研计划,分头搜集信息,交叉验证,最后交付一份有结构、有引用、有深度的报告。为此,我们设计了由 Agent 组成的研究团队(Research Agent Team),用 LangGraph 的 StateGraph 和 Handoffs 模式来编排它们的协作流程。 开源之后,社区的玩法迅速超出了我们的预期。有人拿 DeerFlow 搭数据分析 pipeline,有人批量生成 PPT,有人做自动化内容工厂,甚至有人接到内部系统做运维巡检。这些用法千差万别,但都指向同一件事:它们不是“一问一答”,而是需要 Agent 持续规划、调度子任务、操作文件、执行代码,最终交付一个完整产出物。 换句话说,大家真正在用的不是 DeerFlow 的“Research”能力——而是它底下那套让 Agent 能真正做事的运行时基础设施。这让我们意识到:

Deep Research 只是 DeerFlow 的第一个技能(Skill),而不是它的全部。于是我们做了一个大胆的决定:从头重写。


从头再来

本视频由 DeerFlow 通过深度研究自己的代码仓库生成 AIGC prompt,并通过 Seedance 2.0 生成视频

https://github.com/bytedance/deer-flowgithub.com/bytedance/deer-flow

说干就干,2026 年春节假期期间,正当整个世界都在 OpenClaw 的 FOMO 情绪中,我们秉持冷静而创新的技术态度,就这样 DeerFlow 2.0 横空出世。DeerFlow 2.0 与 1.0 不共享任何一行代码,完全重新设计架构,并且大规模启用了 AI Coding 和 Spec Coding。我们不再把自己定位为一个 Deep Research 框架,而是一个 Super Agent Harness——一个开箱即用、完全可扩展的超级智能体运行时。它基于 LangGraph 构建,本质是一个支持 Skills、Memory 的 Coding Agent——是的,一个编程智能体,出厂即包含一个 Agent 完成复杂 long-horizon 任务所需的一切:

  • 可插拔的 Skill 体系:随着 OpenClaw 的火爆,大家已经熟知了 Skill,在 DeerFlow 2.0 里,Research 只是其中一个 Skill,你可以添加任何 Skill
  • 沙箱化的执行环境与文件系统:Agent 拥有自己的计算机
  • 子 Agent 调度(Sub-agent):复杂任务自动分解,多个子 Agent 并行执行
  • 长期记忆:跨会话记住你的偏好、风格和知识
  • 上下文工程:隔离、摘要、压缩,让 Agent 在长任务中始终保持专注

如果 1.0 是一个专注于深度研究的 Multi-Agent 团队,那 2.0 就是一个什么都能干的 Super Agent,而深度研究不过是它的技能之一。

更多演示,请在我们的官网上,点击“Get Started”查看更多示例近期因为 DeerFlow 在外网火爆,经常过载,已关闭了免费试用,还请见谅。

概念解释

DeerFlow 团队自始至终理性看待 OpenClaw、OpenCode 等最近引发的 FOMO 情绪,在这里仅列出我们认为 2026 年重要的 Agent 概念。
什么是 Harness

Harness 是一个相对较新的概念(不过对于做过 SWE-bench 等大语言模型评测的同学来说并不陌生),可以理解为“batteries included”的 Agent 运行时环境。与 Framework 相比,Harness 更加”opinionated”——它不仅提供抽象,还内置了最佳实践。 以 LangChain 的 Deep Agents 为例,一个典型的 Harness 包含:

  1. 内置的 Planning Tool:Agent 默认拥有规划能力
  2. Compaction 机制:当上下文窗口不够用时,自动进行压缩和摘要
  3. File System 工具:让 Agent 能够与文件系统交互
  4. Starter Prompts:预设的高质量提示词模板
  5. Memory 系统:跨会话的记忆能力
  6. Sub-agents 机制:子任务的自动分发和协调

DeerFlow 2.0 以及 LangChain 的 DeepAgents 都属于 Harness 的概念,而 LangChain 和 LangGraph 则属于 Framework,即框架。

什么是 Long-horizon

无论是 DeerFlow 2.0,还是 OpenClaw、Claude Code 以及其他所有的 Coding Agent 都可以被视为是 Long-horizon Agent(长程智能体)

  • 运行时间更长:不再是“调用一次 LLM 就结束”或“简单的 Re-Act过程”,而是能够持续运行数分钟甚至数小时
  • 自主决策能力:LLM 在循环中不断决定下一步行动,而不是按照预设的流程执行,这一点和 Re-Act Agent 仍然保持了传承性
  • 产出“初稿”而非最终产品:当前阶段,Long-horizon Agent 最擅长的是生成高质量的”first draft”——无论是代码 PR、研究报告还是数据分析,人类用户沿着这份初稿可以进行后续的修改,或继续通过新的指令进行迭代,用户正在学会与 Agent 进行类似“伙伴”的平等关系相处,而不是“master/slave”般的命令其完成某一个端到端的工作

LongChain 作者 Harrison 在最近红杉播客的专访中提到:

“让 LLM 在循环中运行,让它完全自主决定下一步做什么——这一直是 Agent 的核心理念。2023 年早在 GPT 3.5 时期,AutoGPT 就提出并实践了这个理念。它之所以能够吸引众多开发者的想象力,正是因为它让 LLM 在循环中自主决策。问题在于,当时的模型还不够好,周围的 scaffolding 和 harness 也不够成熟。”
“而现在,情况发生了根本性的变化。模型变强了,我们(Langchain)也积累了更多关于如何构建 harness 的经验。这就是为什么 Long-horizon Agent 开始真正”work”了。”


全新功能

https://github.com/bytedance/deer-flowgithub.com/bytedance/deer-flow

技能(Skills)

如果你用过 Claude Code 或 OpenClaw,你应该已经对 Skill 不陌生了。在 DeerFlow 2.0 中,Skill 是 Agent 能力的核心扩展单元。一个 Skill 本质上就是一个目录,里面放一个 SKILL.md——一份用 Markdown 编写的结构化能力描述,包含工作流程、最佳实践和参考资源。DeerFlow 2.0 出厂自带了以下 Skills:

Skill说明
deep-research深度研究,DeerFlow 的老本行
data-analysis基于 AI Coding 的数据分析,利用 DuckDB 特性,Agent 可以用 SQL 语句或 Python 语句对 Excel/CSV 查询、统计、跨文件 JOIN 查询
chart-visualization数据可视化图表生成,查看示例
web-design-guidelines网页设计与生成,充分发挥新一代模型的设计能力,酷炫落地页、粒子动画、3D 视图、复杂图表都不在话下,查看示例1,示例2
image-generationAI 图片生成,查看示例1,示例2,示例3
video-generationAI 视频生成,查看示例
podcast-generation播客生成(延续自 1.0 的经典功能)
ppt-generationPPT 幻灯片生成
github-deep-researchGitHub 仓库深度分析
skill-creator用 AI 创建新的 Skill,提供了 Claude Code 的原版功能,这也是 OpenClaw 的核心所在之一

Skill 采用渐进式加载——只有当任务需要时才加载对应的 Skill,而不是一股脑全塞进上下文窗口。不仅如此,一个 Skill 通常由若干个 Markdown 文件、Python 或 Node.js、Shell 脚本、模板文件组成,模型按需加载,拒绝 Token 爆炸。这让 DeerFlow 即使在 Token 敏感的模型上也能保持高效。 更重要的是,你可以编写自己的 Skill。把它放进 skills/custom/ 目录,DeerFlow 就能立即使用。想想看:你可以把团队内部的工作流程、领域知识、最佳实践,全部封装成 Skill,让 Agent 直接继承你的经验。

/mnt/skills/
├── public/                          ← 内置 Skills
│   ├── deep-research/SKILL.md
│   ├── data-analysis/SKILL.md
│   ├── chart-visualization/SKILL.md
│   └── ...
└── custom/                          ← 你的 Skills
    └── your-custom-skill/SKILL.md

Iframe

上面这个网站(可以继续向下滚动)是一个 DeerFlow 2.0 运用 Skill 的综合示例,DeerFlow 通过 frontend-design Skill 设计了一个美妆品牌(CAREN)的官方网站,不仅自己完成了浅玫瑰色 + 称线字体的品牌调性,充满了格调和暧昧气氛,而且所有美妆产品的图片、背景图片全部由 image-generation Skill 设计 Prompt 并通过 AIGC 生成。 **最重要的是,有了 Anthropic 官方名为 [skill-creator](https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md) 的 Skill,你可以为几乎任何任务创建自己的 Skill。**

沙箱(Sandbox)

DeerFlow 2.0 的 Agent 不只是「会说话」——它有自己的计算机。 每个任务运行在一个隔离的沙箱环境中,拥有完整的文件系统和 Bash 执行能力。Agent 可以读写文件、执行命令、运行 Python 脚本、安装依赖包——就像你在终端里操作一样,只不过一切都在沙箱里,会话之间零污染。

/mnt/user-data/
├── uploads/          ← 你上传的文件
├── workspace/        ← Agent 的工作目录
└── outputs/          ← 最终交付物

沙箱支持三种运行模式:

  • Local:直接在宿主机上执行,适合开发调试
  • Docker(推荐):每个任务运行在独立容器中,完全隔离,使用了字节跳动开源的 AIO Sandbox
  • Kubernetes:通过 Provisioner 服务在 K8s Pod 中执行,适合生产环境

Agent 看到的路径始终是 /mnt/user-data/.../mnt/skills/...,DeerFlow 底层会自动完成虚拟路径到物理路径的双向映射。这意味着同一套 Skill、同一套代码,在本地开发和容器部署中无需任何修改。之所以叫 /mnt 也是参考了 Claude 的设计,让 Agent 认为是一个 Mount 的驱动器。 沙箱内置了 5 个工具供 Agent 使用:bashlsread_filewrite_filestr_replace。熟悉 Claude Code、OpenClaw 的你,一定已经对这些工具熟记于心了。这不是一个玩具沙箱——这是一个真正的执行环境。

子智能体(Sub-agent)

复杂任务很少能一步到位。DeerFlow 2.0 的 Lead Agent 可以随时拆分任务,将子任务委派给 Sub-agent 并行执行。 目前内置了两种 Sub-agent:

  • general-purpose:通用型,继承父 Agent 的所有工具(除了 task 本身),最多 50 轮对话
  • bash:命令行专家,只配备沙箱工具(bashlsread_filewrite_filestr_replace),最多 30 轮对话

Sub-agent 最多 3 个并行执行,15 分钟超时。每个 Sub-agent 运行在自己独立的上下文中——它看不到主 Agent 和其他 Sub-agent 的上下文。这种隔离不是缺陷,而是刻意为之:子 Agent 越专注,结果越好。 一个典型的深度研究任务,Lead Agent 会一口气派出 3 个 Sub-agent,分别去调研不同的子话题,各自搜索、阅读、整理。Sub-agent 完成后将结构化结果返回给 Lead Agent,由它汇总成最终报告。一个 Harness,多双手。

上下文工程(Context Engineering)

Agent 跑 long-horizon 任务最大的挑战不是能力不够,而是上下文窗口不够用。DeerFlow 2.0 在这个问题上做了系统性的设计。

  • 多层 Middleware 链:DeerFlow 的每一次 Agent 调用都要经过一条精心编排的 Middleware 链。从线程数据初始化、文件上传注入、沙箱分配,到上下文摘要、记忆提取、图像注入、子任务限流——11 个 Middleware 各司其职,严格按序执行。
  • 上下文摘要(Summarization):当对话接近 token 上限时,DeerFlow 会自动对较早的消息进行摘要压缩,只保留最近的 N 条消息原文。这让 Agent 在跨越数十轮对话的长任务中始终保持清醒。
  • 子 Agent 上下文隔离:如前所述,每个 Sub-agent 都运行在独立上下文中。这不仅防止了上下文膨胀,也避免了子任务之间的信息互相干扰。
  • 文件系统作为外部存储:Agent 可以随时将中间结果写入文件系统,然后在需要时重新读取。这等于给 Agent 配了一块「硬盘」——上下文窗口是内存,文件系统是磁盘,需要时换入换出。

长期记忆(Long-term Memory)

绝大多数 Agent 在会话结束的那一刻就失忆了。DeerFlow 2.0 不会。 DeerFlow 在每次对话中悄悄提取关键信息——你的角色、偏好、技术栈、工作习惯、关注重点——以结构化的 Fact 形式存入本地的 memory.json。下一次对话开始时,这些记忆会被注入到 Agent 的系统提示中。 DeerFlow 2.0 的长期记忆分为三个区块(Block):

  • 用户画像:你的工作背景、个人偏好、当前关注点
  • 时间线:近期互动摘要、历史背景、长期积累
  • 事实库:具体的知识点,每条都有置信度评分(0.7-1.0)和分类标签

记忆更新采用异步队列 + 去重 + 防抖设计,不会阻塞对话流程。存储使用原子写入,不会因意外中断导致数据损坏。所有数据存储在本地,完全由你掌控。真正做到了“用得越多,它就越懂你”。 在 Settings / Memory 中可以查看自己的 Memory,用的越多则 Memory 越多。

技术架构演进

DeerFlow 1.0:Multi-Agent StateGraph

在 1.0 时代,DeerFlow 的架构是一个典型的 Multi-Agent Supervisor。我们用 LangGraph 的 StateGraph 把 5 个 Agent 节点串联起来:

Coordinator → Planner → Researcher / Coder(并行)→ Reporter
  • Coordinator 负责接待用户、处理闲聊,判断意图后把控制权 Handoff 给 Planner
  • Planner 分解研究课题,制定计划,经用户确认后派发给下游
  • Researcher 是核心的 ReAct Agent,负责联网搜索和爬取网页
  • Coder 通过 Python REPL 执行代码,做数据分析和计算
  • Reporter 汇总所有上下文,撰写最终报告

这套架构在 Deep Research 场景下跑得很好。但随着社区把 DeerFlow 推向越来越多的场景,问题开始浮现:

  1. 角色固化:5 个 Agent 的职责是写死的。想加一个「设计师 Agent」或「运维 Agent」?得改图、加节点、调边——本质上是在改框架
  2. 上下文浪费:所有 Agent 共享同一份 State,Researcher 搜回来的大段网页内容,Reporter 不需要看到,但它就在那里占着 token
  3. 扩展性差:想让 DeerFlow 做 Deep Research 以外的事情,要么往图里硬塞节点,要么另起炉灶 这些不是 bug,而是架构选型带来的天花板。

DeerFlow 2.0:Lead Agent + Middleware + Sub-agent

DeerFlow 2.0 的架构做了一次根本性的转变:从固定角色的 Multi-Agent 图,变为单一 Lead Agent + 中间件链 + 动态 Sub-agent。

Lead Agent:唯一的入口

在 2.0 中,只有一个 Agent——Lead Agent。它不再是图中的某个节点,而是通过 create_agent() 创建的单一 ReAct Agent:

# src/agents/lead_agent/agent.py
def make_lead_agent(config: RunnableConfig):
    return create_agent(
        model=create_chat_model(name=model_name, thinking_enabled=thinking_enabled),
        tools=get_available_tools(model_name=model_name, subagent_enabled=subagent_enabled),
        middleware=_build_middlewares(config),
        system_prompt=apply_prompt_template(...),
        state_schema=ThreadState,
    )

这段代码就是 DeerFlow 2.0 后端的全部入口。四个参数决定了 Agent 的一切:

  • model:动态选择的大语言模型,支持 Thinking 模式和视觉能力
  • tools:动态组装的工具集——沙箱工具 + 内置工具 + MCP 工具 + 社区工具 + Sub-agent 工具
  • middleware:11 层中间件链(下一节详述)
  • system_prompt:动态生成的系统提示词,按需注入 Skill 列表、Sub-agent 调度指令和用户记忆

1.0 的能力分散在 5 个 Agent 节点和它们之间的边上;2.0 的能力集中在一个 Agent 的 工具集中间件链 上。这个设计的好处是:想扩展能力?加一个 Tool 或 Skill 就行,不用动图。

[!NOTE] 最有意思的是,我们的 Agent、Tools 全部都可以在 config.yaml 文件中进行“增删改替”,我想这就是 Harness 的核心:开箱即用,同时高度可定制

Middleware 链:Agent 的神经系统

DeerFlow 2.0 的每一次 Agent 调用,都要经过一条精心编排的 Middleware 链。这些 Middleware 在 Agent 调用前后执行,负责上下文管理、状态同步、资源分配等”基础设施”工作:

def _build_middlewares(config: RunnableConfig):
    middlewares = [
        ThreadDataMiddleware(),        # 1. 创建线程目录结构
        UploadsMiddleware(),           # 2. 注入新上传的文件
        SandboxMiddleware(),           # 3. 分配沙箱
        DanglingToolCallMiddleware(),  # 4. 修补中断的工具调用
    ]

    # 5. 上下文摘要(可选)
    # 6. TodoList 计划模式(可选)
    # 7. 自动生成会话标题
    # 8. 异步记忆更新
    # 9. 图像注入(视觉模型)
    # 10. Sub-agent 并发限流
    # 11. 用户澄清拦截(必须最后)

    middlewares.append(ClarificationMiddleware())  # 必须是最后一个
    return middlewares

Middleware 的顺序不是随意的,每一层都有明确的依赖关系。例如:ThreadDataMiddleware 必须在 SandboxMiddleware 之前,因为沙箱需要线程 ID;ClarificationMiddleware 必须在最后,因为它会通过 Command(goto=END) 中断执行流。 这种设计让 DeerFlow 的横切关注点(Cross-cutting Concerns)——上传、沙箱、记忆、摘要、限流——与 Agent 的核心逻辑完全解耦。想加一个新的横切能力?写一个 Middleware 插进链里就行。

Sub-agent 执行引擎

当 Lead Agent 遇到复杂任务时,它会通过 task 工具将子任务委派给 Sub-agent。Sub-agent 的执行由 SubagentExecutor 管理,采用双线程池架构:

# 调度线程池:负责任务排队和编排
_scheduler_pool = ThreadPoolExecutor(max_workers=3, thread_name_prefix="subagent-scheduler-")

# 执行线程池:负责实际的 Agent 执行(支持超时)
_execution_pool = ThreadPoolExecutor(max_workers=3, thread_name_prefix="subagent-exec-")

执行流程:

Sub-agent 是一个精简版的 Lead Agent——同样由 create_agent() 创建,但只配备 2 个 Middleware(ThreadDataMiddleware + SandboxMiddleware),工具集根据类型过滤,没有记忆注入、没有标题生成、没有上下文摘要。这是刻意的:Sub-agent 是短周期的、专注的执行者,不需要 Lead Agent 那套完整的基础设施。 Sub-agent 运行时共享父 Agent 的沙箱和线程数据(通过 lazy_init=True 避免重复分配),但上下文完全隔离——它看不到主 Agent 的对话历史,也看不到其他 Sub-agent 的结果。每个 Sub-agent 的执行过程通过 trace_id 串联,支持分布式追踪。

ThreadState:Agent 的“内存”

2.0 的 Agent 状态不再是 1.0 里那个只有 messages 的简单字典,而是一个完整的 ThreadState

class ThreadState(AgentState):
    sandbox: SandboxState          # 沙箱 ID
    thread_data: ThreadDataState   # 工作目录路径
    title: str                     # 会话标题
    artifacts: list[str]           # 产出物路径(自动去重)
    todos: list                    # 计划模式的任务列表
    uploaded_files: list[dict]     # 上传的文件
    viewed_images: dict            # 已查看的图像(base64)

其中 artifactsviewed_images 使用了自定义的 Reducer 函数来处理合并逻辑——前者自动去重,后者支持通过空字典清空已处理的图像。这些细节看起来不起眼,但在 long-horizon 任务中,正是这些 Reducer 保证了状态的一致性。

1.0 vs 2.0:一张表说清楚

维度1.02.0
架构模式Multi-Agent StateGraph(Supervisor)Single Lead Agent + Middleware + Sub-agent with Skills
Agent 数量5 个固定角色1 个 Lead Agent + N 个动态 Sub-agent
能力扩展改图、加节点加 Skill 或 Tool,无需改架构
上下文管理全局共享 StateSub-agent 上下文隔离 + 摘要压缩
执行环境Python REPL(仅 Coder)完整沙箱(所有 Agent 共享)
记忆跨会话长期记忆
并发模型图节点顺序/并行执行双线程池 + 异步调度
服务架构单体LangGraph Server + Gateway API + Frontend + Nginx

结尾

说到这里,我想聊几句 OpenClaw 和最近的 FOMO 情绪。

近期在外网有很多大 V 义务帮 DeerFlow 站台,也不可避免的提到了 OpenClaw

我理解大家的兴奋,也理解那种「别人都在用了我还没跟上」的焦虑。但作为一个经历过太多技术浪潮的老人,我想说:每一次真正的技术革命,拼的从来不是谁先用了什么工具,而是谁真正理解了底层的原理。 OpenClaw 很酷,但它并不神秘。如果你理解了 DeerFlow 2.0 的架构——Lead Agent + Middleware + Sub-agent + Sandbox——你会发现,在这个 Harness 之上,加一个 MessageProxy 做消息路由,加一个 TaskDispatcher + Cronjob + Heartbeat 做任务调度和健康检查,你就能实现自己的 OpenClaw。这不是夸张,这就是 Harness 的意义:地基打好了,上面盖什么楼,取决于你的想象力。 所以,与其追赶每一个新产品的 FOMO,不如静下心来把 Agent 的基础打扎实。理解 ReAct 循环,理解上下文工程,理解工具调用和沙箱隔离,理解 Sub-agent 的分治思想。这些东西不会过时,因为它们是所有 Agent 系统的共同地基。DeerFlow 2.0 的代码全部开源,每一行你都可以读、可以改、可以学。

DeerFlow 2.0 是我们写给这个 AI 时代的第二封情书。如果你也和我一样,相信 Agent 会改变我们与计算机协作的方式,欢迎加入我们,期待在下一次线上活动中与你们相遇。GitHub:http://github.com/bytedance/deer-flow官网:deerflow.tech

DeerFlow 2.0 是字节跳动开源的超级智能体运行框架(Super Agent Harness),于 2026 年 2 月发布,是对 v1.x 的完全重写(zero shared code)。它从一个深度研究(Deep Research)框架进化为通用的智能体基础设施平台,内置子智能体调度、沙箱文件系统、长短期记忆、渐进式技能加载和 MCP 协议支持。发布后迅速登顶 GitHub Trending #1,目前拥有 31.6k+ Stars。


一、项目概览

属性详情
全称Deep Exploration and Efficient Research Flow
版本2.0(当前主分支),1.x 保留在 main-1.x 分支
开发方字节跳动(ByteDance)
开源协议MIT
GitHubhttp://github.com/bytedance/deer-flow
官网deerflow.tech
Stars / Forks31.6k+ / 3.8k+
提交数1,624+(主分支)
技术栈Python 3.12+、Node.js 22+、LangGraph、LangChain、Docker、nginx
推荐模型Doubao-Seed-2.0-Code、DeepSeek v3.2、Kimi 2.5
访问端口http://localhost:2026

二、从 v1 到 v2:为什么要完全重写?

2.1 v1.x 的定位与局限

DeerFlow v1.x 是一个深度研究框架,采用经典的四阶段线性流水线:

Coordinator → Planner → Research Team (Researcher + Coder) → Reporter

v1.x 核心能力:

  • 基于 LangGraph 的状态驱动工作流
  • 两个研究子智能体(Researcher + Coder)
  • 支持多种搜索引擎(Tavily、DuckDuckGo、Brave、Arxiv 等)
  • 支持 RAG 集成(Qdrant、Milvus、RAGFlow 等)
  • 人机协作的研究计划编辑
  • Markdown 报告 + 简易 PPT + 播客音频生成

v1.x 的局限:

局限描述
线性流水线四阶段固定流程,难以动态重规划
智能体数量固定仅 Researcher + Coder 两个子智能体
无持久记忆缺乏跨会话的学习和记忆机制
内容生成有限PPT 生成被官方描述为”简易”
无沙箱隔离代码直接在宿主机执行
无技能系统工具耦合度高,扩展不灵活

2.2 社区推动进化

DeerFlow 团队发现社区实际用途远超预期——用户在构建数据管道、生成演示文稿、创建仪表板、自动化内容工作流。团队意识到 DeerFlow 本质上不只是研究工具,而是一个智能体运行时基础设施,因此决定从零重写。

“It wasn’t just a research tool. It was a harness — a runtime that gives agents the infrastructure to actually get work done.”


三、DeerFlow 2.0 核心架构

3.1 定位转变

v1.x: Deep Research Framework (深度研究框架)
  ↓ 完全重写,不共享代码
v2.0: Super Agent Harness (超级智能体运行框架)

DeerFlow 2.0 的核心理念是 “batteries included, fully extensible” —— 开箱即用、完全可扩展。

3.2 多服务架构

DeerFlow 2.0 采用 nginx 反向代理下的多服务架构:

┌─────────────────────┐
                    │   nginx (port 2026)  │
                    │  统一入口 / CORS / SSE │
                    └────┬───────┬───────┬─┘
                         │       │       │
              ┌──────────┤       │       ├──────────┐
              ▼          ▼       ▼       ▼          ▼
         Frontend    Gateway  LangGraph  Provisioner
        (port 3000) (port 8001)(port 2024)(port 8002)
         Web UI      API 网关   智能体引擎   K8s 沙箱调度
服务端口职责
Frontend3000Web UI,处理非 API 请求
Gateway API8001模型列表、MCP、技能管理、产物端点
LangGraph Server2024智能体交互、流式响应
Provisioner8002(可选)K8s 沙箱模式的 Pod 管理

3.3 六大核心能力

① 上下文工程(Context Engineering)—— 长短期记忆

DeerFlow 2.0 实现了完整的上下文工程策略:

  • 短期上下文隔离:每个子智能体拥有独立的作用域上下文,避免信息干扰
  • 上下文摘要:自动摘要已完成的子任务,将中间结果卸载到文件系统
  • 长期记忆:跨会话持久化用户画像、偏好和积累的知识,数据存储在本地用户可控

② 长任务运行(Long Task Running)—— 规划与子任务

  • 主智能体(Lead Agent)可以动态生成子智能体
  • 每个子智能体有独立的上下文、工具集和终止条件
  • 子智能体可并行执行,完成后结果被汇总合成
  • 适合处理需要数分钟到数小时的复杂任务

③ 可扩展性(Extensible)—— 技能与工具系统

技能(Skills) 是 DeerFlow 2.0 的核心抽象:

  • 以 Markdown 文件定义工作流、最佳实践和资源引用
  • 渐进式加载:只在任务需要时加载,不一次性全部加载
  • 支持自定义技能和替换内置技能
  • .skill 归档格式,通过 Gateway 安装,支持版本、作者等元数据

技能存储路径:

/mnt/skills/
├── public/     ← 内置技能
└── custom/     ← 用户自定义技能

内置 17 个技能:

技能用途
deep-research系统化多角度深度研究
github-deep-researchGitHub 仓库专项研究
data-analysis数据集分析处理
chart-visualization数据可视化图表
frontend-design前端/UI 设计
web-design-guidelinesWeb 设计规范
image-generationAI 图像生成
video-generationAI 视频生成
podcast-generation播客音频生成
ppt-generationPPT 演示文稿生成
consulting-analysis咨询分析框架
skill-creator创建新的自定义技能
find-skills发现和定位可用技能
claude-to-deerflowClaude Code 集成
vercel-deploy-claimableVercel 部署
bootstrap项目初始化
surprise-me创意随机输出

工具(Tools) 分组管理:

工具组包含工具
webweb_search (Tavily)、web_fetch (Jina AI)
file:readls、read_file
file:writewrite_file、str_replace
bashbash 命令执行
MCP通过 MCP 协议动态扩展

④ 沙箱与文件系统(Sandbox & File System)

每个任务在隔离的 Docker 容器中运行,拥有完整文件系统:

/mnt/user-data/
├── uploads/     ← 用户上传的文件
├── workspace/   ← 智能体工作目录
└── outputs/     ← 最终交付物

三种沙箱模式:

模式实现适用场景
Local直接在宿主机执行开发调试
Docker隔离容器(AIO Sandbox)推荐的生产环境
Docker + K8s通过 Provisioner 管理 Pod大规模部署

AIO Sandbox(推荐)是一个全功能的 Docker 容器,集成了:

  • 🌐 浏览器 + VNC
  • 💻 Shell 终端
  • 📁 文件系统
  • 🔧 MCP Hub
  • 📝 VSCode Server
  • 📊 Jupyter

所有组件共享同一文件系统,实现跨工具无缝协作。

⑤ 多模型灵活接入(Multi-Model Support)

通过 YAML 配置灵活切换 LLM 提供商:

models:
  - name: my-model
    use: langchain_openai:ChatOpenAI  # 或 langchain_anthropic:ChatAnthropic
    model: deepseek-v3.2
    api_key: $DEEPSEEK_API_KEY
    base_url: https://api.deepseek.com/v1  # 自定义端点

已验证支持的提供商:

  • OpenAI
  • Anthropic (Claude)
  • DeepSeek
  • 字节火山引擎 (Doubao)
  • Novita AI
  • MiniMax
  • OpenRouter(任何兼容 OpenAI API 的网关)

支持 Thinking 模式(深度推理)的配置选项。

⑥ 开源免费(Open Source & Free)

  • MIT 许可证,完全自托管
  • 用户对数据和配置拥有完全控制权

四、MCP 协议支持

DeerFlow 2.0 深度集成 Model Context Protocol (MCP),通过 extensions_config.json 配置:

  • 支持 stdiohttpsse 三种传输类型
  • 内置 OAuth 令牌管理(支持 client_credentialsrefresh_token 授权类型)
  • 自动令牌刷新,可配置 refresh_skew_seconds
  • MCP 服务器暴露的工具自动发现并注册,无需额外代码
  • 可集成文件系统、数据库、GitHub、浏览器自动化等外部能力

五、IM 渠道集成

DeerFlow 2.0 支持通过即时通讯软件接收和执行任务:

渠道传输方式接入难度
TelegramBot API (长轮询)简单
SlackSocket Mode中等
飞书/LarkWebSocket中等

特性:

  • 配置后自动启动,无需公网 IP
  • 支持按渠道、按用户的独立会话设置
  • 聊天命令:/new/status/models/memory/help

六、技能系统深度解析

以内置的 deep-research 技能为例,深入理解 DeerFlow 2.0 的技能设计范式:

6.1 技能本质

技能是行为提示模板(Behavioral Prompt Template)——不包含可执行代码,而是以 Markdown 定义的详细方法论,塑造智能体如何编排工具调用。

6.2 deep-research 技能的四阶段方法论

阶段目标
Phase 1: 广泛探索勘察主题全貌,识别关键维度和子话题
Phase 2: 深度挖掘对每个维度进行精准搜索,阅读全文
Phase 3: 多样性与验证收集六类信息:事实数据、案例、专家观点、趋势预测、对比、挑战与批评
Phase 4: 综合检查五项清单自检,任何一项未达标则继续研究

6.3 设计原则

  • “永远不要仅基于通用知识生成内容”
  • “单次搜索永远不够”
  • 时间感知:根据查询意图精确匹配时间粒度
  • 反模式明确列出:1-2 次搜索就停、只看摘要、忽略反面观点等

七、Claude Code 集成

DeerFlow 2.0 提供了 claude-to-deerflow 技能,可在 Claude Code 终端中直接与 DeerFlow 交互:

npx skills add https://github.com/bytedance/deer-flow --skill claude-to-deerflow

支持四种执行模式:

模式特点
flash快速响应
standard标准模式
pro带规划的复杂任务
ultra使用子智能体的最高级模式

八、部署与快速开始

8.1 Docker 部署(推荐)

git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
make config          # 生成 config.yaml
# 编辑 config.yaml 配置模型和 API 密钥
make docker-init     # 初始化 Docker 环境
make docker-start    # 开发模式(热重载)
# 或
make up              # 生产模式

8.2 本地部署

make check           # 检查工具链
make install         # 安装依赖
make dev             # 启动开发服务器

8.3 配置管理

  • 配置文件:config.yaml(项目根目录,已在 .gitignore 中)
  • 配置版本追踪,自动检测 schema 变更
  • make config-upgrade 自动合并新增配置项

九、v1.x vs v2.0 对比

维度v1.xv2.0
定位深度研究框架超级智能体运行框架
架构四阶段线性流水线动态子智能体 + 并行执行
子智能体固定 2 个(Researcher + Coder)按需动态生成,无数量限制
技能系统无(工具硬编码)17 个内置技能 + 自定义扩展
沙箱无隔离Docker / K8s 三模式隔离
文件系统完整持久化文件系统
记忆无跨会话记忆长短期记忆,跨会话持久化
上下文管理基础状态传递上下文工程(隔离 + 摘要 + 卸载)
内容生成报告 + 简易 PPT + 播客报告 + PPT + 网页 + 图片 + 视频 + 播客
IM 集成Telegram / Slack / 飞书
MCP 支持基础完整(含 OAuth、自动发现)
LLM 接入litellmLangChain 生态(更灵活的配置)
模型配置.env + conf.yaml统一 YAML + 环境变量 + 版本追踪

十、应用案例

官方展示了六个典型场景:

  1. 预测 2026 年 Agent 趋势 —— 深度研究后生成网页报告
  2. 基于《傲慢与偏见》生成视频 —— 搜索小说场景 + 生成视频和参考图
  3. 哆啦A梦讲解 MOE 架构 —— 为青少年生成漫画风格的技术科普
  4. Titanic 数据集探索性分析 —— 数据分析 + 可视化
  5. 观看 Y Combinator 视频后深度研究 —— 视频分析 + 延伸研究
  6. 收集并总结李飞飞博士的播客 —— 信息聚合 + 摘要生成

十一、竞品对比分析

维度DeerFlow 2.0ManusOpenAI Deep Research
开源✅ MIT 许可❌ 闭源❌ ChatGPT 功能
自托管
定位通用超级智能体框架通用自主智能体深度研究功能
子智能体✅ 动态生成❌ 单体
沙箱✅ Docker/K8s✅ 云端沙箱
技能扩展✅ 17 内置 + 自定义有限
MCP 支持✅ 完整部分
IM 集成✅ Telegram/Slack/飞书
模型灵活性✅ 任意 LLM固定GPT 系列
成本自付 API 费用订阅制ChatGPT 订阅
记忆系统✅ 长短期有限

DeerFlow 2.0 的核心优势:开源自托管、模型自由选择、技能系统可扩展、IM 集成。

劣势:需要自行部署维护、需要配置 API 密钥和基础设施。


十二、总结与展望

关键结论

  1. 架构质变:DeerFlow 2.0 不是 v1 的迭代升级,而是基于社区反馈的完全重新设计,从研究工具进化为通用智能体基础设施。
  2. 技能系统是核心创新:通过 Markdown 定义的行为模板实现了”无代码”的智能体能力扩展,渐进式加载避免了上下文膨胀。
  3. 上下文工程先行:子智能体上下文隔离 + 自动摘要 + 文件系统卸载的组合策略,有效应对了长任务场景下的上下文窗口限制。
  4. 生态友好:MCP 协议支持、多 LLM 提供商接入、IM 渠道集成使其成为连接各类工具和平台的中枢。
  5. 社区活跃:31.6k Stars、GitHub Trending #1 的成绩表明强烈的市场需求和社区认可。

适用场景

  • 需要自托管 AI 智能体平台的企业和团队
  • 需要深度研究与内容生成自动化的研究人员
  • 需要构建复杂多步骤自动化工作流的开发者
  • 需要灵活选择和切换 LLM 模型的用户
  • 需要将 AI 智能体集成到 IM 工具中的团队

关注点

  • Docker/K8s 部署对运维能力有一定要求
  • 推荐模型以国产模型为主(Doubao、DeepSeek、Kimi),对海外用户可能需要额外配置
  • 作为 2.0 新版本,生态成熟度和社区插件数量仍在发展中

2026年3月更新|字节DeerFlow 2.0(50k+星标)深度解析:解锁AI智能体可落地工程化范式

摘要

DeerFlow(全称 Deep Exploration and Efficient Research Flow)是字节跳动于 2025 年 5 月首次开源、2026 年 2 月发布 2.0 版本的企业级多智能体协作框架(180)。作为从字节内部智能体工程实践中孵化的开源项目,其核心定位是解决传统大模型 “单轮问答局限” 与 “长时任务失忆” 的行业痛点,通过子智能体并行编排、Docker 沙箱安全执行、分层记忆持久化、Markdown 技能系统四大核心能力,实现从分钟级到小时级的复杂任务自动化(192)

本报告基于 GitHub 官方文档与第三方深度解析,从项目背景、架构设计、核心概念、功能模块、工程实现等维度系统拆解 DeerFlow,并提炼其对可落地 AI 智能体开发的关键启示 —— 包括 “执行优先” 的沙箱设计、“关注点分离” 的多智能体分工、“渐进式加载” 的上下文管理等工程化范式,为研究与落地提供可复用的设计原则与实践路径。


1. 项目概述与核心定位

1.1 项目背景与发展历程

DeerFlow 的诞生,本质是字节跳动对内部智能体工程实践的开源沉淀 —— 其前身为 2025 年内部孵化的 LangManus 多智能体项目,该项目在内部客服、研发效能、内容生产等场景验证了多智能体协作的可行性,但受限于内部架构,无法快速适配外部多样化需求(267)。为了将这套能力开放给社区,字节团队于 2025 年 5 月正式发布 DeerFlow 1.0 版本,核心聚焦深度研究场景,帮助用户自动完成信息检索、数据整理与报告生成(180)

但 1.0 版本的局限性很快显现:仅支持研究类单一场景、架构耦合度高、子智能体调度效率不足,无法满足社区用户对 “通用智能体执行底座” 的需求。因此,字节团队在 2025 年 9 月启动 2.0 版本的全量重构 —— 与 1.0 版本共享的代码为零,整个架构基于 LangGraph 1.0 + LangChain 技术栈完全重写,目标是打造一个 “可扩展、易部署、能落地” 的超级智能体框架(190)

2026 年 2 月 28 日,DeerFlow 2.0 正式发布,凭借 “生产级工程化能力” 和 “开箱即用的复杂任务支持”,上线即登顶 GitHub Trending 榜首,发布首月斩获超 2.4 万 Star,截至 2026 年 3 月已累计获取 50k + 开发者星标,成为 2026 年初开源智能体领域的标杆项目(190)

1.2 核心价值主张

与传统智能体框架(如 LangChain、MetaGPT)不同,DeerFlow 的核心价值主张并非 “快速搭建 Demo”,而是 “让 AI 真正能交付复杂任务”。其官方定位是Super Agent Harness(超级智能体控制壳) —— 所谓 “Harness”,是指它并非单一的模型调用工具,而是一套完整的智能体运行时环境:包含反向代理、独立管理 API、持久化存储、可扩展的执行引擎,能像操作系统一样协调资源、隔离环境、调度任务(192)

具体而言,DeerFlow 的核心价值可概括为三点:


  • 全栈执行能力:内置 Web 搜索、Python 代码执行、文件读写、PPT 生成等工具,无需额外开发即可完成从信息收集到成果输出的全流程闭环;

  • 企业级安全保障:每个子智能体任务运行在独立 Docker 容器中,实现文件系统、网络、CPU 内存的严格隔离,避免恶意代码或误操作对宿主环境的影响(267)

  • 模型无关性:通过标准化 Adapter 层支持所有主流大模型,包括 GPT-4、Gemini、DeepSeek、通义千问等,甚至可通过 Ollama、LocalAI 接入本地开源模型,用户无需修改核心代码即可切换模型(80)

1.3 与主流智能体框架的对比

特性DeerFlowMetaGPTAutoGenCrewAI
核心定位超级智能体执行底座(长时程任务处理)软件工程化 SOP 模拟多智能体对话协作角色扮演任务链
架构模式主智能体 + 动态子智能体 + 中间件链结构化 SOP + 角色分工LLM 对话驱动垂直角色 Agent
执行环境原生 Docker 沙箱隔离无原生沙箱(需额外集成)无原生沙箱无原生沙箱
记忆系统分层持久化记忆(支持跨会话)短期上下文记忆对话历史记忆有限上下文记忆
调度策略中间件 + LangGraph 图执行固定角色串行调度LLM 自主调度线性任务链调度
学习曲线中等(需理解中间件与沙箱概念)陡峭(需掌握软件工程 SOP)中等(需设计对话流程)低(快速原型)
适用场景深度研究、企业级自动化、长任务处理软件项目生成、工程化文档代码生成、任务分解简单任务链、快速验证

上述对比基于官方基准测试与第三方实测数据整理:DeerFlow 在长时程任务中的完成率与稳定性表现最优,MetaGPT 在软件工程场景的专业度最高,AutoGen 在代码生成场景的灵活性更强,CrewAI 则更适合快速搭建原型(267)


2. 架构设计与技术栈

2.1 总体架构:四层服务的解耦设计

DeerFlow 2.0 采用严格的四层服务分层架构,核心目标是实现 “关注点分离”—— 将用户交互、智能体运行、API 管理、静态资源完全解耦,每层仅负责单一职责,既提升了系统的可扩展性,也降低了后续维护的复杂度。这种设计的优势在于:当需要扩展某一层的能力时(如新增工具类型、优化智能体调度逻辑),无需修改其他层的代码(93)

其具体分层与核心职责如下:

层级核心组件技术栈核心职责
反向代理层NginxNginx统一请求入口,负责路径路由、TLS 终结与 WebSocket 升级,将不同请求分发到对应服务
智能体运行时层LangGraph ServerPython、LangGraph核心智能体引擎,负责任务编排、子智能体调度、中间件执行与实时响应流式输出
API 网关层Gateway APIPython、FastAPI非 Agent 类操作的统一入口,包括模型管理、技能配置、文件上传与产物托管
前端交互层Web UINext.js、React可视化操作界面,支持任务创建、进度监控与结果导出,与后端共享同一逻辑上下文

所有服务通过 Nginx 反向代理(默认端口 2026)统一对外提供接口,各层通过标准化配置文件协同,确保了系统的高可用性与可扩展性(93)

2.2 技术栈依赖

DeerFlow 的技术栈选择,遵循 “稳定优先、生态兼容” 的原则 —— 核心依赖均来自 LangChain 生态,同时针对字节内部的高并发场景做了定制化优化,既保证了与主流智能体生态的兼容性,又满足了生产级场景的性能需求(108)


  • LangGraph 1.0:作为核心工作流引擎,提供基于有向无环图(DAG)的任务编排能力,支持条件路由、中断恢复与状态持久化,是 DeerFlow 子智能体调度的基础(180)

  • LangChain:提供工具集成、模型适配与记忆管理的基础能力,DeerFlow 在此基础上扩展了分层记忆、沙箱工具等企业级特性(180)

  • FastAPI:构建 Gateway API 的高性能 Web 框架,支持异步请求与自动 API 文档生成,满足高并发场景的需求(93)

  • Next.js:前端 Web UI 的开发框架,提供服务端渲染(SSR)与实时 WebSocket 连接能力,让用户可以实时监控任务进度(93)

  • Docker:实现沙箱环境的容器化隔离,为子智能体的代码执行提供安全边界(267)

  • LiteLLM:实现多模型兼容,通过统一接口适配不同厂商的大模型 API,无需修改核心代码即可切换模型(201)

3. 核心概念与设计哲学

DeerFlow 的设计哲学,本质是将 “人类团队协作逻辑” 工程化 —— 通过明确的角色分工、标准化的能力封装、安全的执行边界,让智能体协作更贴近真实的工作流程,同时解决大模型 “不可控”“易出错” 的问题。理解以下五大核心概念,是掌握其设计思路的关键。

3.1 Agent(智能体):责任明确的虚拟团队

DeerFlow 采用 “主智能体 + 动态子智能体” 的架构模式,每个 Agent 都有明确的职责边界,类似真实团队中的不同角色 —— 这种设计的核心目的是 “不让单一模型承担所有任务”,而是通过分工降低大模型的认知负荷,同时提升系统的容错性(270)


  • Lead Agent(主智能体) :系统的 “大脑”,负责任务拆解、子智能体调度与结果汇总。它通过make_lead_agent(config)函数动态创建,集成了模型选择、中间件执行与工具调度的全链路能力,是智能体运行时的核心入口(235)

  • Coordinator(协调器) :用户交互的 “入口岗”,负责解析用户意图、识别任务类型、处理多语言请求与澄清对话。例如,当用户输入 “帮我调研 2026 年 AI Agent 趋势” 时,Coordinator 会先判断这是 “研究类任务”,再将其路由给 Planner;如果是闲聊或无关请求,Coordinator 会直接响应,避免浪费资源(100)

  • Planner(规划器) :任务拆解的 “战略岗”,负责将复杂任务分解为结构化的子任务列表,每个子任务都包含明确的目标、可用工具与优先级。Planner 会基于 LangGraph 的状态机机制,动态调整子任务的执行顺序,确保任务高效推进(100)

  • Sub-Agent(子智能体) :任务执行的 “专业岗”,如研究员(Researcher)、编码员(Coder)、报告员(Reporter)等。每个子智能体只聚焦单一类型的任务,例如 Researcher 负责调用搜索工具获取信息,Coder 负责在沙箱中执行 Python 代码,且拥有独立的上下文,错误不会扩散到其他子智能体或主智能体(99)

3.2 Tool(工具)与 Skill(技能):能力的标准化封装

DeerFlow 将 “能力” 分为两层:Tool 是原子执行单元,解决 “能不能做” 的问题;Skill 是结构化流程模板,解决 “能不能做好” 的问题 —— 这种分层设计,既保证了工具的灵活性,又实现了流程的标准化。


  • Tool:系统的原子执行单元,包括内置工具(如 Web 搜索、bash 执行、文件读写)、配置工具(如 Tavily、Brave Search)与 MCP 扩展工具(如企业私域知识库、数据库查询)(220)。所有 Tool 遵循统一的参数校验规范,例如 Web 搜索工具必须传入query参数,且格式为字符串;错误处理机制完备,网络超时、权限不足等异常都会返回标准化的失败结果,方便上层 Agent 识别与处理(86)

  • Skill:结构化的能力模块,通过 Markdown 文件定义工作流、最佳实践与参考资源。例如内置的research技能,会明确规定 “先搜索核心关键词→再浏览权威来源→最后提取关键信息并标注引用” 的流程,甚至包含输出模板与质量校验规则(125)。Skill 支持渐进式加载:元数据层(约 100 词)始终在上下文中,供 Agent 快速匹配;指令层(<5k 词)在技能被选中时加载;资源层(如脚本、参考文档)则按需读取,这种设计能有效控制上下文窗口大小,降低 token 消耗。

3.3 Memory(记忆):分层持久化的上下文管理

DeerFlow 的记忆系统,是解决 “长时任务失忆” 痛点的核心 —— 它模仿人类记忆的分层机制,将记忆分为工作记忆、短时记忆与长时记忆,不同层级的记忆承担不同的功能,既保证了上下文的连续性,又避免了大模型输入过载(254)


  • 工作记忆:当前任务的中间状态存储,例如未完成的子任务列表、临时文件路径、工具调用结果等。它与当前会话强绑定,任务结束后自动清理,用于支撑子任务的串行或并行执行(270)

  • 短时记忆:当前会话的上下文消息,存储在本地 JSON 文件中,默认保留最近 50 轮对话。当对话长度接近 token 阈值时,SummarizationMiddleware 会自动对早期消息进行摘要压缩,只保留核心信息,避免 token 浪费(108)

  • 长时记忆:跨会话的事实性知识存储,采用向量数据库实现语义检索。例如用户之前提到 “关注生成式 AI 在医疗的应用”,下次请求类似任务时,Lead Agent 会自动从长时记忆中调取这个偏好,无需用户重复说明(254)

记忆的更新遵循 “去抖 + 原子写入” 的原则:每轮对话结束后,系统会先将新信息加入 30 秒的去抖队列,避免频繁写入;确认无重复后,再以原子操作写入 JSON 文件或向量数据库,确保记忆的一致性与可靠性。

3.4 Flow(工作流)与 DSL(领域特定语言):任务的显式编排

DeerFlow 的工作流基于 LangGraph 的有向无环图(DAG)实现,核心是通过显式定义节点与边,将任务的执行流程标准化,解决传统智能体 “黑箱调度” 的问题 —— 用户可以清晰看到任务的拆解逻辑与执行顺序,甚至在关键节点介入调整(96)


  • Flow:任务的执行流程定义,包含节点(如 Coordinator、Planner、Researcher)与边(节点间的依赖关系)。例如,一个典型的研究任务 Flow 会是:Coordinator 解析意图→Planner 拆解子任务→Researcher 并行执行信息检索→Coder 执行数据清洗→Reporter 生成报告→Coordinator 汇总结果返回给用户(80)

  • DSL:定义 Flow 的领域特定语言,支持 YAML/JSON 格式。例如,用户可以通过以下 YAML 配置,快速搭建一个简单的研究任务流:
nodes:

 - id: coordinator

   type: agent

   config: { role: "coordinator" }

 - id: planner

   type: agent

   config: { role: "planner" }

   dependencies: \[coordinator]

 - id: researcher

   type: agent

   config: { role: "researcher" }

   dependencies: \[planner]

这种声明式的配置方式,让用户无需编写复杂代码,即可完成工作流的定义与修改(117)

3.5 Sandbox(沙箱):安全执行的隔离环境

Sandbox 是 DeerFlow 区别于其他智能体框架的核心特性 —— 它为子智能体提供了真实的执行环境,而非模拟的工具调用,同时通过严格的资源隔离,解决了 “大模型执行代码不可控” 的行业痛点(267)

DeerFlow 支持两种沙箱模式,满足不同场景的需求:


  • LocalSandboxProvider:直接在宿主机执行命令,仅适用于开发测试场景。这种模式的优势是启动速度快,但没有隔离机制,存在安全风险(93)

  • AioSandboxProvider:基于 Docker 容器的隔离执行环境,每个子智能体任务都运行在独立的容器中,拥有完整的文件系统、网络权限与资源限制(如 CPU、内存配额)。容器采用字节自研的 AIO Sandbox 镜像,内置 Python、Node.js 等常用运行时,支持安装第三方依赖,同时严格限制宿主机资源访问,避免恶意代码或误操作的影响(93)

沙箱还支持虚拟路径映射,将容器内的/mnt/user-data/workspace/mnt/user-data/uploads等路径,映射到宿主机的.deer-flow/threads/{thread_id}/user-data/目录 —— 这既方便子智能体读写文件,又保证了不同任务的文件系统完全隔离,不会相互污染(93)


4. 功能模块详解

4.1 核心功能模块

DeerFlow 的功能模块围绕 “让 AI 真正能交付复杂任务” 的目标设计,每个模块都解决了传统智能体的一个核心痛点,共同构成了完整的智能体执行能力。

4.1.1 子智能体并行调度系统

这是 DeerFlow 提升任务效率的核心模块。当 Lead Agent 接收到复杂任务时,会先将其拆解为多个子任务,再为每个子任务动态创建对应的 Sub-Agent,子任务之间可以并行执行,无需等待前一个任务完成(99)。例如,调研 “2026 年 AI Agent 趋势” 时,Lead Agent 会同时创建 3 个 Researcher 子智能体,分别负责 “技术架构”“性能对比”“应用场景” 三个维度的信息检索,总耗时约等于最慢的单个子任务的耗时,整体效率比串行执行提升 3-5 倍(270)

为了避免子智能体过度并发导致系统资源耗尽,DeerFlow 通过SubagentLimitMiddleware控制单次响应的最大并发数,默认值为 3—— 这是字节团队在内部高并发场景中验证的最优值,既能保证效率,又能避免资源过载(110)

4.1.2 沙箱执行环境

沙箱是 DeerFlow 实现 “安全执行” 的核心保障。每个子智能体任务在 Docker 容器中运行,拥有独立的文件系统与资源配额,容器生命周期与任务强绑定 —— 任务启动时自动创建容器,任务结束后自动销毁,避免资源泄漏(267)

沙箱支持完整的文件操作与命令执行:子智能体可以在容器内读写文件、安装依赖、运行 Python 脚本,甚至执行 bash 命令。例如,Coder 子智能体可以在沙箱中运行数据清洗脚本,生成的结果文件会通过虚拟路径映射到宿主机,方便用户后续查看或复用(267)

4.1.3 分层记忆系统

分层记忆系统解决了传统智能体 “长时任务失忆” 的痛点。工作记忆存储当前任务的中间状态,短时记忆保留当前会话的上下文,长时记忆记录跨会话的用户偏好与事实性知识 —— 三者协同,让智能体既能记住当前任务的进度,又能回忆起之前的用户需求(254)

例如,用户在周一请求 “调研生成式 AI 在金融的应用”,周三又请求 “调研生成式 AI 在医疗的应用” 时,Lead Agent 会自动从长时记忆中调取用户 “关注生成式 AI” 的偏好,调整搜索关键词的优先级,无需用户重复说明。

4.1.4 Markdown 技能系统

技能系统是 DeerFlow 实现 “能力复用” 的关键。每个技能是一个 Markdown 文件,包含工作流、输出模板、质量校验规则 —— 例如report-generation技能,会明确规定 “摘要→核心数据→分析结论→引用来源” 的输出结构,甚至包含图表生成的参数要求(125)

这种设计的优势在于:用户无需编写代码,只需修改 Markdown 文件,即可定制智能体的输出格式与执行逻辑。例如,企业可以将内部的报告规范写入技能文件,让智能体生成的结果完全符合企业标准,无需额外调整。

4.1.5 中间件链

中间件链是 DeerFlow 实现 “横切关注点复用” 的核心机制 —— 所谓 “横切关注点”,是指那些需要在多个流程中重复执行的逻辑,如工作区初始化、文件上传处理、上下文压缩等。DeerFlow 的中间件链包含 11 个核心模块,按执行顺序依次为:

中间件名称核心职责
ThreadDataMiddleware为每个任务创建独立的工作区目录,确保不同任务的文件系统隔离
UploadsMiddleware处理用户上传的文件,将其注入到子智能体的上下文,并转换为沙箱可访问的虚拟路径
SandboxMiddleware为子智能体分配沙箱实例,记录 sandbox_id,确保任务在隔离环境中执行
DanglingToolCallMiddleware处理孤立的工具调用(如工具调用未完成但 Agent 已退出的情况),避免资源泄漏
SummarizationMiddleware当上下文长度接近 token 阈值时,自动压缩早期消息,保留核心信息
TodoListMiddleware在规划模式下生成任务跟踪列表,供用户或 Agent 监控子任务进度
TitleMiddleware自动生成对话标题,方便用户识别不同的任务会话
ViewImageMiddleware处理用户上传的图片,调用视觉模型(如 CLIP)进行内容识别,支持多模态任务
ClarificationMiddleware当任务信息不明确时,自动向用户发起澄清请求,获取关键参数

中间件采用 “责任链” 模式执行,每个中间件只负责自己的逻辑,执行完成后将控制权传递给下一个中间件。这种设计让系统的横切关注点与核心业务逻辑完全解耦 —— 例如,当需要新增 “权限校验” 功能时,只需添加一个新的中间件,无需修改任何核心业务代码,大幅提升了系统的可扩展性(218)

4.2 官方 Demo 与典型应用场景

DeerFlow 的官方 Demo 覆盖了从简单到复杂的全场景任务,验证了其在不同领域的落地能力。以下是三个典型场景的实测数据与效果说明:

4.2.1 深度研究:2026 年 AI Agent 框架发展趋势报告


  • 任务描述:用户输入 “分析 2026 年 AI Agent 框架的技术架构、性能对比与应用场景,输出带图表的研究报告”;

  • 执行流程:Coordinator 解析意图→Planner 拆解为 3 个维度的子任务→3 个 Researcher 子智能体并行搜索→Coder 在沙箱中运行 Python 脚本生成趋势折线图→Reporter 汇总信息生成 Markdown 报告;

  • 实测数据:总耗时 80 分钟,输出 20 页带引用来源的报告,数据准确率达 92%,报告质量达到 “高级分析师助理” 水平 —— 逻辑清晰、图表规范,甚至能识别并过滤不可靠的信息来源(236)

4.2.2 代码生成与执行:天气数据可视化工具


  • 任务描述:用户输入 “生成一个能获取北京近 7 天天气数据并可视化的 Python 脚本”;

  • 执行流程:Coordinator 识别为编码任务→Planner 拆解为 “数据获取”“可视化”“调试” 三个子任务→Researcher 搜索天气 API 文档→Coder 在沙箱中编写并执行脚本→Reporter 生成使用说明;

  • 实测数据:总耗时 12 分钟,脚本运行成功率达 89%,生成的折线图清晰展示了近 7 天的气温变化。沙箱环境自动隔离了脚本的网络请求,避免了对宿主机的影响(263)

4.2.3 内容创作:AI 播客脚本生成


  • 任务描述:用户输入 “生成一个关于 AI Agent 在医疗领域应用的播客脚本,要求有对话、案例与数据支撑”;

  • 执行流程:Coordinator 识别为内容创作任务→Planner 拆解为 “案例收集”“脚本大纲”“角色对话” 三个子任务→Researcher 搜索医疗领域的 AI Agent 案例→Reporter 生成带角色分工的脚本→TTS 工具将脚本转换为音频;

  • 实测效果:输出的脚本包含医生、患者、主持人三个角色的对话,引用了 3 个真实的医疗 AI Agent 案例,音频质量清晰,可直接用于播客发布(128)

5. 架构原理与工作机制

5.1 系统架构图

DeerFlow 的系统架构采用严格的分层设计,各层之间通过标准化接口通信,确保了系统的高内聚、低耦合。以下是其核心架构的分层示意图:

flowchart TD
    %% 客户端
    Client["Client (Browser)"]
    
    %% 统一入口:Nginx 反向代理
    Nginx["Nginx (Port: 2026)<br>统一反向代理入口"]
    Nginx -->|/api/langgraph/*| Route1["LangGraph Server"]
    Nginx -->|/api/*| Route2["Gateway API"]
    Nginx -->|/*| Route3["Frontend"]

    %% 三大核心服务
    LangGraph["LangGraph Server (Port: 2024)<br>• Agent Runtime<br>• Thread Mgmt<br>• SSE Streaming<br>• Checkpointing"]
    Gateway["Gateway API (Port: 8001)<br>• Models API<br>• MCP Config<br>• Skills Mgmt<br>• File Uploads<br>• Artifacts"]
    Frontend["Frontend (Port: 3000)<br>• Next.js App<br>• React UI<br>• Chat Interface"]

    %% 共享配置层
    Shared["Shared Configuration<br>全局共享配置"]
    Config1["config.yaml<br>• Models<br>• Tools<br>• Sandbox<br>• Summarization"]
    Config2["extensions_config.json<br>• MCP Servers<br>• Skills State"]
    Shared --> Config1
    Shared --> Config2

    %% 调用关系
    Client --> Nginx
    Nginx --> LangGraph
    Nginx --> Gateway
    Nginx --> Frontend

    %% 依赖关系
    LangGraph --> Shared
    Gateway --> Shared

5.2 核心执行流程

DeerFlow 的核心执行流程遵循 “用户请求→中间件预处理→智能体调度→工具执行→结果汇总” 的闭环,每个环节都有明确的职责边界与状态管理机制,确保任务的可控性与可追溯性。以下是其详细的执行步骤:


  1. 用户请求接入:用户通过 Web UI 或 API 提交任务,请求先经过 Nginx 反向代理,被路由到对应的服务 —— 如果是 Agent 相关的请求(如任务创建、进度查询),路由到 LangGraph Server;如果是静态资源或文件上传请求,路由到 Gateway API 或 Frontend(93)

  2. 中间件预处理:LangGraph Server 加载 ThreadState,依次执行中间件链:ThreadDataMiddleware 初始化工作区,UploadsMiddleware 注入用户上传的文件列表,SandboxMiddleware 分配沙箱实例,SummarizationMiddleware 压缩上下文,TitleMiddleware 生成对话标题等(218)

  3. 智能体调度:Lead Agent 接收预处理后的请求,解析用户意图。如果是复杂任务,Coordinator 会将其路由给 Planner;Planner 将任务拆解为子任务,动态创建 Sub-Agent 并分配任务,子任务之间可以并行执行(100)

  4. 工具执行:Sub-Agent 根据任务类型调用对应的 Tool,Tool 在沙箱中执行具体操作(如搜索、代码运行),执行结果会被记录到 ThreadState 中,供后续步骤使用(267)

  5. 结果汇总:所有 Sub-Agent 任务完成后,Lead Agent 汇总结果,生成最终输出(如报告、代码、音频),并通过 SSE 实时返回给用户(270)

  6. 状态持久化:任务结束后,ThreadState 中的关键信息(如长时记忆、生成的文件路径)会被持久化到本地或云端存储,沙箱实例被销毁,工作区目录被保留,方便用户后续复用或查看结果(254)

5.3 关键技术解析

5.3.1 子智能体通信机制

DeerFlow 的子智能体通信采用 “工具调用 + 状态共享” 的模式,既保证了子智能体的独立性,又实现了上下文的协同 —— 这种设计的核心是 “状态驱动”,而非 “消息驱动”,避免了子智能体之间的直接耦合(110)


  • TaskTool 调用:Lead Agent 通过task_tool工具触发子智能体的执行,传入任务描述、子智能体类型与上下文参数。子智能体执行完成后,将结果写入 ThreadState,Lead Agent 通过轮询 ThreadState 获取结果 —— 这种方式让 Lead Agent 无需感知子智能体的执行细节,只需关注状态的变化(110)

  • 状态共享:所有 Agent 共享同一个 ThreadState,但每个子智能体只能修改自己的状态字段 —— 例如,Researcher 子智能体只能修改research_results字段,Coder 子智能体只能修改code_output字段。这种设计避免了子智能体之间的状态污染,提升了系统的稳定性(93)

5.3.2 沙箱隔离技术

沙箱隔离是 DeerFlow 的核心特性,其技术实现基于 Docker 容器,分为 “实例管理”“路径映射”“资源限制” 三个核心部分:


  • SandboxProvider 抽象:沙箱的创建、获取与销毁,都通过抽象的SandboxProvider接口完成。LocalSandboxProvider 适用于开发场景,直接在宿主机执行命令;AioSandboxProvider 适用于生产场景,基于 Docker 容器实现隔离。这种抽象设计让沙箱的实现可以灵活替换,无需修改核心业务代码(93)

  • 虚拟路径映射:沙箱内部的/mnt/user-data/workspace/mnt/user-data/uploads等路径,会被映射到宿主机的.deer-flow/threads/{thread_id}/user-data/目录。例如,用户上传的文件会被存储在宿主机的uploads目录,子智能体可以通过沙箱内的虚拟路径访问,既方便了文件操作,又保证了不同任务的文件系统隔离(93)

  • 资源限制:每个沙箱实例都有严格的 CPU、内存与网络限制 —— 例如,生产环境中每个沙箱的内存限制为 2G,CPU 限制为 2 核,避免单个任务消耗过多资源,影响其他任务的执行(241)

5.3.3 记忆检索与上下文压缩

记忆检索与上下文压缩,是 DeerFlow 解决 “长时任务失忆” 与 “token 浪费” 的关键技术,其核心是 “保留有用信息,过滤冗余信息”:


  • 记忆检索:当需要调用长时记忆时,系统会先将当前查询转换为向量,再在向量数据库中进行语义匹配,返回最相关的记忆片段。这种方式比传统的关键词匹配更精准,能有效识别用户的潜在需求(254)

  • 上下文压缩:当上下文长度接近 token 阈值时,SummarizationMiddleware 会自动对早期消息进行摘要压缩。压缩规则可以通过 config.yaml 配置,例如 “保留最近 20 轮对话,对超过 50 轮的对话进行摘要”。这种设计能将上下文长度压缩 30% 以上,降低 token 消耗,同时保留核心信息(267)

6. 工程实现与代码结构

6.1 项目目录结构

DeerFlow 的代码结构遵循 “清晰分层、职责单一” 的原则,分为backend/(后端服务)、frontend/(前端界面)、docker/(容器化配置)、docs/(文档)四大核心目录,各目录之间通过标准化接口通信,耦合度极低。

deer-flow/

├── backend/                 # 后端服务代码

│   ├── src/

│   │   ├── agents/          # Agent实现(Lead Agent、Coordinator、Planner等)

│   │   │   └── lead_agent/  # 主智能体的核心实现,入口为make_lead_agent函数

│   │   ├── gateway/         # Gateway API服务,基于FastAPI构建

│   │   ├── sandbox/         # 沙箱管理模块,包含SandboxProvider的实现

│   │   ├── tools/           # 工具实现,分为内置工具与MCP扩展工具

│   │   └── models/          # 模型工厂,实现多模型兼容

│   ├── docs/                # 后端文档,包括架构设计、API参考与配置指南

│   └── requirements.txt     # Python依赖清单

├── frontend/                # 前端代码,基于Next.js+React构建

│   ├── src/

│   │   ├── components/      # React组件,包括聊天界面、任务进度监控等

│   │   └── pages/           # 页面路由,对应Web UI的不同功能模块

│   └── package.json         # Node.js依赖清单

├── docker/                  # Docker配置文件

│   ├── docker-compose.yml   # 容器化部署配置,包含所有服务的资源限制

│   └── Dockerfile           # 后端服务的Docker镜像构建文件

├── config.example.yaml      # 配置示例文件,包含模型、工具、沙箱等的配置模板

├── .env.example             # 环境变量示例文件,包含API密钥、端口等敏感信息

└── README.md                # 项目说明文档

6.2 本地部署与开发流程

DeerFlow 支持 Docker 与本地开发两种部署方式,其中 Docker 是官方推荐的生产环境部署方式 —— 它能自动处理依赖安装、环境配置与资源隔离,无需用户手动调整系统环境。

6.2.1 Docker 部署(生产环境推荐)

Docker 部署的步骤简单清晰,适合快速启动生产环境:

  1. 克隆仓库:从 GitHub 克隆 DeerFlow 的代码仓库,建议使用--recursive参数,因为 DeerFlow 依赖多个子模块:
git clone --recursive https://github.com/bytedance/deer-flow.git

cd deer-flow
  1. 生成配置文件:执行make config命令,基于config.example.yaml生成本地配置文件config.yaml
make config
  1. 配置环境变量:复制.env.example.env,填入所需的 API 密钥(如 OpenAI API Key、Tavily API Key)与端口信息:
cp .env.example .env

\# 编辑.env文件,填入API密钥
  1. 拉取沙箱镜像:首次运行需执行make docker-init拉取字节自研的 AIO Sandbox 镜像:
make docker-init
  1. 启动服务:执行make docker-start启动所有服务,包括 Nginx、LangGraph Server、Gateway API 与 Frontend:
make docker-start
  1. 访问服务:打开浏览器,访问http://localhost:2026即可进入 Web UI,开始使用 DeerFlow(209)

6.2.2 本地开发(二次开发推荐)

本地开发适合需要修改源码或调试功能的场景,但需要手动安装依赖:

  1. 安装依赖:安装 Python 3.12+、Node.js 22+、uv(Python 包管理工具)、pnpm(Node.js 包管理工具):
\# 安装uv

curl -LsSf https://astral.sh/uv/install.sh | sh

\# 安装pnpm

npm install -g pnpm
  1. 安装 Python 依赖:使用 uv 安装项目的 Python 依赖:
uv pip install -r backend/requirements.txt
  1. 安装 Node.js 依赖:使用 pnpm 安装项目的 Node.js 依赖:
pnpm install --prefix frontend
  1. 启动服务:分别启动后端与前端服务:
\# 启动后端服务

cd backend && uvicorn src.gateway.app:app --reload --port 8001

\# 启动前端服务

cd frontend && pnpm run dev --port 3000
  1. 访问服务:打开浏览器,访问http://localhost:3000即可进入 Web UI(210)

6.2.3 国内环境部署优化

由于国内网络环境的特殊性,直接部署 DeerFlow 可能会遇到 “依赖安装缓慢”“Docker 镜像拉取失败” 等问题。以下是针对国内环境的优化方案:


  • 替换系统软件源:对于 Ubuntu/Debian 系统,将默认的 apt 源替换为阿里云或清华源,加速系统依赖的安装;

  • 配置 Docker 镜像加速:打开 Docker Desktop 的设置界面,在 Docker Engine 中添加国内镜像源:
{

 "registry-mirrors": \[

   "https://docker.1ms.run",

   "https://docker.xuanyuan.me"

 ]

}

配置完成后重启 Docker,即可加速镜像拉取(221)

  • 使用国内 PyPI 源:在~/.pip/pip.conf中添加清华 PyPI 源,加速 Python 依赖的安装:
\[global]

index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  • 克隆国内镜像仓库:如果 GitHub 克隆速度缓慢,可以使用 GitCode 的镜像仓库:
git clone https://gitcode.com/GitHub_Trending/deer-flow.git

6.3 核心模块代码解析

6.3.1 Lead Agent 初始化

Lead Agent 是 DeerFlow 的核心入口,其初始化逻辑位于backend/src/agents/lead_agent/``agent.py文件中,通过make_lead_agent(config)函数实现。该函数的核心逻辑是加载配置、初始化中间件链、创建 Agent 实例,具体步骤如下:

def make_lead_agent(config: Dict) -> Agent:

   # 1. 从配置中加载模型工厂,支持多模型切换

   model_factory = ModelFactory(config\["models"])

   # 2. 初始化中间件链,按顺序加载所有中间件

   middleware_chain = MiddlewareChain(\[

       ThreadDataMiddleware(),

       UploadsMiddleware(),

       SandboxMiddleware(),

       SummarizationMiddleware(),

       # ... 其他中间件

   ])

   # 3. 加载工具系统,包括内置工具、配置工具与MCP工具

   tool_system = ToolSystem(config\["tools"])

   # 4. 创建Lead Agent实例,集成模型、中间件与工具

   agent = LeadAgent(

       model_factory=model_factory,

       middleware=middleware_chain,

       tools=tool_system.get_tools()

   )

   return agent

Lead Agent 的核心职责是 “任务调度”,而非 “直接执行任务”—— 它会根据任务类型,将其分配给对应的 Sub-Agent,例如将研究任务分配给 Researcher,将编码任务分配给 Coder。这种设计让 Lead Agent 无需关注具体的任务执行细节,只需聚焦于整体的任务调度与结果汇总(235)

6.3.2 工具调用逻辑

工具调用的核心逻辑位于backend/src/tools/builtins/``task_tool.py文件中,TaskTool类是子智能体调度的关键。当 Lead Agent 需要调用子智能体时,会通过_run方法触发,具体逻辑如下:

class TaskTool(BaseTool):

   name = "task_tool"

   description = "调用子智能体执行具体任务"

   def _run(self, task: str, agent_type: str, context: Dict) -> Dict:

       # 1. 创建子智能体实例,根据agent_type选择对应的子智能体类型

       sub_agent = SubAgentFactory.create(agent_type)

       # 2. 执行子智能体任务,传入任务描述与上下文

       result = sub_agent.run(task, context)

       # 3. 返回子智能体的执行结果,写入ThreadState

       return {"status": "success", "result": result}

工具调用的错误处理机制非常完备:如果工具调用超时(默认 5 分钟),会自动重试 1 次;如果重试失败,会返回标准化的错误结果,并记录到日志中,方便后续排查问题(86)

6.3.3 中间件执行逻辑

中间件的执行逻辑采用 “责任链” 模式,每个中间件都实现了process方法,执行完成后将控制权传递给下一个中间件。以SummarizationMiddleware为例,其核心逻辑是 “检测上下文长度,压缩冗余信息”:

class SummarizationMiddleware(BaseMiddleware):

   def process(self, state: ThreadState) -> ThreadState:

       # 1. 检查上下文长度是否超过阈值(从config.yaml加载)

       if len(state.messages) > self.config\["max_messages"]:

           # 2. 对早期消息进行摘要压缩,保留核心信息

           summary = self.summarize(state.messages\[:-self.config\["keep_messages"]])

           # 3. 替换早期消息为摘要,更新状态

           state.messages = \[summary] + state.messages\[-self.config\["keep_messages"]:]

       # 4. 将控制权传递给下一个中间件

       return state

这种设计让中间件的逻辑完全独立,新增或修改中间件无需修改其他代码,大幅提升了系统的可扩展性(218)


7. 对可落地 AI 智能体开发的启示

DeerFlow 的核心价值,不在于它提供了多少新功能,而在于它确立了 “生产级智能体框架” 的工程化标准 —— 它用代码回答了 “如何让 AI 真正能交付复杂任务” 这个核心问题。以下是其对可落地 AI 智能体开发的关键启示。

7.1 设计原则层面的启示

7.1.1 关注点分离:单一职责原则的极致应用

DeerFlow 的每个模块、每个 Agent 都有且只有一个明确的职责 ——Coordinator 负责用户交互,Planner 负责任务拆解,Sub-Agent 负责任务执行,中间件负责横切关注点。这种设计的优势在于:


  • 降低复杂度:每个模块只需要处理自己的逻辑,无需关注其他模块的实现细节,代码的可读性与可维护性大幅提升;

  • 提升容错性:单一模块的错误不会扩散到其他模块 —— 例如,Coder 子智能体的代码执行错误,不会影响 Researcher 子智能体的信息检索;

  • 增强可扩展性:新增功能只需添加新的模块,无需修改现有代码 —— 例如,新增 “PPT 生成” 功能,只需添加一个 PPTGenerator 子智能体,无需修改 Coordinator 或 Planner 的代码(260)

7.1.2 执行优先:沙箱是智能体落地的必要条件

传统智能体框架往往只实现了 “模型调用工具”,而 DeerFlow 实现了 “智能体在真实环境中执行任务”—— 沙箱是其核心竞争力。这启示我们:没有安全隔离的执行环境,智能体就无法落地到企业级场景。因为企业级场景中,智能体需要执行代码、读写文件,一旦没有隔离机制,恶意代码或误操作可能会导致数据泄露、系统崩溃等严重问题。

沙箱的设计必须满足三个条件:真实的执行环境、严格的资源隔离、灵活的实现替换。DeerFlow 的沙箱设计,正是这三个条件的完美体现 —— 它为智能体提供了真实的执行环境,同时通过 Docker 容器实现了严格的隔离,并且通过抽象的SandboxProvider接口,让沙箱的实现可以灵活替换(267)

7.1.3 渐进式加载:上下文管理的最优解

DeerFlow 的技能系统与记忆系统,都采用了 “渐进式加载” 的设计 —— 技能分为元数据层、指令层、资源层,记忆分为工作记忆、短时记忆、长时记忆。这种设计的核心是 “避免一次性加载所有资源”,而是根据需要动态加载,解决了大模型 “上下文窗口有限” 与 “token 消耗过高” 的问题。

这启示我们:在设计智能体的上下文管理系统时,必须区分 “立即需要的信息” 与 “可能需要的信息”,只将 “立即需要的信息” 放入上下文,“可能需要的信息” 则通过检索动态获取。例如,用户请求 “调研 2026 年 AI Agent 趋势” 时,只需将 “趋势调研” 的核心关键词放入上下文,而相关的历史数据、用户偏好等信息,通过长时记忆检索动态获取(261)

7.1.4 可观测性:调试与优化的基础

DeerFlow 内置了 LangSmith 链路追踪,所有的 LLM 调用、Agent 运行、工具执行都会被记录下来,并在 LangSmith 仪表盘中展示。开发者可以清晰地看到每个步骤的执行时间、参数与结果,快速定位问题 —— 例如,当任务执行超时,开发者可以通过 LangSmith 查看是哪个子智能体的工具调用超时,从而针对性优化。

这启示我们:可观测性是智能体落地的必要条件。智能体的决策过程是黑箱,没有可观测性,就无法调试、无法优化,更无法在生产环境中稳定运行。因此,在设计智能体系统时,必须内置链路追踪、日志记录与监控告警机制(190)

7.2 工程实践层面的建议

7.2.1 优先实现核心能力,再扩展功能

DeerFlow 的落地经验告诉我们:不要一开始就追求大而全的功能,而应该先实现核心能力,再逐步扩展。具体的优先级顺序是:


  1. 沙箱执行环境:这是智能体落地的基础,没有安全隔离的执行环境,一切都是空谈;

  2. 子智能体调度系统:实现任务拆解与并行执行,提升任务效率;

  3. 记忆系统:实现上下文管理与跨会话记忆,解决 “长时任务失忆” 的问题;

  4. 技能系统:实现能力复用与标准化,降低开发成本;

  5. 可视化界面:提升用户体验,方便非技术人员使用(267)

7.2.2 拥抱开源生态,避免重复造轮子

DeerFlow 的技术栈全部基于开源生态 ——LangGraph 提供工作流编排,LangChain 提供工具集成,LiteLLM 提供多模型兼容。这启示我们:不要重复造轮子,而是要站在开源生态的肩膀上,快速构建自己的智能体系统

开源生态已经解决了大部分基础问题,例如模型适配、工具集成、工作流编排等。我们需要做的,是根据自己的业务需求,对开源组件进行定制化扩展,而不是从零开始开发。这样可以大幅降低开发成本,缩短落地周期(108)

7.2.3 重视错误处理与降级策略

智能体的执行过程中,不可避免会出现错误 —— 例如模型调用超时、工具执行失败、网络异常等。DeerFlow 的错误处理机制非常完备:工具调用超时会自动重试,模型调用失败会自动降级,中间件执行错误会记录到日志中。

这启示我们:错误处理与降级策略,是智能体稳定运行的关键。在设计智能体系统时,必须考虑所有可能的错误场景,并制定对应的处理策略 —— 例如,当 GPT-4 调用失败时,自动降级到 DeepSeek;当工具执行超时,自动重试或返回缓存结果;当网络异常时,暂停任务并保存状态,待网络恢复后继续执行(230)

7.2.4 安全是底线,沙箱是核心保障

DeerFlow 的沙箱设计,为智能体的安全执行提供了严格的保障 —— 每个任务都运行在独立的 Docker 容器中,拥有严格的资源限制与网络隔离。这启示我们:安全是智能体落地的底线,没有安全保障,智能体就无法进入企业级场景

在设计智能体系统时,必须实现严格的安全隔离机制:代码执行必须在沙箱中进行,文件操作必须限制在指定目录,网络请求必须经过严格的权限控制。同时,必须对智能体的输出进行敏感信息检测,避免数据泄露(267)


8. 总结

DeerFlow 2.0 是字节跳动在智能体工程化领域的集大成之作 —— 它不是一个简单的 “大模型调用工具”,而是一套 “超级智能体执行底座”。它将字节内部数千个智能体应用的实战经验,沉淀为一套可复用的工程化范式,解决了传统智能体 “不可控”“易出错”“难落地” 的核心问题。

本报告从项目背景、架构设计、核心概念、功能模块、工程实现等维度,系统拆解了 DeerFlow 的设计思路与技术细节,并提炼了其对可落地 AI 智能体开发的关键启示:


  • 架构层面:采用 “主智能体 + 动态子智能体 + 中间件链” 的分层架构,实现了关注点分离与高内聚低耦合;

  • 安全层面:基于 Docker 沙箱实现了严格的资源隔离,解决了 “智能体执行代码不可控” 的问题;

  • 效率层面:通过子智能体并行调度,将任务效率提升 3-5 倍,支持从分钟级到小时级的复杂任务;

  • 工程层面:采用 “渐进式加载” 的上下文管理,降低了 token 消耗;内置可观测性机制,提升了调试与优化的效率。

这些设计思路与工程化范式,不仅适用于 DeerFlow 本身,也适用于所有可落地的 AI 智能体系统。对于研究与落地 AI 智能体的开发者而言,DeerFlow 是一份 “生产级智能体框架的教科书”—— 它用代码回答了 “如何让 AI 真正能交付复杂任务” 这个核心问题,为我们提供了可复用的设计原则与实践路径。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注