简介:深度研究类任务中,“先出完整计划再执行”的DAG智能体常因早期假设被推翻而浪费大量算力。本文系统定义“边做边长”的动态规划架构:以最小初始计划起步,随执行观察对任务图做局部扩展与重构,并解析其核心组成、运行原理、与静态规划等相近范式的区别及落地注意事项,帮助开发者正确理解与选型。
DAG智能体的动态规划,是指一类以有向无环图(DAG)作为计划载体、以“边执行边重构计划”为核心机制的智能体编排范式。业内也常将其称为增量式规划,或形象地叫作“边做边长”:任务图不是在开工前一次性画完,而是随着执行的深入逐步生长出来的。
可以从三个视角理解这个概念:
技术视角:整个任务被建模为一张有向无环图。图中每个节点代表一个子任务——可能是一次检索、一段文档阅读,或一次推理判断;边表示子任务之间的依赖关系。与静态规划的关键区别在于,这张图并非执行前定稿,而是由规划器先给出一个最小可执行的初始骨架,再根据每个节点的真实执行结果,对图做插入、替换、剪枝、扩展等局部变换,让计划与系统的理解同步演进。
业务视角:它解决的是“计划赶不上变化”的问题。在深度研究、多源交叉验证这类开放性任务中,中间搜索结果经常推翻最初假设。动态规划让系统能在发现冲突的第一时间调整方向,避免在已被证伪的分支上继续投入算力。
使用视角:对开发者而言,采用这种范式意味着把系统拆分为规划器、执行器、评估器三个角色,并明确定义“什么情况下触发重规划、重规划允许改动图的哪些部分”。开发者交给系统的只是一个任务目标和约束条件,而不是一份不可更改的完整施工图。
需要注意,无论图如何动态变化,它必须始终满足“无环”这一结构性质——这是调度器能够正确判断执行顺序、避免死循环的前提。
深度研究任务,指需要在几十上百个信息源之间跳转、反复求证、层层推理才能回答的问题。一个典型例子是:找出这样一个人——他的父亲是新教牧师,他娶了一位时装设计师,他在一个村庄建了一所学校。这类问题无法靠一次搜索解决:系统要先锁定“新教牧师的孩子”这条线索,再结合“配偶是时装设计师”做交叉验证,逐步缩小范围,任何一条线索断裂都需要更换路径重来。
这类任务有三个特征,使其对规划方式格外敏感:
现有的主流DAG式深度研究系统,大多采用同一种流程:规划器先一次性生成完整任务图,再交给执行器运行,执行过程中由独立的修正模块对图做有限调整。业内常把这类范式概括为“先规划后修补”——在还没有任何节点真正执行、系统对问题的理解处于最浅层时,就完成了对整个任务的主要规划承诺;此后的所有调整,都只是在既定框架内打补丁。
这种范式的错配在于:规划承诺的大小与信息量的多少成反比。理解最浅的时刻做出了最大的承诺,而深度研究恰恰是中间发现最能改变全局的任务类型。打个比方,这就像装修前不看房屋结构就画完了全套图纸,施工中才发现承重墙位置全不对——在错误图纸上修补的代价,往往高于重新设计。
学术界近期的研究在相同系统架构下做过对照实验:将“边做边长”的动态规划替换为“先规划后修补”,在三项主流深度研究基准测试上,准确率分别下降约5.3、4.8、4.0个百分点;若进一步退化为完全不做重新规划的一次性静态计划,差距扩大到约14.0、12.6、10.0个百分点。这组数据说明:重规划能力并不是锦上添花的优化项,而是这类任务准确率的主要来源之一。
一个典型的动态规划DAG智能体,通常包含六个组件:
整个系统运行在一个“执行—观察—重构”的循环上,可以用下面的示意伪代码描述:
G = planner.initial_minimal_plan(task) # 只规划当前有把握的前几步while G 中存在未完成节点:node = scheduler.pick_ready(G) # 取出所有依赖已满足的节点,可并行result = executor.run(node, node.local_context)obs = evaluator.assess(result, task.goal) # 评估结果质量与假设一致性if obs.conflict or obs.insufficient: # 触发重规划G = planner.revise(G, node, obs) # 局部图变换:扩展/替换/剪枝assert is_acyclic(G) # 校验无环约束mark(node, done)answer = aggregator.synthesize(G) # 汇聚各分支结果生成答案
其中四个机制值得展开:
| 范式 | 计划生成时机 | 执行中能否改图 | 典型问题 |
|---|---|---|---|
| 一次性静态规划 | 执行前生成完整图 | 不能 | 假设错误时整条分支浪费 |
| 先规划后修补 | 执行前生成完整图 | 由独立修正器有限调整 | 补丁受既有框架约束 |
| 边做边长(动态规划) | 最小初始图 | 持续的局部图变换 | 实现复杂度更高 |
| 单链式推理 | 不显式建图 | 隐式、逐步调整 | 无并行分支,难以剪枝 |
几点补充说明:
回到定义本身:DAG智能体的动态规划,是一种让“计划的生长”与“理解的深入”保持同步的编排范式。它以有向无环图为计划载体,以最小初始计划起步,通过“执行—观察—局部重构”的循环,让任务图随证据积累逐步完善。它的核心价值,在于纠正了先规划后修补范式的结构性错配——不再在对问题理解最浅的时刻做出最大的规划承诺,而是在信息变多的过程中让计划跟着长。它的适用边界同样清晰:任务越开放、中间发现越可能推翻假设,动态规划的收益越大;反之,在步骤可预知、结构稳定的任务中,静态规划的简单与可控仍然是合理选择。