核心摘要
本报告基于字节跳动开源项目deer-flow后端核心架构文档(backend/CLAUDE.md),从大模型工程化(LLM Engineering)思想视角,深入剖析其设计逻辑,重点梳理其中体现工程化思维的核心 Harness(调度框架)设计与实现方法。
DeerFlow 2.0 是字节跳动开源的Super Agent Harness—— 而非单一 Agent 应用,其核心定位是给基于大模型的超级智能体提供生产级运行时底座:整合多智能体协同编排、沙箱安全执行、持久化记忆管理、工具 / 技能扩展等底层核心能力,让大模型智能体可以从 “单轮问答” 落地为 “能独立执行复杂长周期任务” 的可靠主体(93)。该项目的后端架构严格遵循关注点分离与依赖方向控制的工程化原则,将核心框架逻辑与上层业务实现层完全解耦,其 Harness 层的设计哲学完美契合大模型从原型验证到规模化生产落地的工程化核心需求。
1. 引言:从大模型到大模型智能体的工程化跃迁
要理解 DeerFlow 的架构价值,必须先读懂其背后的工程化演进逻辑。在大模型技术的落地初期,行业的核心关注点是模型能力本身 —— 通过 Prompt 工程、RAG(检索增强生成)或微调,让模型产出符合预期的文本结果。但随着业务场景向复杂长周期任务延伸,单纯的模型输出能力已经无法支撑落地需求:真实场景下的 AI 任务,往往需要串联工具调用、数据处理、代码执行、多轮状态流转等多个环节,模型本身的 “生成能力” 只是整个任务链的一环。
这时,行业的核心矛盾就从 “如何让模型输出更准确” 转变为 “如何让模型可靠驱动完整业务流程”—— 这一阶段的核心工程化命题,是为大模型提供一套稳定、可控、可扩展的运行时底座,也就是 DeerFlow 所定位的 Super Agent Harness。换而言之:模型负责 “思考”,而 Harness 负责为模型的 “思考结果” 提供标准化的执行环境、可靠的工具调用通路、安全的隔离机制,以及协调所有辅助资源的能力。
DeerFlow 正是这一工程化思想的典型落地载体。它的核心目标不是构建一个 “功能更强的智能体应用”,而是输出一套可复用、可扩展、高可靠的标准化框架 —— 将大模型从单纯的 “文本生成器” 升级为具备完整任务规划、工具调用、并行执行、安全隔离能力的 “超级智能体”。这套框架的设计逻辑,精准击中了大模型工程化在生产落地阶段的一系列核心痛点。
2. 项目架构概览:backend/CLAUDE.md定义的结构范式
根据backend/CLAUDE.md及相关源码文档的权威定义,DeerFlow 后端采用分层、微服务化的架构设计,以反向代理层为统一流量入口,将系统拆分为多个职责单一、可独立运维的核心组件,通过标准化的 HTTP 协议完成通信。这一设计的核心目的,是支撑高并发、长周期、多租户的企业级 AI 任务场景。
2.1 服务拓扑与组件分工
DeerFlow 后端的服务拓扑结构,完全遵循 “反向代理流量统一接入、核心职责分层隔离、组件间松耦合通信” 的经典工程化范式 —— 这一架构的核心设计目标,是实现各服务组件的独立运维与能力扩展,避免出现 “核心逻辑与接入逻辑强绑定” 的分布式架构通病。具体的拓扑细节与核心组件职责如下:
服务组件 | 对外端口 | 核心职责 | 核心入口 / 源码定位 |
Nginx 反向代理 | 2026 | 整个系统的唯一流量接入点,负责基于请求路径的精准路由分发:将/api/langgraph/*格式的请求转发给智能体运行时、将/api/*格式的其他 REST 请求转发给网关 API 服务;同时承担跨域配置、SSL 终止符、流量负载均衡等边缘治理能力 | docker/nginx/nginx.conf路由规则定义详见backend/CLAUDE.md第 12 行 |
网关 API 服务 | 8001 | 整个系统的核心 API 治理层:一方面承担 RESTful API 的完整生命周期管理,包括用户鉴权、权限校验、限流熔断、日志采集;另一方面内嵌集成了 LangGraph 智能体运行时,负责将代理转发过来的智能体执行请求直接交给运行时引擎处理 | backend/app/gateway/app.py核心逻辑定义详见backend/CLAUDE.md第 10 行 |
LangGraph 智能体运行时 | 无独立端口(由网关 API 内嵌托管) | 多智能体工作流的核心编排引擎,基于 LangGraph StateGraph 构建:负责任务节点的驱动执行、多智能体间的状态共享、流转条件的分支判断,以及与沙箱、工具、内存等核心资源组件的交互 | backend/packages/harness/deerflow/runtime/runs/worker.py编排逻辑定义详见backend/CLAUDE.md第 14 行 |
Provisioner(可选沙箱治理服务) | 8002 | Kubernetes 集群模式下的沙箱生命周期独立治理服务:负责远程沙箱环境的动态创建、销毁、资源配额校验与状态回收 —— 仅在用户配置 K8s 集群级沙箱隔离模式时启用 | docker/docker-compose-dev.yaml配置规则定义详见backend/CLAUDE.md第 13 行 |
前端服务 | 3000 | 基于 Next.js 构建的用户界面层:承担任务编排的可视化配置、智能体执行过程的实时追踪、文件交互管理、多渠道对话消息的渲染等前端交互能力 | 前端项目源码目录路由规则定义详见backend/CLAUDE.md第 11 行 |
这一拓扑架构的核心设计逻辑,可以通过下面的流程示意图更直观地体现出来:
用户请求流量接入 ↓ Nginx 反向代理(端口2026) ├─ 路由规则:/api/langgraph/* → 转发到网关API的LangGraph运行时处理路径 └─ 路由规则:/api/* → 转发到网关API的其他RESTful接口处理路径 ↓ 网关API服务(端口8001) ├─ 内嵌LangGraph运行时:负责智能体工作流编排执行 └─ 其他RESTful接口:负责资源管理、任务生命周期管控等通用操作 ↓ Provisioner服务(端口8002,可选) └─ 沙箱生命周期治理:为运行时提供隔离的代码执行环境 |
从逻辑分层的角度,上述所有服务组件可以进一步划分为三大逻辑层,其层级依赖关系完全遵循 “接入层 thinner、编排层 stronger、资源层 stable” 的云原生工程化最佳实践 —— 这也是 DeerFlow 能够支撑企业级大规模流量场景的重要基础。
2.2 核心逻辑分层:Harness 与 App 层的严格解耦
这是 DeefLow 架构工程化设计的最大亮点:它没有将框架核心逻辑与上层业务逻辑打包耦合在一起,而是在两者之间做了彻底的分层隔离 —— 并且通过自动化测试手段强制保证这一隔离规则的执行。这一设计的核心源码依据,在backend/CLAUDE.md第 112-117 行中有明确说明。
具体而言,DeerFlow 后端的代码仓库被划分为两个完全独立的层级,两者的依赖方向被严格限定为App 层只能调用 Harness 层的接口,Harness 层绝对不能依赖 App 层的任何代码—— 这一方向约束是整个框架可扩展性、可维护性的基石。
2.2.1 Harness 层:超级智能体的核心框架底座
Harness 层是 DeerFlow 的技术内核,也是本报告后续章节重点剖析的工程化载体。它的代码位于仓库的backend/packages/harness/deerflow/目录中,最终会被打包为一个独立的可发布软件包deerflow-harness—— 这意味着它可以脱离 DeerFlow 的默认应用场景,被独立集成到其他业务系统中。
作为超级智能体的 “操作系统”,Harness 层不关心任何上层业务的具体接入逻辑 —— 比如对接的是飞书还是 Slack、API 的请求报文格式如何定义,这类问题都由上层 App 层负责处理。它只聚焦于提供让大模型智能体稳定运行的底层核心能力,具体包含六大核心模块:
1.智能体编排模块:基于 LangGraph StateGraph 实现工作流的结构化编排,提供主智能体工厂类、子任务并发执行器等核心组件;
2.沙箱执行模块:提供多模式隔离的代码 / 命令执行环境,保障任务执行的资源安全;
3.工具集成模块:提供标准化的工具加载、调用、权限校验机制,支持内置工具、MCP 协议工具、自定义技能工具三类扩展路径;
4.技能扩展模块:定义标准化的.skill压缩包格式,允许用户将特定业务场景的工作流打包扩展;
5.持久化内存模块:提供分层的状态记忆存储能力,保障长周期任务的状态不丢失;
6.模型适配模块:提供统一的多厂商大模型接口,完全屏蔽不同模型的 API 差异。
这六大核心模块的协同逻辑,完全遵循大模型工程化的底层诉求 —— 覆盖了从模型推理到任务落地的全链路核心支撑环节。
2.2.2 App 层:可定制的业务接入适配层
App 层是 DeerFlow 的上层业务实现层,其代码位于仓库的backend/app/目录中,不会被打包为独立的发布包。它的核心职责只有一个:作为 “适配层”,将 Harness 层提供的标准化核心能力,暴露给外部业务系统接入 —— 并且在不修改 Harness 层核心逻辑的前提下,完成企业级业务场景下的定制化适配。
具体来说,App 层包含两类核心适配逻辑:
1.网关 API 适配:基于 FastAPI 框架实现的 RESTful 接口,将 Harness 层的智能体执行、工具调用、内存操作等能力,封装为符合企业级安全规范的 API;同时承担鉴权、限流、路由转发等 API 治理能力;
2.多 IM 渠道适配:实现与飞书、Slack、Telegram 等主流沟通渠道的协议适配,将渠道的用户会话消息,映射为 Harness 层可以识别的智能体执行请求,再将智能体的执行结果回传给用户渠道。
这一 “核心能力与业务适配解耦” 的架构设计,完美体现了高内聚、低耦合的软件工程设计原则 ——Harness 层的核心能力可以被复用在任意业务场景中,而 App 层的业务适配逻辑可以根据用户需求灵活替换,完全不需要修改 Harness 层的核心代码。这也正是 DeerFlow能够从 “字节内部的深度研究工具”,快速演进为 “通用型超级智能体框架” 的核心技术支撑。
3. 理论基础:大模型工程化与 Harness架构的核心逻辑
在深入分析项目组件前,需要先明确本报告的核心视角 ——“大模型工程化” 以及 “Harness 架构” 的底层逻辑是什么。理解这两者的关联,是读懂DeerFlow 架构设计价值的前提。
3.1 大模型工程化的核心维度
从技术原型到生产级业务落地,大模型的工程化建设必须覆盖四个核心维度 —— 任何一个维度的缺失,都会导致 “模型效果在原型环境符合预期,但上线后无法稳定支撑业务”的典型落地故障。DeerFlow 的 Harness 层设计,本质上就是对这四大核心维度的完整工程化支撑方案:
1.模型的无感知化部署适配:业务系统必须能够在不修改核心代码的前提下,根据场景算力成本、能力适配需求,自由选择、切换最合适的大模型 —— 不会因为更换模型厂商或推理服务组,就需要对业务代码进行大规模改造;
2.复杂任务的可靠编排与执行:大模型的长周期业务落地,往往不是单次模型推理就能完成的,而是需要串联 “调用工具获取数据→处理中间结果→发起下一轮推理→异常时重试回退” 的完整执行链路 —— 这套链路的状态管理、异常重试、流程分支把控,必须由框架可靠支撑,不能让模型自己来负责流程推进;
3.模型调用的安全与可控性增强:在生产级业务场景中,模型的所有输出、发起的所有工具调用请求,都必须经过安全校验、审计留痕,同时受到严格的资源占用限制 —— 比如模型生成的 Shell 命令,必须在隔离环境中执行,不能拥有对宿主机的完全权限;
4.系统级的可扩展性与可维护性:随着业务场景的迭代,用户必然需要给智能体添加新的工具、对接新的业务渠道、接入新的知识库 —— 这类扩展必须能在不修改核心框架代码的前提下,通过标准化的扩展机制或配置文件完成。
这四个维度的支撑逻辑,共同构成了大模型 “可落地” 的完整技术底座。缺少任何一个维度,都无法构建真正可用的生产级 AI 业务。
3.2 Harness 架构的定义与设计价值
在 DeerFlow 的技术语境中,Harness并非技术架构中的某一个独立组件,而是一套完整的 “包裹并驱动大模型完成真实业务任务” 的标准化执行基础设施,其核心设计价值可以理解为 “智能体的操作系统”—— 这一定义的官方依据来自backend/CLAUDE.md的引言部分。
具体来说,Harness 的核心作用是“增强并控制模型的行为” —— 它不替代大模型的核心推理能力,也不替代开发者的业务逻辑,而是在模型能力与业务过程之间,提供一层 “强管控、高可用、可扩展” 的标准化治理逻辑,来解决 “如何让模型稳定调用资源” 和 “如何让资源被模型安全调用” 的问题。
从这一设计逻辑来看,DeerFlow 的 Harness 层本质上是对大模型工程化四大核心维度的系统性落地。接下来的章节将详细阐述,DeerFlow 的架构中具体包含了哪些这样的Harness 设计,以及它们如何解决工程化进程中的实际痛点。
4. 核心架构剖析:Harness 各层组件与大模型工程化的关联
DeerFlow 架构中,直接支撑大模型工程化的核心逻辑全部集中在 Harness 层 —— 这也是本报告重点分析的对象。该层包含六大核心模块,对应解决大模型工程化中的四大类核心问题。
4.1 模型适配层(Model Layer):实现无厂商锁定的模型部署适配
这是大模型工程化的第一个环节:让业务系统能够以统一、稳定的方式调用不同厂商、不同协议的大模型,完全屏蔽各厂商的 API 差异、推理加速方案差异。DeerFlow 的模型适配层核心设计,是通过 “工厂模式 + 标准化抽象接口”,彻底解决模型接入的兼容性问题。
4.1.1 工程化思想:模型接入的标准化抽象
在大模型的实际业务落地中,模型接入的兼容性痛点非常明显:不同厂商的大模型接口规范、错误码规则、支持的调用能力几乎完全不同 —— 比如,部分模型支持 “思考模式” 的参数传输,部分模型只支持基础的文本输入;当业务需要从 GPT-4 切换到国产模型(如豆包)时,直接对接厂商原始接口的业务代码,往往需要做大规模的逻辑修改。
DeerFlow 的工程化解决思路,是在 Harness 层的模型模块中,定义了一套与具体厂商API 完全解耦的标准化模型调用抽象接口—— 所有模型的调用,都必须通过这个统一的工厂类来创建实例、执行调用。这一设计的核心源码支撑,是deerflow.models.create_chat_model工厂方法:它将不同模型的接口参数、响应报文的差异化适配逻辑,完全封装在框架内部,上层业务完全无感知。
4.1.2 Harness 设计与架构落地
DeerFlow 的模型适配能力,完全由 Harness 层的模型模块实现,并且在架构层面做了三重工程化加固,保障适配能力的稳定性:
5.统一的模型工厂类:核心逻辑封装在deerflow.models.create_chat_model工厂方法中。所有上层业务的模型调用请求,都必须通过该方法获取模型实例 —— 该方法会根据用户在配置文件中声明的模型参数,自动完成不同厂商的接口实例化,将差异完全封装在框架内部;
6.配置驱动的模型接入机制:用户无法在代码中硬编码模型的接入信息,只能通过config.yaml配置文件来声明模型的接入参数 —— 包括厂商接口地址、API 密钥、支持的推理能力等。甚至对于兼容 OpenAI 接口的厂商,它都可以通过兼容格式的配置项快速接入,完全不需要修改框架源码。配置文件的结构定义,在backend/CLAUDE.md第 22-25 行中有详细说明;
7.完整的多模型生态兼容:官方默认支持豆包 Seed 2.0 Code、DeepSeek V3.2、Kimi 2.5 等国产模型,以及 GPT 系列、Claude、Gemini 等国际主流闭源模型,同时也支持接入 Ollama 部署的开源本地模型 —— 只要该模型遵循 OpenAI 的标准接口协议,就可以完成无感知接入。
这一整套模型适配层的设计,彻底解决了大模型工程化中的模型厂商锁定问题:用户可以根据业务场景的算力成本、数据合规、业务能力适配需求,在不修改任何核心业务代码的前提下,自由切换最合适的大模型或推理服务组。这也是 DeerFlow 的 “模型无感知” 设计的核心内涵。
4.2 智能体编排层(Agent Orchestration Layer):结构化工作流的工程化承载
这是 DeerFlow 架构的核心引擎,也是其区别于普通 Agent 框架的关键标志 —— 大模型的所有业务执行逻辑,都由这一层的核心组件编排驱动。其核心设计目标,是解决大模型工程化中的复杂任务流程落地问题:将模型的 “思维逻辑”,转化为可执行、可回溯、可并行的标准化业务工作流。
4.2.1 工程化思想:从线性对话到有状态的复杂图编排
普通 Agent 框架的工作流,大多采用 “线性执行流” 或 “简单条件分支执行流” 的设计 —— 这种设计对于 “帮用户写一段代码” 或 “查询某条数据” 的简单任务足够,但完全无法支撑需要多步骤协作的复杂业务场景。以 “生成一份完整的行业研究报告” 任务为例:这类任务需要先并行调研行业趋势、公司基本面、宏观政策等多个维度,再汇总并行调研的结果完成报告撰写,整个执行过程涉及多轮子任务并行、结果汇总、错误回退、状态持久化。线性执行流的设计,完全无法承载这类任务的流程管控需求。
DeerFlow 的工程化解决思路,是采用有状态的结构化图编排范式:将多智能体的协作流程,定义成一张由 “任务节点” 和 “流转边” 组成的有向无环图(DAG)—— 这一范式的核心支撑,是由 LangGraph 提供的 StateGraph 能力。在这一编排体系中,每个智能体都是图中的一个独立节点,节点间的数据流则是图的有向边;整个工作流的推进,完全由统一的状态机根据上一个节点的执行结果驱动 —— 而非由模型的输出内容驱动。这就将 “不可控的模型输出”,转化为了 “可被工程化校验的任务执行流”。
4.2.2 Harness 核心组件:基于 LangGraph 的分层编排架构
DeerFlow 的智能体编排逻辑,是一个由 “主智能体 + 严格有序中间件流水线 + 动态子智能体” 组成的三层协同架构 —— 这一架构的核心支撑,是 LangGraph 的 StateGraph 状态编排引擎。其中,每一层的定位和职责都经过精心设计,精准匹配复杂业务任务的分层执行逻辑:
(1)Lead Agent:任务流的编排中枢
Lead Agent 是整个系统的编排中枢,由 Harness 层的make_lead_agent(config)工厂方法创建 —— 这一工厂方法的初始化逻辑,定义在backend/packages/harness/deerflow/agents/lead_agent/agent.py源码文件中。它的核心职责不是直接执行具体的工具调用或代码编写任务,而是对用户的初始任务进行 “理解、拆解、规划、子任务委派”,并在所有子任务执行完成后,将结果汇总为结构化的最终输出。
它的核心执行逻辑是 “状态驱动的任务委派”:接收到用户的任务请求后,它会先将完整的任务流拆解为多个可并行执行的子任务节点;随后按需动态拉起对应的专业化子智能体,再根据每个子任务节点的执行结果,决定下一步的流转方向 —— 这一过程的状态持久化、分支判断,全部由LangGraph 的状态机统一处理,而非由 Lead Agent 自己来控制。
(2)Middleware Pipeline:强管控的执行流治理
Lead Agent 的核心执行逻辑,是通过一套严格有序、职责单一的中间件流水线来驱动的 —— 这是 DeerFlow 架构中最具特色的工程化设计之一。与很多“中间件执行顺序无明确约定” 的框架不同,DeerFlow 的中间件执行顺序被严格固定,且由框架底层的依赖逻辑强制保证顺序,开发者无法在不修改核心框架代码的前提下调整执行顺序。
这套中间件流水线的设计,采用了经典的洋葱责任链模式—— 每一个中间件,都是对模型执行过程的一层横向治理增强;所有中间件被串联成一个完整的执行链,对智能体的请求和响应进行层层处理。DeerFlow 的中间件数量在不同版本间略有调整,官方文档中明确记录的有 14-18 个核心中间件,覆盖了从 “任务入口” 到 “结果返回” 的全流程治理。其中,对大模型工程化至关重要的关键中间件包括以下几类:
8.沙箱生命周期管理类:SandboxMiddleware是连接沙箱模块与 LangGraph Agent 的核心桥梁。它的核心职责是在任务执行前,按需初始化或复用已有沙箱环境;在任务执行过程中,将 Agent 的文件操作、命令调用请求,翻译为沙箱内部的标准化操作指令;在任务执行完成后,负责沙箱环境的回收和资源释放 —— 通过这一层,保障沙箱与智能体的生命周期完全同步,同时优化整体资源占用;
9.上下文状态治理类:ThreadDataMiddleware为每一个任务线程创建完全隔离的文件系统级工作空间—— 包括独立的工作目录、上传文件目录、输出结果目录;同时,它会将宿主机的真实路径,与沙箱内部的虚拟路径做地址映射,保障每个任务线程只能访问自己的隔离资源,无法跨线程获取数据。MemoryMiddleware则负责将模型的上下文对话数据,异步持久化到分层记忆存储模块中,保障长周期任务的状态不会丢失;
10.安全与流量管控类:GuardrailMiddleware在模型调用工具之前,对所有即将执行的代码、所有工具调用的参数,进行安全规则校验 —— 比如拦截带有危险删除指令的 Shell 命令、过滤不符合业务规范的参数;SubagentLimitMiddleware则负责管控子智能体的并发数量和递归拉起深度,避免短时间内拉起大量子任务,导致资源被耗尽或进入死循环;
11.技能与工具适配类:SkillLoadingMiddleware负责根据用户的任务意图,自动加载匹配的 Skill 扩展,将业务场景专属的工作流定义注入到当前任务执行流中;ToolCallInterceptMiddleware则在模型调用外部工具之前,对工具调用的合理性和权限进行二次校验,保障工具调用的安全合规。
这一中间件架构的工程化价值,在于横向关注点分离:它将与模型业务逻辑无关的 “横向治理逻辑”—— 安全校验、资源管控、状态持久化、日志采集等,从核心业务逻辑中解耦出来,放在独立的中间件层统一实现。这样一来,开发者可以通过新增或替换中间件的方式,灵活扩展或修改模型的执行治理行为 —— 比如新增一个用于链路追踪的中间件,不需要修改Lead Agent 或子智能体的任何核心逻辑。这也是 DeerFlow 的 “可扩展” 设计内涵的核心支撑。
(3)Sub-Agent System:子任务的并行执行引擎
DeerFlow 的多智能体编排模式,不是简单的 “角色扮演”,而是真正的分治并行执行—— 这一设计的核心支撑,是 Harness 层的SubagentExecutor组件。其核心逻辑是 “任务拆解→并行执行→结果汇总”:
12.当 Lead Agent 将复杂任务拆解为多个可以独立执行的子任务后,会通过SubagentExecutor动态拉起对应的专业化子智能体;
13.每个子智能体都是经过专门配置的 “领域专家”—— 拥有独立的上下文、隔离的工具集、独立的资源配额和专属的终止条件;
14.所有子智能体可以在满足资源限制的前提下,被并行调度执行,执行完成后会将结构化的执行结果,回传给 Lead Agent;
15.Lead Agent 会等待所有并行子任务执行完成后,再将所有子任务的结果汇总为一份结构化的最终输出。
这一设计的工程化价值非常突出:它将复杂任务的 “串行执行耗时”,通过多子任务并行的方式压缩为 “最慢子任务的执行耗时”—— 这也是 DeerFlow 能够支撑小时级长周期任务的关键技术支撑。例如,在一个行业研究报告生成任务中,Lead Agent 可以将 “行业趋势调研”“头部企业基本面调研”“宏观政策影响性调研” 这三个可以独立执行的子任务,同时委派给三个对应的子智能体并行执行;在三个子任务全部完成后,Lead Agent 会将三份独立的调研结果汇总,生成结构完整、论据全面的最终报告。
这一整套编排层架构,完全构建在 LangGraph 的 StateGraph 之上 —— 这也意味着,DeerFlow 的工作流编排能力,完全继承了LangGraph 的核心技术优势:所有任务节点的执行状态、输入输出数据,都会被持久化到存储介质中;用户可以在任意任务节点执行完成后,暂停任务执行、回溯到历史节点重新执行,或者查看完整的任务执行链路和状态变化过程。
4.3 资源调用层(Resource Access Layer):安全化的工具执行与资源隔离
大模型的能力边界,完全取决于它能调用的资源边界 —— 工具、文件、代码执行环境等。但在生产级业务场景中,给模型开放资源调用能力,必须解决安全隔离和可控治理两个核心问题:如果没有隔离,模型的恶意输出或误操作,会对宿主机的资源安全造成毁灭性影响;如果没有治理,模型的所有资源调用行为,将无法被审计追溯。DeerFlow 的资源调用层,是对这两个问题的系统性工程化解答。
4.3.1 工程化思想:资源调用的隔离与治理
在生产级业务场景中,模型的资源调用行为必须遵循 “最小权限原则”—— 即模型的执行环境,只能拥有完成任务所必需的最小资源权限;任何超出必要范围的资源请求,都应被直接拦截。同时,模型的所有资源调用行为,都必须被完整记录到审计日志中,满足业务场景的合规性追溯需求。
DeerFlow 的工程化解决思路,是采用“沙箱隔离 + 标准化工具调用链路 + 全链路审计”的三层资源增强方案:
16.第一,用沙箱环境将模型的代码执行、文件操作等高危行为,与宿主机的资源隔离开来 —— 即使模型执行了恶意代码,也无法穿透沙箱环境对宿主机造成实际伤害;
17.第二,用标准化的工具调用链路,对模型的所有外部资源请求进行统一鉴权、参数校验,再转发给对应的工具执行;
18.第三,在整个资源调用链路中,插入全链路审计日志逻辑 —— 将模型调用的工具名称、调用参数、执行结果、沙箱内的执行痕迹,都完整记录到日志系统中。
4.3.2 Harness 核心组件:沙箱、工具与安全护栏
DeerFlow 的资源调用能力,由 Harness 层的三大核心模块协同落地 —— 覆盖了从 “资源调用请求” 到 “执行结果返回” 的全链路安全治理,是框架能够支撑企业级生产场景的关键保障:
(1)Sandbox Execution Environment:高隔离级别的安全执行环境
这是 DeerFlow 区别于其他 Agent 框架的核心特色,也是其能支撑企业级生产场景的关键安全保障。沙箱的核心治理逻辑,是由 Harness 层的SandboxMiddleware中间件来驱动的 —— 它负责管理沙箱的整个生命周期:在任务执行前初始化沙箱,在任务执行过程中维护沙箱的隔离状态,在任务执行完毕后回收沙箱资源。
DeerFlow 支持三种不同隔离级别的沙箱后端实现,用户可以在config.yaml中通过sandbox.use配置项,根据业务场景的安全级别需求灵活选择:
19.本地文件系统模式:这是隔离级别最低的沙箱模式 —— 它直接在宿主机的文件系统中,为每个任务线程创建独立的隔离目录;但进程级的执行隔离没有被启用,代码执行的权限与宿主机用户的权限完全一致。这类模式仅适合对执行效率要求极高、对安全级别要求不高的本地开发场景;
20.Docker 容器隔离模式:这是隔离级别中等的沙箱模式 —— 它采用 “Docker outside of Docker(DooD)” 的标准技术方案,在宿主机的 Docker 环境中,为每个任务线程启动独立的 Docker 容器作为执行沙箱;每个容器都有独立的文件系统、网络栈、进程空间,资源配额也受到 Docker 的资源限制机制管控。这类模式默认对宿主机的文件系统、网络访问权限做了严格隔离,是框架推荐的默认沙箱模式;
21.K8s 集群级隔离模式:这是隔离级别最高的沙箱模式,需要在集群中额外部署 Provisioner 服务 —— 它会在 Kubernetes 集群中,为每个任务线程启动独立的 Pod作为执行沙箱;每个 Pod 都有独立的资源配额和网络隔离策略,Pod 的生命周期由 Provisioner 服务独立治理。这类模式适合对安全隔离、弹性伸缩能力有极高要求的多租户企业级生产场景。
值得强调的是,在所有沙箱模式中,DeerFlow 都启用了路径虚拟化的安全策略 ——Agent 看到的文件系统路径,是经过映射的虚拟路径;而沙箱层会将虚拟路径请求,转换为宿主机或容器中的真实路径请求。例如,Agent 在沙箱中看到的工作空间路径是/workspace,但在宿主机上,真实的路径是backend/.deer-flow/threads/{id}/user-data/workspace。这就彻底避免了 Agent 通过../等路径遍历方式,试图访问沙箱以外的宿主机资源的典型安全攻击场景。
(2)Tool System:标准化的资源调用链路
沙箱解决了代码执行的隔离问题,而工具系统解决了模型与外部资源交互的标准化问题。DeerFlow 的工具扩展能力,被设计为一套可扩展的标准化插件体系—— 所有工具的接入逻辑,都遵循统一的接口规范;用户可以在不修改 Harness 层核心代码的前提下,按照标准协议扩展自定义工具。
DeerFlow 支持三类标准的工具接入方式,覆盖了从 “内置能力” 到 “第三方业务集成” 的完整场景:
22.内置工具:由 Harness 层官方提供的原子级工具实现,包括文件读写、Shell 命令执行、网络请求、与内置记忆模块交互等基础操作—— 这类工具的实现逻辑,经过了严格的安全校验和资源管控;
23.Model Context Protocol(MCP)工具:这是 DeerFlow 对第三方工具集成的标准协议支撑 —— 任何遵循 MCP 标准的第三方工具,都可以通过修改配置文件的方式快速接入,不需要额外编写适配代码;
24.Skill 扩展工具:这是 DeerFlow 特有的高级工具扩展方式 —— 用户可以将某个业务场景下的完整工作流、工具集、对应的文本描述模板,打包为一个独立的.skill格式的归档压缩包;在任务执行时,由SkillLoadingMiddleware中间件根据用户的任务意图,自动加载匹配的 Skill,将业务场景专属的工作流定义注入到当前任务执行流中。
所有这三类工具的调用请求,在真正被交给沙箱或外部服务执行之前,都必须先经过ToolCallInterceptMiddleware和GuardrailMiddleware这两个安全中间件的层层校验:校验工具的调用参数是否符合业务规范、是否在安全配置的白名单范围内、当前任务线程是否有调用该工具的权限;只有校验完全通过的工具调用请求,才会被交给沙箱或外部服务执行。
(3)Guardrails System:全链路的安全审计治理
这是保障资源调用安全的最后一道工程化防线,由 Harness 层的多个安全组件协同实现,是框架支撑企业级生产场景的重要保障。其核心逻辑是在工具调用的整个链路中,插入多个安全校验和审计日志的治理环节:
25.在模型生成工具调用请求但还未执行时,由GuardrailMiddleware对工具调用的参数、目标资源进行安全校验 —— 比如拦截带有危险删除指令的 Shell 命令、过滤不符合业务规范的参数;
26.在沙箱内执行工具调用请求时,由沙箱层的安全插件对执行过程进行实时行为审计 —— 比如记录沙箱内发起的所有网络请求、访问的文件路径;
27.在工具调用请求执行完成后,由SandboxAuditMiddleware将沙箱内的执行日志、工具调用的返回结果,整合到完整的审计日志中,统一写入到分布式链路追踪系统或标准日志文件中。
这一整套安全护栏体系,不仅能在工具调用执行前,拦截大部分由模型误操作或恶意输出导致的安全风险;还能在安全事件发生后,提供完整的全链路审计日志,支撑问题的精准回溯与定位。
4.4 状态持久化层(State Management Layer):支撑长周期任务的状态可追溯
普通大模型交互的核心痛点之一,是其 “无状态” 的本质:模型自身不会保留上一轮对话的历史上下文或中间执行状态 —— 对于需要执行数小时甚至数十小时的长周期任务来说,这是一个无法回避的致命缺陷;如果任务在执行过程中因为某种原因被中断,那么所有的任务数据、中间状态都会丢失,整个任务必须从起点重新执行。DeerFlow 的状态持久化层,就是为了解决这一痛点而设计的工程化方案。
4.4.1 工程化思想:长周期任务的状态持久化
要支撑小时级甚至更长时间的长周期任务,整个编排系统的关键设计,就是状态的高可靠持久化—— 必须保证所有任务的执行状态、上下文数据、中间结果,都被可靠存储在持久化的存储介质中;即使服务发生重启或宕机,任务的执行状态也不会丢失,用户可以在修复问题后,从上次中断的任务节点继续执行。
DeerFlow 的工程化解决思路,是采用“分层状态存储 + 全链路状态同步”的方案:将任务的所有状态数据,划分为 “线程级状态” 和 “任务级状态” 两个层级,分别用不同的存储机制进行持久化;同时,在整个编排链路的所有环节,实现状态的实时同步 —— 保障任务状态在任何环节都不会丢失。
4.4.2 Harness 核心组件:内存与线程状态的协同治理
DeerFlow 的状态持久化能力,由 Harness 层的两个核心模块协同实现,完整覆盖长周期任务的全链路状态治理:
(1)Thread State:任务级的状态数据隔离
这是 DeerFlow 管理任务执行上下文的核心数据结构,其逻辑定义在 Harness 层的deerflow.agents.thread_state模块中。它是一个结构化的状态 Schema,承载了一个任务线程执行过程中的所有核心上下文数据 —— 包括用户的输入数据、所有子任务的执行结果、沙箱的虚拟路径映射关系、所有工具调用的执行痕迹、任务的当前执行进度等。
所有这些状态数据,会被 LangGraph 的检查 pointer 机制,实时持久化到持久化存储介质中 ——默认是宿主机上的文件系统目录。这一设计的核心价值,是让任务的执行过程完全 “可回溯”:用户可以在任意任务节点执行完成后,查看当前任务的完整状态快照;即使整个服务发生重启,也可以通过存储的状态快照,恢复到最近一次的任务执行节点,继续执行后续流程。
(2)Memory System:对话级的上下文状态治理
这是 DeerFlow 实现 “长记忆” 的核心能力支撑,其逻辑定义在 Harness 层的deerflow.memory模块中。它的核心职责,是管理跨任务线程的长期上下文状态 —— 区别于 Thread State 的任务级上下文,Memory System 管理的是用户级的长期上下文,比如用户在之前的对话历史中提及的业务场景约束、历史任务中沉淀的关键结论、用户专属的业务术语映射规则等。
这一模块的核心治理逻辑,由MemoryMiddleware中间件驱动:在每一轮任务交互完成后,它会将模型的对话历史、关键输出结论,异步且增量地持久化到存储介质中;同时,它会在每一轮任务执行前,从历史记忆中提取与当前任务相关的上下文数据,注入到模型的当前任务上下文中。这就避免了随着交互轮次增加,上下文内容越来越长,最终超过大模型 Token 限制的 “长上下文爆炸” 问题。
值得强调的是,这一 Memory System 的设计,完全遵循大模型工程化中的“状态分层治理”最佳实践:Thread State 存储的是任务级的临时执行状态,一旦任务执行完成,这类状态就不再被主动使用;而 Memory System 存储的是用户级的长期业务上下文,会被持续维护和更新,确保后续的任务执行可以复用历史沉淀的上下文数据。
4.5 可观测性设计:工程化运维的关键支撑
上述所有 Harness 组件的能力,都需要配套的工程化运维支撑能力 —— 这是所有生产级系统的必要保障。DeerFlow 在架构设计中,将可观测性相关的治理逻辑,横向贯穿于所有核心组件的执行链路中 —— 这一设计的核心目标,是让运维或开发人员,可以完整观察到从用户任务请求到最终执行完成的全链路过程;当任务执行出现问题时,能够快速定位到具体的故障环节。
其 Harness 层的可观测性支撑,由以下三项核心能力组成,完全覆盖生产级业务场景下的运维治理需求:
28.全链路追踪能力:由 Harness 层的多个中间件协作实现。在每一个任务执行时,中间件会在任务入口生成一个唯一的追踪 ID,并将这个 ID 传递给所有子任务、工具调用和沙箱执行环节。结合 LangSmith 的可视化追踪能力,运维开发人员可以通过这个唯一 ID,查看从任务入口到最终执行出口的完整链路细节 —— 包括每个任务节点的执行耗时、状态变化、工具调用的参数和结果、沙箱内的执行日志;
29.标准化日志采集能力:所有核心模块的执行日志,都采用完全统一的结构化格式 —— 包括任务的线程 ID、追踪 ID、执行环节、日志级别、错误堆栈信息等关键字段。这意味着用户可以将 DeerFlow 的日志,无缝接入到现有的 ELK、Loki 等标准日志采集分析系统中,进行集中化的查询、分析和告警;
30.标准化监控指标暴露能力:内置实现了 Prometheus 监控指标的采集能力 —— 所有核心模块的运行指标,都会被采集并暴露给 Prometheus 抓取。这些指标包括每个核心 API 接口的请求量、响应耗时、子智能体的并发数量、沙箱的执行成功率、模型调用的 Token 消耗、内存的使用量等。用户可以直接基于这些核心指标,快速搭建配套的监控大盘和告警规则。
此外,DeerFlow 的 Harness 层,还提供了统一的健康检查接口,让运维人员可以快速感知到整个系统中核心组件的运行状态 —— 包括沙箱的可用资源、模型的连通性、记忆存储介质的读写延迟等。
5. 关键 Harness 模式总结
综合前序对架构各层的分析,从大模型工程化的视角来看,backend/CLAUDE.md定义的 DeerFlow 架构,提供了四类可落地、可复用的Harness 模式,覆盖了大模型从基础调用到生产级复杂任务落地的全链路工程化需求。
5.1 模式一:分层解耦的模型部署与适配Harness
这是大模型工程化的最基础保障:DeerFlow 通过 Harness 层的模型适配模块,构建了一套“模型适配抽象层 + 配置驱动接入 + 统一工厂模式创建”的完整模型部署与适配 Harness。这一 Harness 的核心设计目标,是彻底消除业务代码与模型厂商 API 之间的强耦合关系 —— 其核心支撑点有三个:
31.第一,所有模型的接入逻辑,都通过统一的工厂类create_chat_model创建实例,完全封装了不同厂商的 API 调用细节;
32.第二,用户通过config.yaml配置文件,而不是代码,来声明模型的接入参数 —— 包括厂商接口地址、API 密钥、支持的推理能力等;
33.第三,在架构层面,将 “模型实例化” 与 “模型业务调用” 两个环节完全分离 —— 所有上层业务的模型调用请求,都必须通过这一抽象层的统一处理。
这一设计带来的核心工程化价值,是模型切换成本的极致降低:用户可以在不修改任何业务核心代码的前提下,根据业务场景的算力成本、数据合规、业务能力适配需求,自由切换不同厂商的大模型或推理服务组 —— 甚至可以在兼容 OpenAI 接口的国产模型和国际模型之间无缝切换。这就彻底避免了 “模型厂商的 API 修改,导致业务代码大规模适配” 的工程化噩梦。
5.2 模式二:基于 DAG 的多有状态智能体编排 Harness
这是 DeerFlow 作为超级智能体框架的技术内核,也是其能支撑复杂长周期任务的核心工程化支撑:它提供了一套“主智能体任务分解 + 中间件流水线治理 + 子智能体并行执行 + 多维度结果汇总”的完整编排 Harness,完全构建在 LangGraph 的 StateGraph 引擎之上 —— 其核心设计目标,是将大模型的单次推理能力,组合为可支撑复杂业务任务的完整执行流。
这一 Harness 的核心工程化支撑价值,体现在三个方面:
34.任务流的标准化抽象:它将大模型的复杂任务流,抽象为 “有向无环图(DAG)” 的标准化数据结构,用 LangGraph 的 StateGraph 来驱动执行 —— 这就让任务流的编排逻辑,从 “与模型强耦合的代码逻辑”,变成了 “可以被工程化治理的标准化资源”;
35.执行流的横向治理增强:它提供了一套严格有序的中间件流水线,将与业务逻辑无关的所有横向治理逻辑 —— 安全校验、资源配额管控、状态持久化、日志采集、流量控制等,从核心业务逻辑中解耦出来,放在独立的中间件层统一实现;
36.任务的分治并行执行:它采用 Lead Agent+Sub-Agents 的分层协同架构,支持将复杂任务拆解为多个可并行执行的子任务,委派给多个子智能体并行执行 —— 化串行执行为并行执行,成倍压缩了整体任务执行耗时;
37.状态的高可靠持久化:它利用 LangGraph 的检查 pointer 机制,将所有任务的执行状态、上下文数据、中间结果,实时持久化到存储介质中 —— 保障了长周期任务的状态不会丢失,实现了 “可暂停、可回溯、可恢复” 的执行能力。
5.3 模式三:沙箱驱动的安全增强型工具调用Harness
这是 DeerFlow 区别于其他 Agent 框架的核心特征,也是其能支撑企业级生产场景的关键安全保障:它提供了一套“多模式沙箱隔离 + 标准化工具协议接入 + 全链路安全校验审计”的完整工具调用 Harness。
这一 Harness 的核心设计目标,是解决大模型工程化中“模型调用资源的安全治理”痛点 —— 由 Harness 层的沙箱模块、工具模块与安全护栏模块协同实现。其核心支撑价值体现在三个维度:
38.分级别的隔离化执行环境:用户可以根据业务场景的安全级别需求,灵活选择不同隔离级别的沙箱模式 —— 并且所有沙箱模式,都启用了路径虚拟化的安全策略,彻底避免模型通过路径遍历攻击,访问沙箱以外的宿主机资源;
39.可扩展的标准化工具接入:通过内置工具、MCP 标准工具、Skill 扩展工具三类标准接入方式,让用户可以在不修改核心框架代码的前提下,快速扩展业务场景需要的工具能力 —— 同时,将工具调用的会话信息、参数格式等细节,完全封装在框架内部;
40.全链路的安全审计校验:在 “模型生成工具调用请求→工具调用请求被执行→执行结果返回给模型” 的完整链路中,加入了多层安全校验和审计日志 —— 只有通过校验的工具调用请求,才会被交给沙箱或外部服务执行;所有执行痕迹,都被完整记录到审计日志中。
这一整套安全护栏体系,从根本上降低了模型调用工具时带来的安全风险,是将大模型从 “可使用” 升级为 “可安全落地” 的关键工程化保障。
5.4 模式四:分层的高可靠状态持久化Harness
这是支撑长周期任务执行的关键底层保障:DeerFlow 提供了一套“任务级状态快照 + 用户级记忆沉淀”的分层状态持久化 Harness,由 Harness 层的线程状态模块与记忆模块协同实现。
这一 Harness 的核心设计目标,是解决大模型工程化中的“长周期任务的状态丢失”痛点 —— 其核心支撑价值体现在两个方面:
41.高可靠的任务状态快照:线程状态模块承载了任务执行的全量上下文数据,包括用户输入、子任务执行结果、沙箱路径映射、工具调用痕迹、任务执行进度等;所有这些状态数据,都会被 LangGraph 的检查 pointer 机制实时持久化到存储介质中 —— 即使服务发生重启或宕机,任务的执行状态也不会丢失;
42.增量式的用户记忆沉淀:记忆模块承载了跨任务线程的长期用户上下文 —— 包括用户的业务场景约束、历史任务中沉淀的关键结论、用户专属的业务术语映射规则等;在每一轮任务交互完成后,新的上下文数据会被异步且增量地持久化;在每一轮任务执行前,相关的历史上下文会被自动提取,注入到模型的当前任务上下文中。
这一设计的核心工程化价值,是彻底支撑了长周期任务的执行可靠性 —— 即使任务需要执行数小时甚至数十小时,也不会因为上下文丢失或服务重启等问题,导致需要重新执行完整任务。
6. 总结
分析backend/CLAUDE.md的源码架构后不难发现,DeerFlow 2.0 的设计哲学,完美契合了大模型技术从 “原型验证” 到 “企业级生产落地” 的整个工程化演进路径 —— 它没有去重复解决 “如何让模型输出更准确” 的问题,而是聚焦于解决 “如何让模型的输出,在真实业务场景中,安全、可靠、可扩展地驱动完整业务流程” 的工程化问题。
6.1 架构中体现的核心工程化理念
DeerFlow 的架构设计,背后遵循的是一套非常清晰的大模型工程化思想 —— 其本质是 “约束与增强”:通过标准化的约束,将大模型的能力限制在可控的范围内;通过工程化的增强,给大模型提供完成真实业务任务所需的底层支撑能力。具体来说,其核心工程化设计理念体现在四个维度:
1.模型的无感知化适配与部署:通过抽象层 + 配置驱动的设计,彻底将业务代码与模型厂商的 API 实现解耦 —— 用户可以在不修改核心业务代码的前提下,自由切换不同厂商的模型或推理服务组;
2.复杂任务的流程化编排与执行:基于 LangGraph 的 StateGraph 引擎,将单轮模型推理能力组合为可执行、可回溯、可并行的复杂长周期任务流 —— 用可靠的状态机驱动,代替了 “模型自己控制执行流程” 的不可控方案;
3.资源调用的隔离化与安全化治理:通过沙箱执行环境 + 标准化工具调用链路 + 全链路安全审计机制,为模型的所有外部资源调用行为,提供三层安全保障 —— 彻底将模型的高危执行行为,与宿主机的资源隔离开来;
4.长周期任务的状态化持久化保障:采用分层状态存储的设计,将任务的临时执行状态与用户的长期业务上下文分别存储 —— 保障了长周期任务在执行过程中,不会因为服务重启、异常崩溃或其他硬件问题,导致任务状态丢失或需要重新执行。
6.2 DeerFlow 的 Harness 对大模型工程化的价值
DeerFlow 的核心价值,不在于它创造了任何新的大模型算法或推理技术,而在于它提供了一套经过精心架构设计、完全遵循软件工程最佳实践的“模型执行能力标准化封装”方案 —— 它把大模型业务落地中重复的、容易出错的、需要长期积累的底层工程化工作,包括状态管理、工具调用、安全隔离、可观测性、多厂商适配等,提前封装为一套开箱即用的标准化框架;用户无需从零开始搭建这些支撑组件,可以直接复用 DeerFlow 的标准化能力,将精力集中在业务场景相关的工作流设计上。
具体来说,它的工程化价值体现在三个方面:
5.降低技术演进风险:通过模型适配的抽象层,将用户的业务技术栈,与大模型厂商的 API 迭代、推理技术的升级做了隔离 —— 用户可以随时切换到更适合业务场景的模型,而不用对整个业务架构进行大规模改造;
6.大幅提升业务落地效率:它提供了完整的、默认 production-ready 的核心能力封装 —— 包括多智能体编排、安全执行沙箱、标准化工具接入、分层记忆持久化、全链路可观测性等;用户不需要从零开发这些底层能力,可以直接将精力集中在业务场景相关的工作流设计上,将业务落地周期从 “按月级” 压缩为 “按天级”;
7.解决长周期任务的落地痛点:它引入了多智能体并行执行、沙箱安全隔离、分层状态持久化、子任务流完整回退等企业级能力支撑 —— 让大模型从 “只能处理单轮简单问答的工具”,真正转变为 “可以支撑小时级长周期复杂任务的超级智能体”。
6.3 适用场景与技术定位
DeerFlow 的架构设计,决定了它的技术定位不是 “大模型的推理优化框架”,也不是 “单一智能体的业务实现” —— 而是一套完整的 “超级智能体的标准化运行时框架”。它不替代大模型的任何核心推理能力,也不替代用户的业务逻辑;相反,它在模型能力与用户的业务过程之间,提供了一层 “强管控、高可用、可扩展” 的标准化治理逻辑。
从技术栈的选型来看,DeerFlow 适合以下几类业务场景的工程化落地:
8.需要将复杂的业务任务,拆解为多个子任务并行执行、然后汇总结果的多智能体协同场景;
9.大模型需要执行代码、读写文件、访问内部业务 API 等高危操作,对安全隔离有极高要求的场景;
10.任务执行需要数小时甚至数十小时,对状态持久化、任务恢复能力有极高要求的长周期任务场景;
11.需要接入多种业务工具、多类知识库或多个大模型厂商,对扩展能力有极高要求的场景;
12.业务已经沉淀了自己的模型推理能力,需要将推理能力与业务过程进行标准化集成的场景。


