目标分解
目标分解让智能体在行动之前,将高层目标拆分为一组有序的、易于处理的子任务(即计划),然后执行并监控该计划,在步骤失败时重新规划。显式计划会成为一个可检查的产物,供您进行评审、把关和调试。当目标需要多个相互依赖的步骤,且反应式、逐步执行的智能体容易偏离方向或停滞不前时,请使用此模式;对于简单的单次任务,请跳过此模式。
问题
当单个 LLM 调用被赋予一个宽泛的多步骤目标时,往往会即兴发挥。一次只选择一个动作的反应式智能体在面对长周期任务时可能会迷失方向:它们会重复工作、遗漏前提条件,或者在没有意识到整体目标已无法实现的情况下陷入死胡同。由于没有作为产物的计划存在,您无法在运行前评审预期的步骤,无法判断失败是源于糟糕的策略还是糟糕的执行,也无法在中断后轻松恢复。智能体的推理是隐式的、瞬态的,且难以审计。
适用场景
此模式适用于可分解为多个具有明确顺序且相互依赖的步骤的目标——例如“先研究后综合”、“先迁移后验证”、“先收集后对账再报告”。它假设模型能够根据目标和可用工具制定出合理的计划,并且步骤具有足够的可见性以检测失败。在步骤成本高昂、会产生副作用或难以撤销的情况下,此模式最具价值,因为在执行前评审计划是值得的。如果根据当前状态下一步行动显而易见,或者环境变化极快以至于任何预先制定的计划在执行第二步之前就已经过时,则不适合使用此模式。
解决方案
将智能体拆分为规划阶段和执行阶段。规划器读取目标、可用工具和当前状态,并输出一个显式的、有序的计划:包含子任务及其依赖关系和预期输出的列表(或图)。将计划视为一等公民(first-class artifact)是核心思想——它可以被记录、展示给人工审批、根据策略进行评分,以及在不同运行之间进行差异对比(diff)。显式地对依赖关系进行编码,以便独立的子任务可以并行运行,而有依赖关系的子任务则等待其输入,而不是强行采用模型凭空捏造的脆弱线性顺序。
然后,执行器逐步运行计划,将每一步的结果向前传递,并对照该步骤的预期输出进行检查。当某个步骤失败、返回不可用的内容或使下游假设失效时,将控制权交回给规划器,以便从当前状态重新规划,而不是盲目继续——这种闭环正是将鲁棒的分解与单次规划区分开来的关键。保持计划在目标允许的范围内尽可能浅显:相比于深层树状结构,更倾向于少数精心选择的步骤;通过预算限制重新规划,以防止智能体陷入无限循环;并允许简单的目标完全绕过规划。
组件
优势
- 长周期目标能够保持连贯性,因为预期的步骤是预先决定的,而不是一次一个即兴发挥。
- 显式计划是可检查的:在产生任何副作用之前,可以对其进行评审、批准、审计和差异对比。
- 失败更容易定位——糟糕的计划与糟糕的步骤执行是可以区分开来的。
- 独立的子任务展现了并行性,并允许在中断后从上一个已完成的步骤恢复工作。
风险
- 有缺陷的初始分解会产生连锁反应:每一个下游步骤都会继承错误的假设或缺失的前提条件。
- 过度规划会增加简单目标的延迟和成本,而反应式智能体本可以在一步内完成这些目标。
- 在快速变化的环境中,计划会过时,导致执行步骤时仍基于陈旧的世界状态。
- 无限制的重新规划循环,即智能体反复重写计划而没有取得实质性进展。
不适用场景
- 根据当前状态,下一步行动显而易见,且单个反应式步骤即可解决目标。
- 环境变化的速度快于计划保持有效的时间,导致任何预先制定的顺序都会过时。
- 步骤成本低廉、可逆且相互独立,因此规划的开销超过了其带来的收益。
技术
示例
- 研究助手规划“收集来源”、“提取主张”、“交叉核对”然后“综合”,在依赖综合的步骤之前并行运行来源收集。
- 代码迁移智能体规划“盘点使用情况”、“转换文件”、“运行测试”,并在测试步骤暴露遗漏的边缘情况时,重新规划转换步骤。
- 数据对账智能体将“结账”目标分解为“拉取账簿”、“归一化”、“匹配条目”和“标记异常”,其中匹配步骤以成功归一化为前提。
KPI
- 目标完成率
- 端到端完全实现的目标比例;优秀的表现意味着在相同的多步骤任务中,分解模式的效果超越了反应式基线。
- 重新规划频率
- 一次运行触发重新规划的频率;健康的区间意味着循环能够捕获真正的失败,而不会在每一步都发生剧烈震荡。
- 每个目标的步骤数与最小步骤数对比
- 计划长度相对于合理最小值的比例;注意防范过度规划导致简单目标的步骤数虚高。
- 计划审批通过率
- 在执行前被评审员或策略检查接受的计划比例;低通过率表明系统性分解能力较弱。
已观测到的失效模式
- 糟糕的分解会产生连锁反应:早期错误的假设会破坏下游的每一个依赖步骤。
- 重新规划循环:智能体反复重写计划,而无法收敛或取得进展。
- 执行过时的计划:执行某个步骤时,所针对的世界状态自计划制定以来已发生变化。
- 过度分解:将一个简单的目标拆分为不必要的步骤,增加了延迟、成本和失败面。
经验教训
- 使计划成为真正的产物——记录它、展示它、对比它——这样失败就是可调试的,而不是神秘莫测的。
- 始终闭环:检测步骤失败并从当前状态重新规划,而不是盲目继续。
- 通过显式预算限制计划深度和重新规划,防止简单的目标陷入无休止的循环。
- 允许简单的目标跳过规划器;将分解保留给真正具有多步骤、依赖性的工作。
常见问题
- 这与反应式 ReAct 风格的智能体有什么不同?
- 反应式智能体根据当前状态一次决定一个动作,没有作为产物的计划。目标分解则预先确定一个有序的计划,使预期的步骤可检查,且依赖顺序明确。在实践中,两者经常结合使用:先规划,然后在每个步骤中反应式地执行,并在步骤失败时重新规划。
- 当步骤在计划执行中途失败时会发生什么?
- 将控制权交回给规划器,以便从当前状态重新规划,而不是盲目继续。闭环重新规划是使分解具备鲁棒性的关键。通过预算对其进行限制,以防止持续失败的步骤在没有进展的情况下触发无休止的重写。
- 什么时候规划弊大于利?
- 适用于简单的、单步骤的目标(此时下一步行动显而易见),或者适用于变化速度快于计划失效速度的环境。在这些情况下,前期规划会增加延迟和计划过时的风险。检测简单目标并让其绕过规划器,将分解保留给真正多步骤、存在依赖关系的工作。