Skip to content

核心思想 ​

一句话理解:Planning 的核心是“分解目标、表示计划、执行步骤、观测结果、必要时重规划”的闭环。

如果把 Agent 比作一个项目管理者,那么 Planning 层就是它的“项目管理办公室”:先理解目标,再拆解任务,排出依赖,分配给执行者,跟踪进度,遇到风险时及时调整。本章介绍 Planning 的五大核心思想:任务分解、计划表示、规划循环、静态与动态重规划、以及与相邻主题的边界。

任务分解范式 ​

复杂任务很少能一步完成。Planner 需要把高层目标拆成更小、更可管理的单元。常见分解范式包括:

1. 分层分解(Hierarchical Decomposition) ​

把目标拆成若干阶段,每个阶段再拆成子任务,形成树状结构。

目标:发布新版本
├── 阶段 1:需求确认
│   ├── 1.1 收集需求
│   └── 1.2 评审需求
├── 阶段 2:开发
│   ├── 2.1 设计接口
│   └── 2.2 编写代码
└── 阶段 3:上线
    ├── 3.1 运行测试
    └── 3.2 部署

适合目标清晰、阶段边界明确的任务。

2. 基于依赖的分解(Dependency-Driven Decomposition) ​

不预先固定阶段,而是识别子任务之间的前置/后置关系,形成 DAG(有向无环图)。

适合数据管道、ML 训练、运维排障等强依赖场景。

3. 目标驱动分解(Goal-Driven Decomposition) ​

从最终目标反向推导需要达成的中间目标,类似 STRIPS/PDDL 中的逆向规划。

适合“达成某个状态”的任务,例如系统修复、配置变更。

4. 示例驱动分解(Few-Shot Decomposition) ​

给模型几个同类任务的拆解示例,让它模仿生成计划。适合计划模式相对固定的场景,如客服 SOP、标准故障处理。

5. 自适应分层分解(2025-2026) ​

与"一次性拆到底"不同,自适应分层先给出少量抽象的高层步骤,再在执行前按当前子任务的复杂度递归细化。AdaPlan-H(ACL 2026 Findings)证明了这种"按需细化"能同时避免两种经典失败:计划过细导致僵化、计划过粗导致不可执行。它与分层强化学习的思路殊途同归——HiPER(ICML 2026)把"高层出子目标、低层做执行"拆成两个时间尺度的策略分别训练,在长程稀疏奖励任务上显著稳定了信用分配。

6. 学习型分解(Learned Decomposition,2025-2026) ​

不依赖 prompt "现场发挥",而是直接训练 Decomposer / Planner:Plan-and-Act(ICML 2025)用真实轨迹反向标注出"可行计划"作为监督数据,训练专用 Planner 模型;HiPER 则用层级 RL 直接优化子目标选择。当业务任务分布稳定、调用量大时,学习型分解的规划质量与稳定性都明显优于纯提示工程。

计划表示 ​

计划需要一种结构化的表示方式,让 Planner、Executor、Observer、人都能理解。常见形式包括:

列表(List) ​

最简单,按顺序排列的步骤。

json
{
  "steps": [
    {"id": "s1", "action": "查询库存", "tool": "inventory_api"},
    {"id": "s2", "action": "计算推荐补货量", "tool": "recommendation_model"},
    {"id": "s3", "action": "生成采购单", "tool": "po_generator"}
  ]
}

优点:简单、易解析、易展示。 缺点:无法表达并行与依赖。

DAG ​

用节点表示步骤,边表示依赖关系。

json
{
  "nodes": ["s1", "s2", "s3", "s4"],
  "edges": [
    {"from": "s1", "to": "s2"},
    {"from": "s1", "to": "s3"},
    {"from": "s2", "to": "s4"},
    {"from": "s3", "to": "s4"}
  ]
}

优点:能表达并行与依赖,是生产中最常用的表示。 缺点:需要拓扑排序或调度器支持。

树(Tree) ​

每个节点可以展开为子树,适合分层任务。

            目标
          /   |   \
        子任务1  子任务2  子任务3
       /  \
     步骤1.1 步骤1.2

优点:表达层级清晰。 缺点:难以表达跨分支依赖。

状态图 / 有限状态机 ​

把计划表示为状态与转移,适合有明确生命周期和分支的任务。

适合审批流、故障处理、机器人流程自动化(RPA)。

Plan-Execute-Observe-Replan 循环 ​

Planning 不是一次性的,而是一个持续循环:

Plan ​

输入:用户目标、上下文、约束、可用工具。 输出:结构化计划(列表/DAG/树/状态图)。 关键:计划必须可验证,每个步骤应有明确的完成标准。

Execute ​

输入:计划。 输出:每个步骤的执行结果与状态。 关键:Executor 只负责按调度执行,不重新解释目标。

Observe ​

输入:执行结果、环境状态、日志。 输出:是否达预期、是否异常、是否满足约束。 关键:Observer 需要定义“好”与“坏”的标准,而不是只记录原始输出。

Replan ​

输入:观测结论。 输出:继续、局部调整、全局重规划、或终止。 关键:重规划需要触发器策略,避免频繁重规划导致的风暴。

静态 vs 动态重规划 ​

维度静态规划动态重规划
执行前是否完整生成计划是可先生成骨架,再逐步细化
执行中是否修改计划否是
适用场景目标清晰、环境稳定环境变化、工具不确定、目标可能演化
复杂度低高
成本低高(多次调用 Planner)

实践中常采用”混合模式”:先静态生成主计划,保留关键 checkpoint;在每个 checkpoint 根据观测结果决定是否动态调整后续步骤。

规划与推理的融合:测试时计算与搜索(2025-2026) ​

推理模型(o1/R1 等)的出现,让”规划”多了一层含义:模型在回答前可以花更多计算做自我验证与回溯。这对 Planning 的影响体现在两个互补方向上。

方向一:把推理预算当作规划资源来分配 ​

对 Agent 任务的系统研究(Scaling Test-Time Compute for LLM Agents,2025)总结了四种有效的测试时扩展手段:

手段做法效果(GAIA 基准观测)
并行采样(Best-of-N / Beam / DVTS)同时生成 N 条计划轨迹,用 Verifier 选出最优Best-of-N 将 GPT-4.1 基线的平均分从 55.8% 提升到 63.0%
序贯修正失败后带着错误信息重写计划,而非原地重试“何时修正”比”修正多少次”更关键
Verifier 合并用打分模型对多条轨迹排序或合并列表式(list-wise)打分效果最好
轨迹多样化刻意让采样温度/提示多样化收益稳定为正

Cohere 2026 年 10 月关于”扩展编码 Agent 团队”的研究给出了一个反直觉结论:规划是并行委派的明确赢家("Planning was the clear winner")——只让 lead agent 委派规划环节,奖励与全链路委派基本持平(63.6% vs 63.2%),成本却只要一半($249 vs $510);而给执行/验证环节加资源很快出现收益递减。这验证了”Planner 用强模型、Executor 用快模型”分层选型策略的合理性。

方向二:用树搜索代替单路径生成 ​

ReAct 是”一条路走到底”,ToT 把推理组织成树;LATS(ICML 2024)用 MCTS 把推理、行动、规划统一起来——LLM 同时充当动作生成器、价值评估器和反思器,环境反馈驱动搜索。AFlow(ICLR 2025)走得更远:用 MCTS 在”工作流代码”的空间里搜索,自动发现优于人工设计的 Agent 工作流。

需要注意的是,树搜索有两个前提:环境可模拟(代码、数学、数据库回滚容易,发邮件、转账等不可逆动作不行)和成本可接受(每个节点都是多次模型调用)。因此生产中的推荐姿势是”规划时搜索、执行时线性”:把 MCTS 限制在 plan-time 的计划生成阶段,选出的最优路径再交给 Executor 线性执行,避免运行时的成本爆炸。

与相邻主题的边界 ​

与 Agent Runtime ​

Planning 决定“做什么”,Runtime 决定“怎么做调度”。Planning 生成计划后交给 Runtime,Runtime 负责任务分发、并发控制、超时、重试、生命周期管理。Planning 不应侵入 Runtime 的调度细节。

与 Memory ​

Planning 需要读取 Memory 中的历史计划、经验教训、用户偏好;也会把当前计划写入 Plan Store。但 Planning 不处理向量化、检索策略、记忆压缩等 Memory 内部机制。

与 Reflection ​

Reflection 负责从失败中总结根因,输出改进建议;Planning 根据这些建议生成新计划。Reflection 是“为什么失败”,Planning 是“下一步怎么做”。

与 Multi-Agent ​

Multi-Agent 解决任务由哪个 Agent 执行。Planning 可以先于 Multi-Agent 运行,生成子任务后再由路由或协调层分配给不同 Agent。Planning 也可以运行在每个 Agent 内部,用于拆解各自被分配的子目标。

与 MCP / Tool Use ​

Planning 把工具视为能力的抽象,计划项中引用 tool name 和参数模板。具体的 MCP 连接、认证、调用、结果解析由 Tool/MCP Gateway 处理。Planning 不直接实现协议细节。

本章小结 ​

  • 任务分解有分层、依赖驱动、目标驱动、示例驱动、自适应分层、学习型等多种范式;2025-2026 年的趋势是"按需细化"与"直接训练 Decomposer"。
  • 计划表示常用列表、DAG、树、状态图,其中 DAG 能最好地平衡表达能力与执行效率。
  • Plan-Execute-Observe-Replan 是 Planning 的核心循环;重规划分为静态与动态两种模式。
  • 推理模型时代,测试时计算(并行采样、序贯修正、Verifier)与树搜索(LATS/AFlow)成为提升计划质量的新杠杆,但应遵循"规划时搜索、执行时线性"的成本纪律。
  • Planning 与 Runtime、Memory、Reflection、Multi-Agent、MCP、Tool Use 的边界必须清晰,否则系统会高度耦合。

参考来源

Released under CC-BY-SA-4.0 License.