Plan-and-Execute 架构详解:先规划,再执行
系列文章第 2 篇 · AI Agent 六大主流架构拆解
本篇拆解 Plan-and-Execute,把“规划”与“执行”分离,并把它落到油菜新品种区域试验评价这一长周期多阶段任务上(场景与第 1 篇的「种质性状查询」互补)。
什么是 Plan-and-Execute
Plan-and-Execute 核心思想一句话:先用 Planner 一次性把任务拆成有序子任务列表,再用 Executor 逐项执行,中间结果可回灌,必要时触发 Re-Plan 修订后续计划。
一个最小运行单元:
与 ReAct 的关键区别:
- ReAct 是“边走边看” —— 每一步都在 Thought 里决定下一步,缺乏全局视野,长任务容易绕远路,且每步全量推理,token 随步数爆炸。
- Plan-and-Execute 是“先有蓝图再施工” —— Planner 先给出全局计划,Executor 只管按图施工,必要时回头改图。
一句话总结:ReAct 是思考驱动执行,Plan-and-Execute 是规划驱动执行。
品种区域试验评价
油菜新品种从育成到审定,必须经过区域试验这一关键长周期环节:在多个生态区试点、多年度重复,系统评价新品种的丰产性、稳定性、适应性,作为能否推广的决策依据。整个评价流程是一个典型的多阶段、有明确工序、跨季度的工作流:
“汇总各试点多年试验数据 → 稳定性参数计算 → 生态适应性区划查询 → 综合丰产/稳产/适配评价 → 给出推广建议”
这种特性正好契合 Plan-and-Execute:
- 多阶段有依赖:必须先汇总数据,才能算稳定性;先有稳定性,才能做适应性判断——前一阶段输出是后一阶段输入。
- 可中途修订:某试点数据缺失或某品种稳定性不达标,可 Re-Plan 调整后续步骤(剔除该品种、补充试点查询)。
- 可审计:区试评价报告要能存档、评审,Plan 本身就是可交付物。
架构与运行机制

- Planner 规划器:接收用户目标,一次性输出一份有序子任务列表(可含步骤间依赖)。
- Plan 任务列表:Planner 产出的有序步骤,既是执行的蓝图,也是可审计、可回放的中间产物。
- Executor 执行器:逐项执行每个 Step,每步可调用外部工具(检索、计算、查库等)获取新信息并产出中间结果;工程上常用一个独立子 Agent 作为执行内核。
- Re-Plan 重规划:每完成一步,根据已完成步骤与中间结果,决定是继续按原计划、插入新步骤、修订剩余计划,还是收尾——而非死守初始计划。
关键设计点:
- Planner 与 Executor 解耦,可分别选型——Planner 用强模型保证规划质量,Executor 用快模型降低成本。
- 每步结果回灌到上下文,供后续步骤消费,也供 Re-Plan 判断计划是否需要修订。
- Re-Plan 是兜底:没有它,Plan-and-Execute 就退化为“一次死计划”;有了它,即便 Planner 第一次拆得不够准,执行中也能动态修订。
基于 LangChain 的代码演示
日志配置
定义区试评价工具
用 @tool 装饰器加 Pydantic args_schema 定义三个工具:
- 多地点试验数据查询
- 稳定性参数计算
- 适应性区划查询。
| |
Executor 实现
用 create_agent 把三个工具装进一个子 Agent,作为 Executor。
| |
Executor 的作用是对于特定的一个步骤,模型返回结果,必要时调用工具。
Planner 实现
对于 Pydantic 的类型提示功能,让模型返回结构化的数据。
| |
类与重要方法说明:
Step:模型返回单个步骤的结构化表示PlannerResult:Planer Agent 返回的结构化表示,包含多个StepReplanResult:Replanner Agent 返回的结构化表示,提示信息已完备,或给出下一步骤FinalAnswerResult:Synthesizer Agent 返回的结构化表示,为最终回答Planner:包含三个 Agent,分别是 Planer Agent、Replanner Agent 和 Synthesizer Agent,还包含 Executor 实例make_plan方法:调用 Planer Agent,返回步骤call_executor方法:调用 Executor,实际行为是为当前步骤请求模型并返回结果replan方法:调用 Replanner Agent,返回规划结束或执行下一步骤synthesize方法:调用 Synthesizer Agent,返回最终的回答
query 方法
定义 query 方法,接收用户提问。
| |
- 实例化 Executor 和 Planner
- 链式调用返回最终回答
调用
执行的日志如下,较长:
| |
根据模型返回的步骤列表,执行步骤时可能会调用工具,并且在适当时会重新规划。
优缺点
优点
- 全局规划:先有蓝图再施工,长任务不绕远路。
- 计划可审计:Plan 是显式中间产物,区试评价报告可存档、评审、追溯。
- 可重规划:Re-Plan 让计划能适应执行中暴露的新信息(如某品种稳定性不达标需剔除),不死守原计划。
缺点
- Planner 拆错则全链跑偏:早期计划质量决定全局,对 Planner(通常用强模型)依赖高。
- 早期计划难应对新信息:即便有 Re-Plan,频繁重规划也会推高成本与延迟。
- 计划粒度难把握:拆太粗则执行不精确(每步仍要走长推理),拆太细则等于退化成 ReAct。