Plan-and-Execute 是 Agent 里一种很常见的任务执行方式。
它的名字已经把核心说得很清楚了:
先规划,再执行。
如果只用一句话解释:
先把一个复杂任务拆成几步,再按照计划一步一步完成。
它和 ReAct 最大的区别就在这里。
ReAct 更像是边走边看。
Plan-and-Execute 更像是先想清楚路线,再开始走。
为什么需要 Plan-and-Execute
如果任务很简单,其实不需要专门规划。
比如:
帮我查一下今天北京的天气。
直接调用天气工具就可以。
但如果任务变成:
帮我分析三家 AI Agent 公司,比较它们的产品、价格和技术特点,最后给我一份报告。
这个任务明显复杂很多。
Agent 需要做的事情可能包括:
确定要研究的公司
↓
搜索每家公司的资料
↓
整理产品功能
↓
整理价格
↓
分析技术特点
↓
做横向比较
↓
生成报告
如果模型直接开始做,很容易做到一半漏掉某些内容。
所以可以先生成一个计划。
Plan-and-Execute 是怎么工作的
整个过程可以拆成两个部分:
Plan
先规划。
比如 Agent 先生成:
1. 确定三家公司
2. 搜索官网和公开资料
3. 整理每家的产品功能
4. 整理价格
5. 整理技术特点
6. 做对比
7. 输出最终报告
然后进入:
Execute
也就是按照这个计划逐步执行。
执行步骤 1
↓
执行步骤 2
↓
执行步骤 3
↓
……
↓
完成任务
所以它的核心结构非常简单:
用户任务
↓
生成计划
↓
执行计划
↓
输出结果
为什么它比直接执行更稳定
复杂任务最容易出现的问题,就是模型做到后面忘记前面的要求。
比如用户要求:
比较产品、价格、技术和优缺点。
模型直接开始搜索时,可能查了大量产品功能,却忘记查价格。
有了 Plan 之后,任务会更明确。
Agent 知道自己现在正在做哪一步。
比如:
当前任务:
步骤 4,整理价格。
这样就不容易跑偏。
所以 Plan-and-Execute 很适合:
复杂研究
长任务
多步骤任务
需要固定输出结构的任务
它和 ReAct 有什么区别
这两个经常一起出现。
ReAct 的思路是:
做一步
↓
看结果
↓
决定下一步
而 Plan-and-Execute 是:
先决定要做哪些步骤
↓
再执行这些步骤
比如去一个陌生城市旅游。
ReAct 更像:
先往前走,到了路口再决定往哪边。
Plan-and-Execute 更像:
先在地图上规划路线,再按照路线走。
所以它们适合的任务也不太一样。
如果任务路径变化很多,ReAct 会更灵活。
如果任务比较长,而且大致步骤可以提前确定,Plan-and-Execute 会更清楚。
Plan 也不是一成不变的
现实里的任务不一定会完全按照计划发展。
比如原来的计划是:
1. 搜索官网
2. 获取价格
3. 比较产品
执行以后发现:
某家公司官网根本没有公开价格。
那 Agent 就不能继续死磕原计划。
它可能需要重新规划:
搜索官方文档
↓
搜索新闻报道
↓
搜索公开访谈
所以更完整的 Plan-and-Execute 往往还会加入:
Replan
也就是重新规划。
结构就变成:
Plan
↓
Execute
↓
检查结果
↓
必要时 Replan
↓
继续 Execute
Plan-and-Execute 的问题
它也有一个明显的问题。
如果一开始的计划就错了,后面的步骤可能都会跟着错。
比如模型一开始理解错了任务。
后面虽然执行得很认真,但方向已经偏了。
另外,规划本身也会增加一次甚至多次模型调用。
所以简单任务没必要硬套 Plan-and-Execute。
否则会出现一种情况:
明明两步能做完的事情,Agent 先花时间写了一份五步计划。
反而更慢。
最后
Plan-and-Execute 的核心其实很好记:
先想清楚怎么做,再开始做。
它适合那些步骤比较多、任务比较复杂的问题。
最简单的结构就是:
Plan
↓
Execute
↓
Finish
复杂一点则会变成:
Plan
↓
Execute
↓
检查
↓
Replan
↓
继续执行
如果说 ReAct 强调的是:
下一步该做什么?
那么 Plan-and-Execute 更关注的是:
整个任务应该怎么完成?