DAG智能体动态规划解析:为何边做边长更有效

作者:rousong2026.11.03 15:05浏览量:0

简介:深度研究类任务中,“先出完整计划再执行”的DAG智能体常因早期假设被推翻而浪费大量算力。本文系统定义“边做边长”的动态规划架构:以最小初始计划起步,随执行观察对任务图做局部扩展与重构,并解析其核心组成、运行原理、与静态规划等相近范式的区别及落地注意事项,帮助开发者正确理解与选型。

一、概念定义:什么是DAG智能体的动态规划

DAG智能体的动态规划,是指一类以有向无环图(DAG)作为计划载体、以“边执行边重构计划”为核心机制的智能体编排范式。业内也常将其称为增量式规划,或形象地叫作“边做边长”:任务图不是在开工前一次性画完,而是随着执行的深入逐步生长出来的。

可以从三个视角理解这个概念:

技术视角:整个任务被建模为一张有向无环图。图中每个节点代表一个子任务——可能是一次检索、一段文档阅读,或一次推理判断;边表示子任务之间的依赖关系。与静态规划的关键区别在于,这张图并非执行前定稿,而是由规划器先给出一个最小可执行的初始骨架,再根据每个节点的真实执行结果,对图做插入、替换、剪枝、扩展等局部变换,让计划与系统的理解同步演进。

业务视角:它解决的是“计划赶不上变化”的问题。在深度研究、多源交叉验证这类开放性任务中,中间搜索结果经常推翻最初假设。动态规划让系统能在发现冲突的第一时间调整方向,避免在已被证伪的分支上继续投入算力。

使用视角:对开发者而言,采用这种范式意味着把系统拆分为规划器、执行器、评估器三个角色,并明确定义“什么情况下触发重规划、重规划允许改动图的哪些部分”。开发者交给系统的只是一个任务目标和约束条件,而不是一份不可更改的完整施工图。

需要注意,无论图如何动态变化,它必须始终满足“无环”这一结构性质——这是调度器能够正确判断执行顺序、避免死循环的前提。

二、背景与价值:为什么“先规划后修补”会失效

1. 深度研究任务的本质困难

深度研究任务,指需要在几十上百个信息源之间跳转、反复求证、层层推理才能回答的问题。一个典型例子是:找出这样一个人——他的父亲是新教牧师,他娶了一位时装设计师,他在一个村庄建了一所学校。这类问题无法靠一次搜索解决:系统要先锁定“新教牧师的孩子”这条线索,再结合“配偶是时装设计师”做交叉验证,逐步缩小范围,任何一条线索断裂都需要更换路径重来。

这类任务有三个特征,使其对规划方式格外敏感:

  • 信息增量不可预判:有的搜索一步就能排除大半候选,有的连续多步都拿不到有效信息,事先无法判断哪条路径收益高;
  • 中间发现可能推翻前提:执行到第三步发现“目标人物根本不是预设的那位”,整条推理链随之作废;
  • 验证具有组合性:多条线索必须同时成立,最终答案才可靠,任何单点证伪都需要局部重算。

2. “先规划后修补”的结构性错配

现有的主流DAG式深度研究系统,大多采用同一种流程:规划器先一次性生成完整任务图,再交给执行器运行,执行过程中由独立的修正模块对图做有限调整。业内常把这类范式概括为“先规划后修补”——在还没有任何节点真正执行、系统对问题的理解处于最浅层时,就完成了对整个任务的主要规划承诺;此后的所有调整,都只是在既定框架内打补丁。

这种范式的错配在于:规划承诺的大小与信息量的多少成反比。理解最浅的时刻做出了最大的承诺,而深度研究恰恰是中间发现最能改变全局的任务类型。打个比方,这就像装修前不看房屋结构就画完了全套图纸,施工中才发现承重墙位置全不对——在错误图纸上修补的代价,往往高于重新设计。

3. 可量化的代价

学术界近期的研究在相同系统架构下做过对照实验:将“边做边长”的动态规划替换为“先规划后修补”,在三项主流深度研究基准测试上,准确率分别下降约5.3、4.8、4.0个百分点;若进一步退化为完全不做重新规划的一次性静态计划,差距扩大到约14.0、12.6、10.0个百分点。这组数据说明:重规划能力并不是锦上添花的优化项,而是这类任务准确率的主要来源之一。

三、核心组成:一张会生长的任务图由什么构成

一个典型的动态规划DAG智能体,通常包含六个组件:

  1. 规划器:负责生成初始最小计划,并在执行过程中承担局部重规划。注意初始计划是“最小可执行”而非“完整覆盖”——通常只包含当前最有把握的前几步。
  2. 任务图(DAG):计划的载体。节点是子任务,边是依赖关系。没有依赖的分支可以并行执行;每个节点只携带它需要的那部分上下文,不必背负整个任务历史。
  3. 执行器:运行单个节点,例如调用检索能力、阅读并摘要文档、做一次判断。执行器不感知全图,只关心本节点的输入与输出。
  4. 观察与评估器:把执行结果转化为结构化信号——结果是否可信、是否与已有假设冲突、信息是否足以支撑下一步决策。
  5. 图变换操作集:动态规划的动作空间,典型操作包括:扩展(在已完成节点后追加新子任务)、替换(用新分支替换被证伪的分支)、剪枝(删除不再需要的子树)、合并(多条分支的结果汇入同一汇聚节点)、重排(调整节点间的依赖关系)。
  6. 聚合器:当全图完成或达到终止条件时,将各分支结果合成为最终答案。

四、工作原理:边做边长如何运行

整个系统运行在一个“执行—观察—重构”的循环上,可以用下面的示意伪代码描述:

  1. G = planner.initial_minimal_plan(task) # 只规划当前有把握的前几步
  2. while G 中存在未完成节点:
  3. node = scheduler.pick_ready(G) # 取出所有依赖已满足的节点,可并行
  4. result = executor.run(node, node.local_context)
  5. obs = evaluator.assess(result, task.goal) # 评估结果质量与假设一致性
  6. if obs.conflict or obs.insufficient: # 触发重规划
  7. G = planner.revise(G, node, obs) # 局部图变换:扩展/替换/剪枝
  8. assert is_acyclic(G) # 校验无环约束
  9. mark(node, done)
  10. answer = aggregator.synthesize(G) # 汇聚各分支结果生成答案

其中四个机制值得展开:

  • 局部性:重规划只发生在受影响的子图内,而不是推翻全图。这既控制了重规划本身的开销,也保住了已验证分支的成果。
  • 最小初始计划:初始图只包含“无论中间发现如何都不会白做”的步骤,例如首轮多路检索。越不确定的部分,越留到信息充分之后再规划——这本质上是在用执行换取规划所需的信息。
  • 并行与上下文隔离:无依赖分支并行执行,每个节点只看自己需要的上下文,既节省推理成本,也减少无关信息对判断的干扰。
  • 环检测:动态插入节点时必须校验无环性。一旦图中出现环,调度器会陷入互相等待,任务无法推进。

五、与相近概念的区别

范式 计划生成时机 执行中能否改图 典型问题
一次性静态规划 执行前生成完整图 不能 假设错误时整条分支浪费
先规划后修补 执行前生成完整图 由独立修正器有限调整 补丁受既有框架约束
边做边长(动态规划) 最小初始图 持续的局部图变换 实现复杂度更高
单链式推理 不显式建图 隐式、逐步调整 无并行分支,难以剪枝

几点补充说明:

  • 相比单链式推理(即“想一步做一步”的线性模式),DAG结构保留了并行分支与显式依赖,天然支持多线索同时推进和分支级剪枝;
  • 相比树形分解,DAG允许一个节点依赖多个前驱节点,这正是“多条线索汇聚到同一验证节点”这类交叉验证模式的结构基础;
  • 边做边长并非在所有维度占优:它的调度、评估与图变换逻辑更复杂,在结构清晰、步骤可预知的任务中,更简单的范式可能性价比更高。

六、典型应用场景

  • 深度研究与调研报告:行业调研、技术选型分析等需要多源交叉验证的开放任务,中间发现频繁改变后续搜索方向;
  • 多跳复杂问答:答案需要串联多个实体与关系的事实型问题,例如前文“根据三条线索找人”的例子;
  • 事实核查:多条证据必须同时成立,任一证据链断裂都需要换路径重新取证;
  • 智能体编排平台:主流大模型服务平台(如百度智能云提供的智能体开发与编排类产品)普遍支持DAG式工作流编排,开发者可在此类通用编排能力之上实现动态重规划逻辑;
  • 数据与任务流水线:子任务间存在依赖、且前序执行结果会影响后续步骤形态的批处理场景。

七、使用注意事项

  1. 重规划触发条件要克制:每次重规划都有token与时间开销。触发条件过松会导致计划反复震荡、成本失控;过紧则退化为先规划后修补。常见做法是仅在“结果与假设冲突”或“信息不足以支撑下游节点”时触发。
  2. 始终维护无环约束:动态插入节点时必须做环检测,否则调度可能死锁。
  3. 设计好上下文传递:节点之间传递的应是结构化摘要而非原始全文,否则长任务会迅速撑爆上下文窗口,同时引入噪声。
  4. 评估器质量决定重规划上限:重规划方向是否正确,取决于对执行结果的评估是否可靠;评估器本身需要结合业务场景反复校准。
  5. 保留可观测性:记录每次图变换的触发原因与前后快照,便于回溯错误决策、支撑离线评估与持续调优。
  6. 设置预算与终止条件:并行分支与重规划都会放大调用量,应为单次任务设置步数、成本与时间上限,并定义明确的目标达成判据,防止任务无限生长。

八、总结

回到定义本身:DAG智能体的动态规划,是一种让“计划的生长”与“理解的深入”保持同步的编排范式。它以有向无环图为计划载体,以最小初始计划起步,通过“执行—观察—局部重构”的循环,让任务图随证据积累逐步完善。它的核心价值,在于纠正了先规划后修补范式的结构性错配——不再在对问题理解最浅的时刻做出最大的规划承诺,而是在信息变多的过程中让计划跟着长。它的适用边界同样清晰:任务越开放、中间发现越可能推翻假设,动态规划的收益越大;反之,在步骤可预知、结构稳定的任务中,静态规划的简单与可控仍然是合理选择。