Zing 论坛

正文

DeerFlow:构建模块化AI工作流的子代理编排框架

本文介绍了一个用于编排子代理、内存和沙箱的AI工作流框架,探讨其架构设计、核心概念和实际应用价值。

AI工作流子代理编排框架内存管理沙箱模块化
发布时间 2026/04/03 23:15最近活动 2026/04/03 23:24预计阅读 6 分钟
DeerFlow:构建模块化AI工作流的子代理编排框架
1

章节 01

导读 / 主楼:DeerFlow:构建模块化AI工作流的子代理编排框架

本文介绍了一个用于编排子代理、内存和沙箱的AI工作流框架,探讨其架构设计、核心概念和实际应用价值。

2

章节 02

AI工作流编排的新范式

随着大语言模型能力的不断提升,单一AI代理已经难以满足复杂业务场景的需求。现代AI应用需要将多个 specialized 代理组合起来,协同完成涉及多步骤推理、工具调用、数据处理和人类协作的复杂任务。这种需求催生了一类新的基础设施——AI工作流编排框架。

DeerFlow 正是这一领域的创新项目。它提供了一个完整的平台,用于编排子代理(sub-agents)、管理持久化内存(memory)和执行隔离沙箱(sandboxes),使开发者能够构建出模块化、可扩展的AI驱动工作流。这个项目的名称"DeerFlow"暗示了其设计哲学——像鹿群一样协调多个独立的智能体,每个都有自己的角色和能力,但又能作为一个整体协同工作。

3

章节 03

什么是AI工作流编排

在深入DeerFlow之前,有必要澄清"AI工作流编排"这一概念。与传统的业务流程自动化(BPA)不同,AI工作流编排具有以下特征:

动态决策:工作流的执行路径不是完全预定义的,而是由AI根据中间结果动态决定

多代理协作:任务被分解并分配给多个 specialized 代理,而非单一通用代理

状态持久化:工作流的状态可以在长时间运行中保持,支持异步执行和人类介入

工具集成:代理可以调用各种外部工具和API,扩展其能力边界

容错与恢复:具备错误处理和从失败中恢复的能力

4

章节 04

DeerFlow的核心抽象

DeerFlow围绕三个核心概念构建:

子代理(Sub-agents): 每个子代理是一个独立的AI执行单元,具有特定的角色和能力。与单一大型代理相比,子代理更专注、更可预测、更易于测试和维护。DeerFlow支持多种类型的子代理,包括LLM驱动的推理代理、代码执行代理、API调用代理等。

内存(Memory): 工作流需要在多个步骤和多个代理之间共享上下文信息。DeerFlow提供了结构化的内存系统,支持短期工作记忆和长期知识存储。内存可以跨会话持久化,使代理能够学习和适应。

沙箱(Sandboxes): 为了安全地执行不可信代码或处理敏感数据,DeerFlow提供了隔离的执行环境。每个沙箱都是独立的容器,具有受控的资源访问权限,确保一个工作流的执行不会影响其他工作流或宿主系统。

5

章节 05

分层架构

DeerFlow采用清晰的分层架构,各层职责明确:

编排层(Orchestration Layer): 这是系统的核心,负责任务分解、代理调度和执行流程控制。它实现了多种编排模式,如顺序执行、并行执行、条件分支、循环迭代等。编排器根据工作流定义和运行时状态做出调度决策。

代理层(Agent Layer): 提供子代理的定义、配置和生命周期管理。支持代理的动态发现和加载,以及代理间的通信协议。代理层抽象了不同底层实现的差异,为编排层提供统一的代理接口。

内存层(Memory Layer): 实现多种存储后端,包括内存存储、数据库存储、向量数据库存储等。提供键值存储、文档存储、向量检索等多种访问模式。支持内存的持久化、备份和恢复。

沙箱层(Sandbox Layer): 基于容器技术(如Docker、Podman)或虚拟化技术提供隔离执行环境。管理沙箱的生命周期,监控资源使用,实施安全策略。

技能层(Skill Layer): 技能是可复用的功能单元,可以被代理调用。DeerFlow提供了丰富的内置技能库,并支持用户自定义技能。技能系统采用插件化设计,易于扩展。

6

章节 06

工作流定义

DeerFlow使用声明式的方式定义工作流,支持YAML或JSON格式。一个典型的工作流定义包括:

workflow:
  name: 研究报告生成
  version: "1.0"
  
  steps:
    - id: search
      agent: web_searcher
      inputs:
        query: ${{workflow.inputs.topic}}
      outputs:
        - search_results
        
    - id: analyze
      agent: content_analyzer
      inputs:
        sources: ${{steps.search.search_results}}
      outputs:
        - key_findings
        
    - id: draft
      agent: report_writer
      inputs:
        findings: ${{steps.analyze.key_findings}}
        style: ${{workflow.inputs.style}}
      outputs:
        - report_draft
        
    - id: review
      agent: quality_reviewer
      inputs:
        draft: ${{steps.draft.report_draft}}
      outputs:
        - reviewed_report
        - feedback
        
    - id: finalize
      condition: ${{steps.review.feedback.approved}}
      agent: report_formatter
      inputs:
        content: ${{steps.review.reviewed_report}}
      outputs:
        - final_report

这种声明式定义使得工作流的意图清晰可读,同时支持版本控制和协作编辑。

7

章节 07

子代理编排模式

DeerFlow支持多种代理编排模式,适应不同的协作场景:

顺序执行(Sequential): 最简单的模式,代理按预定义顺序依次执行。适用于有明确依赖关系的任务链。

并行执行(Parallel): 多个代理同时执行,结果合并后传递给下游。适用于可分解为独立子任务的场景。

Map-Reduce: 将大任务分解为多个小任务并行处理(Map),然后将结果汇总(Reduce)。适用于批量处理场景。

投票共识(Voting): 多个代理独立解决同一问题,通过投票或聚合得出最终答案。适用于需要高可靠性的决策场景。

迭代优化(Iterative): 代理循环执行,每次基于前一次的结果进行改进,直到满足终止条件。适用于优化类任务。

人机协作(Human-in-the-loop): 在特定步骤暂停执行,等待人类输入或审批。适用于需要人类判断的关键决策点。

8

章节 08

内存管理系统

DeerFlow的内存系统是其区别于简单任务链的关键特性:

工作记忆(Working Memory): 存储当前工作流的上下文信息,包括中间结果、用户输入、系统状态等。所有代理都可以读写工作记忆,实现信息共享。

长期记忆(Long-term Memory): 跨会话持久化的知识存储。可以存储用户偏好、历史交互、领域知识等。支持语义检索,使代理能够"回忆"相关信息。

技能记忆(Skill Memory): 记录技能执行的历史和效果,用于优化未来的技能选择和参数配置。

记忆作用域: 支持定义记忆的作用域,如工作流级、会话级、用户级、全局级,实现精细的访问控制。