04.Agent思考框架-Plan-and-Execute

一灰灰blogAgentAgentPlan-and-Execute约 4470 字大约 15 分钟

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 子系统

在该框架中,模型被划分为两个协作子系统:

  1. Planner(规划器) —— 负责全局任务分解与阶段性目标设定;
  2. Executor(执行器) —— 负责逐步执行具体步骤,并根据反馈调整局部行为。

相比 ReAct 的“边想边做”模式,Plan-and-Execute 更接近人类在处理复杂任务时的思维方式:

2.3 示例说明

还是以上一篇ReAct中的示例进行扩展说明:完成 “建筑项目跨区域材料调度”(目标:把北京项目的剩余 100 吨钢材,5 天内运到天津项目,预算 10 万元)

对于P&E框架,其执行步骤如下:

  1. 先规划(Plan):拆分子步骤→
    • ① 确认北京项目钢材库存及规格;
    • ② 联系合规物流商报价;
    • ③ 对比物流方案(成本、时效);
    • ④ 办理材料运输备案;
    • ⑤ 安排装车运输;
    • ⑥ 天津项目验收;
  2. 再执行(Execute):按步骤逐一落地,比如先调用 “库存工具” 确认钢材,再调用 “物流商工具” 报价;
  3. 动态调整:若执行中发现 “某物流商报价超预算”,则回到规划环节,补充 “筛选低价物流商” 子步骤,修正后继续执行。

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

Loading...