Agent Planning Patterns
学到 Agent Engineering 之后,下一步一个很自然的问题就是:
Agent 到底应该怎么规划和推进任务?
因为真实系统里,Agent 并不是只有一种长相。
有些系统非常简单:
- 看到目标
- 想一步
- 做一步
- 看结果
有些系统则更复杂:
- 先整体拆计划
- 再按计划逐个执行
- 遇到问题时回退、重规划
所以如果你想真正理解 Agent,不只是要知道“它会多步执行”,还要知道:
它的多步执行模式到底是怎么设计出来的。
这篇文档就专门整理 Agent 里最常见的一批 Planning Patterns。
1. 为什么要学 Planning Pattern
因为很多 Agent 的差异,不在于模型本身,而在于:
- 任务是怎么拆的
- 下一步是怎么决定的
- 什么时候该探索
- 什么时候该收敛
- 什么时候该停止
也就是说,Planning Pattern 决定的是 Agent 的运行形态。
如果不理解这些模式,你很容易出现两个问题:
- 把不需要复杂规划的任务做得过重
- 把需要稳定规划的任务交给随意的即时推理
2. 什么是 Planning
这里说的 Planning,不是只指“先列一个计划”。
在 Agent 系统里,它更广义地指:
- 如何把目标变成可执行步骤
- 如何在执行中决定下一步
- 如何根据结果调整路径
所以 Planning 可以发生在:
- 执行前
- 执行中
- 执行后复盘时
3. 最基本的模式:ReAct
ReAct 是最常见、也最基础的 Agent 模式之一。
它的核心节奏是:
Thought -> Action -> Observation
也就是:
- 先想一下
- 做一个动作
- 看结果
- 再决定下一步
3.1 它适合什么场景
适合:
- 信息需要边做边拿
- 工具调用顺序不固定
- 任务规模中等
- 决策依赖实时反馈
3.2 它的优点
- 简单
- 灵活
- 容易和工具调用结合
3.3 它的缺点
- 容易短视
- 容易局部最优
- 长任务里可能反复绕圈
所以 ReAct 很适合做“轻量动态决策”,但不一定适合特别长链路的大任务。
4. 先规划再执行:Plan-and-Execute
Plan-and-Execute 是另一个非常常见的模式。
它的思路是:
- 先根据目标生成一个整体计划
- 再按计划逐步执行
- 必要时再重规划
4.1 它适合什么场景
适合:
- 目标明确
- 任务规模较大
- 子任务之间有明显顺序
- 希望过程更可解释
4.2 它的优点
- 结构更清晰
- 过程更容易追踪
- 更便于做中间检查
4.3 它的缺点
- 前期计划可能不准
- 计划过细会很脆
- 外部环境变化快时容易失效
所以它适合中长任务,但不能假设初始计划永远正确。
5. 路由型模式:Router / Dispatcher
有些系统并不是让一个 Agent 从头做到尾,而是先判断:
- 这类任务该交给谁
- 该用哪套流程
- 该走哪个工具链
这类模式通常叫:
RouterDispatcherClassifier + Executor
5.1 它的核心
先做“任务分流”,再做“具体执行”。
5.2 它适合什么场景
适合:
- 任务类型差异大
- 每类任务有明显不同流程
- 希望控制成本和稳定性
比如:
- 简单 FAQ 走固定问答 流
- 代码问题走代码分析流
- 调研问题走搜索和总结流
5.3 它的优点
- 可控性高
- 易于扩展
- 适合和 Workflow 结合
5.4 它的缺点
- 路由错了,后面全错
- 分类边界不清时容易抖动
6. 反思型模式:Reflection / Self-Critique
这类模式会让 Agent 在执行后再做一轮检查:
- 我漏了什么
- 这个答案是否站得住
- 是否应该再查一次
- 是否需要修正
6.1 它适合什么场景
适合:
- 结果质量比速度更重要
- 任务容易漏关键点
- 需要一定自我校验能力
6.2 它的优点
- 能减少明显遗漏
- 能提高开放式任务质量
6.3 它的缺点
- 增加成本和延迟
- 有时只是“看起来在反思”,并不真正变好
所以这类模式最好配合评估来验证是否真的有效。
7. 树状探索:Search / Tree-of-Thought
更复杂一点的模式,会让系统同时考虑多条路径,再从中选优。
比如:
- 同时生成多种方案
- 比较它们
- 保留更优分支
这类思路更接近:
- 搜索
- 树状推理
- 多分支探索
7.1 它适合什么场景
适合:
- 方案空间较大
- 单一路径容易早早走偏
- 需要比较多个候选解