概念/概念定义

任务 DAG 与任务状态机:规划执行的骨架

出自东方屹腾执行型 Agent 落地(案例提供 梁博)

任务 DAG 与任务状态机:规划执行的骨架

概念定义

规划执行是一种行动模式,它先把一段业务流程要走的几步明确规划并固定下来,再按依赖关系调度执行,而不是走一步看一步。承载这套规划的两个核心数据结构,是任务 DAG 图和任务状态机。任务 DAG 是一张以依赖关系组织任务节点的有向无环图,规定了步骤间的先后约束;任务状态机给每个节点维护自己的状态,并驱动整张图往前推进。

使用说明

这套结构要解决的问题,是把执行顺序从模型的临场判断里取出来,固定在任务图上。让 LLM 在 ReAct 循环里自己跑出正确的步骤顺序,等于把确定性的控制流交给了一个概率模型。规划执行把这段顺序从叙事上下文中抽出来,落成图上的边和节点状态,由程序按状态机调度,模型不再每一步重新决定先后。

它防住的,是 ReAct 在严格依赖的流程上跨步和漏步。东方屹腾在 mock 阶段验证薪资组快速搭建时撞上了这个失败:这个场景要先给企业原有薪资组数据建快照,确认快照建立后再导入匹配到的模板,导入失败用快照回滚,一串顺序不能乱、有严格递进依赖。最初的设想很自然——把每个 API 描述成工具,在技能里描述每个场景该怎么编排,把"先调哪步、再调哪步"作为叙事上下文喂给 Agent,期望它在 ReAct 里自己跑出正确顺序。实测下来不行:技能编排作为叙事上下文给到模型后,它有时跑对、有时明显跨一步或漏一步,导致任务不符合预期。根因还是 LLM 的不确定性,把执行顺序交给概率模型临场判断,没法保证每次都对。

于是团队识别出还缺一种行动模式——规划执行。ReAct 的核心控制结构本质是一个带退出边界的链式循环,概念懂了数据结构就容易写。规划执行要明确规划并管理连续多个任务的调度与依赖,得维护更复杂的任务规划与调度状态,落地复杂度比 ReAct 高一个量级。它的核心构件有任务 DAG 图、规划器、执行器、验收器,以及任务状态机和任务图状态的动态维护机制。最花功夫的是任务状态机模型:每个节点有自己的状态,一个下游节点能被调度启动的前提,是它依赖的上游节点全部完成、且本节点已经就绪,整套调度语义靠这台状态机驱动。

两种行动模式不必二选一。控制权在 Orchestrator 和具体行动模式之间流转:ReAct 运行到某一步发现脉络清晰、可以规划成若干并行或串行任务时,就把控制权交还 Orchestrator,转入规划执行,依据任务的清晰程度在两者间切换。状态机建立之后,关键任务的人审阻塞与恢复也获得了现成的承载结构,节点状态本身就能表达"已暂停、等待审批",不必再为它单独设计一套机制。

何时需要

当你的 Agent 要交付一段步骤间有严格先后依赖、顺序错了就交付失败的业务流程,而 ReAct 的逐步自由决定已经压不住跨步漏步。这套规划怎么维护任务调度态、跟叙事与机械参数怎么分开,是会话统一状态平面的三权分立要回答的;关键任务阻塞等人审、审批后恢复执行流,靠的就是这台状态机,见HITL 阻塞与恢复


这是 ADPS 蓝皮书(企业落地实践)。返回 案例库模式矩阵