04.Agent思考框架-Plan-and-Execute
Plan-and-Execute 框架:面向复杂任务的层次化推理与行动架构
1. 引言
随着语言模型推理能力与外部工具使用能力的增强,如何高效地解决长程、多步骤、复杂任务成为 AI Agent 的关键挑战。
传统的 Chain-of-Thought (CoT) 与 ReAct 框架虽能支持推理与行动的结合,但它们通常以逐步生成的方式执行任务,容易陷入“短视(myopic)”问题——即模型缺乏全局规划能力,只能在局部推理层面决策。
基于此,就有了 Plan-and-Execute(计划–执行)框架,其核心逻辑是 “先全局规划,再分步执行,全程监控调整” —— 模仿人类处理复杂任务的模式(比如项目经理做项目计划、旅行博主规划跨城行程),先拆解出完整的任务步骤,再逐一执行,同时根据执行结果动态优化计划,避免 “边想边做” 导致的返工或偏离目标。
2. 核心思想
Plan-and-Execute 的基本理念是:
让语言模型先“想清楚要做什么”,再“逐步去做”。
2.1 定义
Plan-and-Execute(简称 “P&E”)是一种 “目标驱动 + 规划先行” 的 Agent 认知架构,核心是将复杂任务拆解为 “可执行的子步骤(计划)”,再逐个执行子步骤,同时监控执行结果,若出现偏差则修正计划,直至完成整体目标。
2.2 子系统
在该框架中,模型被划分为两个协作子系统:
- Planner(规划器) —— 负责全局任务分解与阶段性目标设定;
- Executor(执行器) —— 负责逐步执行具体步骤,并根据反馈调整局部行为。
相比 ReAct 的“边想边做”模式,Plan-and-Execute 更接近人类在处理复杂任务时的思维方式:
2.3 示例说明
还是以上一篇ReAct中的示例进行扩展说明:完成 “建筑项目跨区域材料调度”(目标:把北京项目的剩余 100 吨钢材,5 天内运到天津项目,预算 10 万元)
对于P&E框架,其执行步骤如下:
- 先规划(Plan):拆分子步骤→
- ① 确认北京项目钢材库存及规格;
- ② 联系合规物流商报价;
- ③ 对比物流方案(成本、时效);
- ④ 办理材料运输备案;
- ⑤ 安排装车运输;
- ⑥ 天津项目验收;
- 再执行(Execute):按步骤逐一落地,比如先调用 “库存工具” 确认钢材,再调用 “物流商工具” 报价;
- 动态调整:若执行中发现 “某物流商报价超预算”,则回到规划环节,补充 “筛选低价物流商” 子步骤,修正后继续执行。
3. 框架结构
3.1 流程概览
Plan-and-Execute 框架的核心流程如下:
任务输入 (Task)
↓
[Planning Stage] —— 生成全局计划(Plan)
↓
[Execution Stage] —— 按步骤执行(Execute)
↓
结果汇总与评估 (Result / Feedback)
在实践中,这两阶段通常由同一个语言模型(或多个模型)协作完成:
- Planner:生成多步任务计划,明确每个子任务的目标;
- Executor:逐步执行每个子任务,可调用工具或环境;
- Evaluator(可选):在执行后评估结果质量,并决定是否重新规划。
3.2 示例
假设目标:“为某地铁项目采购3类材料(1000吨HRB400E钢筋、500立方米C30混凝土、200套消防设备),要求20天内全部送达工地,预算800万元,需符合地铁工程质量标准”
| 步骤 | 具体操作(Agent 执行) |
|---|---|
| ① 目标解析(Target Parsing) | 拆解目标关键约束:材料类型(3类)、数量、时效(20天)、预算(800万)、质量标准(地铁级)→ 明确“不可妥协条件”(质量、时效)和“可调整条件”(预算浮动5%) |
| ② 全局规划(Plan Generation) | 生成详细子步骤(按逻辑顺序): 1. 校验3类材料的地铁级质量标准参数; 2. 筛选符合质量标准的供应商(每类材料≥3家); 3. 向供应商询价,对比报价是否在预算内; 4. 确认供应商交货周期(≤20天); 5. 选择最优供应商(质量+价格+时效平衡); 6. 签订采购合同; 7. 安排分批次物流运输; 8. 工地验收材料(核对质量+数量) |
| ③ 分步执行(Plan Execution) | 按子步骤调用工具执行: - 步骤1:调用“建筑质量标准工具”,获取地铁级材料参数; - 步骤2:调用“供应商筛选工具”,输入参数筛选供应商; - 步骤3:调用“报价工具”,向6家供应商询价; (每执行完一个子步骤,记录结果) |
| ④ 监控反馈(Monitoring & Feedback) | 检查执行结果是否符合计划要求: - 发现“混凝土供应商报价超预算10%”(偏离预算约束); - 发现“消防设备供应商交货周期25天”(偏离时效约束); - 整理偏差:2个子步骤未达标,需修正 |
| ⑤ 计划修正(Plan Revision) | 基于偏差调整计划: 1. 新增“混凝土供应商二次筛选”(要求报价≤预算上限); 2. 新增“消防设备供应商谈判”(要求交货周期≤20天,否则更换); 3. 调整步骤顺序:先谈判消防设备,再二次筛选混凝土供应商; → 修正后回到“分步执行”环节,继续推进 |
[Target Parsing]
Input:
材料类型(3类)、数量、时效(20天)、预算(800万)、质量标准(地铁级)→ 明确“不可妥协条件”(质量、时效)和“可调整条件”(预算浮动5%)
[Planning Stage]
Plan:
1. 校验 3 类材料的地铁级质量标准参数;
2. 筛选符合质量标准的供应商(每类材料≥3 家);
3. 向供应商询价,对比报价是否在预算内;
4. 确认供应商交货周期(≤20 天);
5. 选择最优供应商(质量 + 价格 + 时效平衡);
6. 签订采购合同;
7. 安排分批次物流运输;
8. 工地验收材料(核对质量 + 数量)
[Execution Stage]
- 步骤 1:调用 “建筑质量标准工具”,获取地铁级材料参数;
- 步骤 2:调用 “供应商筛选工具”,输入参数筛选供应商;
- 步骤 3:调用 “报价工具”,向 6 家供应商询价;
(每执行完一个子步骤,记录结果)
这种结构清晰地展示了规划与执行的分工:Planner 负责构思路线,Executor 负责落实行动。
3.3 P&E关键要素
要让 P&E 框架跑通,Agent 必须具备4个核心能力,对应4个关键组件:
- ① 目标解析能力:能从模糊需求中提取“关键约束”(如质量、时效、预算)和“可调整空间”,避免规划方向跑偏(比如用户没说质量标准,Agent 需自动补充“符合项目所属行业标准”);
- ② 规划生成能力:能拆解“颗粒度合适”的子步骤(既不能太粗,比如只拆“选供应商→采购→验收”,也不能太细,比如拆“打开供应商工具→输入参数→点击查询”),且子步骤符合逻辑顺序(如“验收”必须在“运输”之后);
- ③ 执行调度能力:能按计划顺序调用工具,处理“并行步骤”(如钢筋和消防设备的询价可同时进行)和“依赖步骤”(如“签订合同”必须在“询价对比”之后);
- ④ 监控修正能力:能识别“执行偏差”(如超预算、超时效),并判断是“调整子步骤”(如二次筛选供应商)还是“重新规划”(如预算严重不足,需和用户协商调整目标)。
4. 与 ReAct 的对比
P&E 和 ReAct 都属于 Agent 推理框架,但适用场景完全不同,对比清晰:
| 对比维度 | ReAct(推理-行动) | Plan-and-Execute(规划-执行) |
|---|---|---|
| 推理方式 | 推理与行动交替进行 | 规划与执行分阶段进行 |
| 计划优先级 | 执行是核心,规划服务于单次执行 | 规划是核心,执行围绕规划展开 |
| 决策粒度 | 细粒度、即时决策 | 粗粒度、全局规划 |
| 步骤关联性 | 子步骤弱关联(比如查价格后可直接反馈,无需后续步骤) | 子步骤强关联(比如 “备案” 必须在 “选物流商” 之后) |
| 优势 | 灵活、动态响应环境 | 结构化、全局性强 |
| 局限 | 容易迷失方向、循环冗长 | 计划可能过于刚性,缺乏即时反应 |
| 适用任务 | 开放式问答、信息检索等简单、短流程、不确定性高的任务(查库存、查价格、物流跟踪) | 长程任务、复杂流程、多阶段决策(跨项目调度、大型采购、项目管理) |
从本质上看,ReAct 偏向“思考中的即时行动”,而 Plan-and-Execute 偏向“先计划再执行的理性决策”。
两者可视为 AI Agent 推理架构的两种互补策略。
5. 优势分析
Plan-and-Execute 的主要优势体现在以下几个方面:
| 优势 | 说明 |
|---|---|
| 全局可控性强 | 通过显式规划步骤,模型行为更可预测、更易解释。 |
| 层次化推理能力 | 模型能在不同抽象层次上思考任务,从全局到局部逐层细化。 |
| 可复用性高 | 已生成的计划可复用或共享,便于多Agent协作或任务迁移。 |
| 易于监控与调试 | Planner 与 Executor 的独立性使得错误定位更清晰。 |
6. 局限与改进方向
尽管 Plan-and-Execute 提升了任务结构化程度,但也存在一些局限性:
| 局限 | 说明 |
|---|---|
| 计划僵化 | 若初始计划不合理,后续执行可能陷入错误路径。 |
| 缺乏动态适应能力 | 对突发情况或环境变化响应较慢。 |
| 计算成本高 | 需要额外生成和维护计划文本。 |
| 依赖任务分解质量 | Planner 的规划能力直接决定整体表现。 |
为缓解这些问题,研究者提出了一系列改进版本,例如:
- Reflexion + Plan-and-Execute:在执行后引入反思机制;
- Hierarchical Agent(分层智能体):多层 Planner–Executor 架构;
- Adaptive Planning:执行阶段可根据观察结果动态更新计划。
这些方法进一步增强了系统的鲁棒性与灵活性。
7. 应用与实践
按“组件搭建→流程设计→优化迭代”三步走,每个步骤都要结合业务场景细化
7.1 第一步:搭建 Agent 的 P&E 核心组件
Agent 要支持 P&E,必须包含5个核心模块(对应 P&E 闭环流程):
| 组件 | 功能描述 | 技术实现建议 |
|---|---|---|
| 目标解析模块(Target Parser) | 提取用户需求中的“核心目标+约束条件+可调整空间”,生成标准化目标(如“采购1000吨钢筋,约束:地铁级质量、20天达、预算≤400万”) | 基于大模型(如GPT-4、Gemini),通过提示工程引导模型识别约束(比如“从需求中提取材料类型、数量、时效、预算、质量标准”),结合行业数据库补充默认约束(如无质量标准则默认“项目所属行业国标”) |
| 规划器(Planner) | 基于标准化目标,生成“逻辑连贯、颗粒度合适”的子步骤计划,支持“并行/依赖步骤”标记(如“钢筋询价”和“消防设备询价”可并行,“签合同”依赖“询价对比”) | 用大模型+少样本示例(比如给“3个采购计划示例”),引导模型生成结构化计划(如JSON格式的子步骤清单,包含“步骤ID、名称、依赖步骤、执行工具、预期结果”) |
| 执行器(Executor) | 按计划顺序调用工具执行子步骤,支持“并行步骤同步执行”“依赖步骤串行执行”,记录每个步骤的实际结果 | 搭建工具调度中心,管理工具调用优先级(如“验收步骤”优先级高于“询价步骤”),用函数调用(Function Call)对接工具,返回结构化执行结果(如“询价结果:供应商A报价3800元/吨,交货期15天”) |
| 监控器(Monitor) | 对比“执行结果”与“计划预期结果”,识别偏差(如“报价3800元/吨>预算上限3700元/吨”“交货期15天≤预期20天”),标记偏差类型(预算偏差、时效偏差、质量偏差) | 设定偏差阈值(如预算偏差≥5%触发警报),用规则引擎+大模型判断偏差影响(如“预算超10%需重新规划,超3%可谈判”) |
| 修正器(Reviser) | 基于偏差类型,调整计划:① 轻微偏差(如报价超3%)→ 新增子步骤(如“与供应商谈判降价”);② 严重偏差(如无符合时效的供应商)→ 重新生成全局计划;③ 无法修正(如预算严重不足)→ 反馈用户 | 用大模型+行业规则,生成修正方案(如“新增谈判步骤,目标降价至3700元/吨以下,若谈判失败则二次筛选供应商”),修正后更新计划清单 |
7.2 第二步:设计 P&E 闭环执行流程(以“跨项目材料调度Agent”为例)
(1)初始化:明确目标与资源
- 目标:用户输入“将北京项目剩余的80吨钢筋、50吨水泥,20天内调度至天津滨海新区项目,总成本≤15万元,钢筋需符合HRB400E标准,水泥需符合P.O42.5标准”;
- 注册工具:库存盘点工具、供应商资质校验工具、物流报价工具、合规备案工具、运输跟踪工具、验收工具。
(2)闭环执行流程(可视化)

规划器生成的“子步骤计划”示例(JSON格式):
{ "plan_id": "20251107-TJ-BJ-001", "total_target": "北京→天津跨项目材料调度(80吨HRB400E钢筋+50吨P.O42.5水泥),20天达,成本≤15万", "sub_steps": [ { "step_id": 1, "name": "盘点北京项目材料", "tool": "库存盘点工具", "parameters": {"material_type": ["HRB400E钢筋", "P.O42.5水泥"], "project_id": "BJ-2025-01"}, "dependent_steps": [], "expected_result": "确认材料数量、规格、完好度" }, { "step_id": 2, "name": "校验材料合规性", "tool": "供应商资质校验工具", "parameters": {"material_type": ["HRB400E钢筋", "P.O42.5水泥"], "standard": ["国标GB/T 1499.2-2018", "国标GB 175-2007"]}, "dependent_steps": [1], "expected_result": "材料符合标准,可调度" }, { "step_id": 3, "name": "物流商询价对比", "tool": "物流报价工具", "parameters": {"from": "北京朝阳区", "to": "天津滨海新区", "weight": 130, "deadline": 20}, "dependent_steps": [2], "expected_result": "3家以上物流商报价,总成本≤15万" } // 后续步骤省略... ] }监控器识别偏差示例: “步骤3执行结果:2家物流商报价,分别为15.8万元、16.5万元,均超预算(15万元),偏差类型:预算偏差,偏差率:5.3%(轻微偏差)”
修正器调整计划示例: “新增步骤4:与报价15.8万元的物流商谈判,目标降价至15万元以下;若谈判失败,新增步骤5:筛选天津本地小型物流商补充报价”
(3)终止条件设计
- 成功终止:所有子步骤执行完成,满足核心目标(如“材料已送达天津项目,验收合格,总成本14.8万元,耗时18天”);
- 失败终止:多次修正后仍无法满足核心约束(如“所有物流商报价均超18万元,无法压缩至15万元内,且无替代物流方案”),反馈用户并提供备选建议(如“延长运输时间至30天,可降低成本至14.5万元”)。
7.3 第三步:优化 P&E 执行效率
P&E 框架的落地难点是规划太复杂、执行效率低、修正频繁,需通过以下技巧优化:
- ① 分层规划(Hierarchical Planning):把复杂计划拆分为 *主计划+子计划
- 比如“跨项目调度主计划”包含“库存盘点、物流规划、验收”3个主步骤
- 每个主步骤再拆子计划(如“物流规划”拆“询价、谈判、签约”),避免计划过于冗长;
- ② 计划压缩(Plan Compression):只保留关键步骤和约束条件,忽略细节(如无需在计划中写
打开物流工具→输入参数,只需写调用物流工具询价),减少大模型上下文压力; - ③ 动态资源分配:执行器支持并行步骤同步执行(如同时盘点钢筋和水泥库存),缩短整体周期;对关键步骤(如合规备案)分配更多资源(如优先调用工具、超时重试3次);
- ④ 少样本规划引导:在规划器的提示中,加入行业相关的规划示例(如“建筑材料调度的标准步骤清单”),让模型生成的计划更贴合业务实际,减少修正次数;
- ⑤ 偏差阈值动态调整:根据任务阶段调整偏差阈值(如前期询价阶段,预算偏差阈值设为10%;后期签约阶段,阈值设为3%),避免过度修正影响效率。
8. 总结
Plan-and-Execute 框架 是一种面向复杂任务的层次化推理与行动机制。
它通过“先规划、再执行”的解耦结构,使模型能够在全局视角下进行任务分解与多阶段执行,从而在可解释性、稳定性和任务规划性上优于 ReAct 等即时推理框架。
一句话总结:Plan-and-Execute 是让 AI Agent 从“即兴思考者”进化为“有计划的行动者”的关键框架。
最后再以一张图,来重温一下P&E
