Plan-and-Execute(规划与执行)
Plan-and-Execute 是一种 Agent Loop(智能体循环) 架构模式,核心思想是将 Agent 工作分为两个分离的阶段:规划(Planning) 阶段先由规划器生成完整的任务分解,执行(Execution) 阶段再由执行器逐步或并行完成各子步骤。
与 ReAct 的边推理边执行不同,Plan-and-Execute 在任何工具调用发生之前就完成整体计划——这使独立的子任务可以并行化,而不是被迫顺序等待。通过并行执行独立步骤,可实现数倍的任务完成速度提升。
与 ReAct 的区别
| 维度 | ReAct | Plan-and-Execute |
|---|---|---|
| 规划时机 | 每步推理后决定下一步 | 执行前先完成整体规划 |
| 执行方式 | 顺序,每步等上步结果 | 独立子步骤可并行执行 |
| 适应中间结果 | 灵活,可随时调整计划 | 有限,计划生成后较难动态改变 |
| 适合任务 | 依赖中间结果的探索型任务 | 步骤相对独立的并行型任务 |
为何重要
并行化潜力是 Plan-and-Execute 的核心价值。纯顺序的 Agent 循环中,即使某些子任务互不依赖,也必须一一等待;Plan-and-Execute 通过提前规划识别出可并行的步骤,让多个执行器同步工作。这在以下场景中有明显效率优势:
- 分析型任务:同时搜索多个不相关数据源
- 代码生成:同时开发多个独立模块
- 报告生成:并行收集不同维度的资料
局限性
- 规划质量决定执行上限:规划器在没有执行证据的情况下做出完整分解,对需要探索的任务容易规划出错误路径
- 执行反馈难以回流规划:若某步执行发现计划前提有误,整个计划可能需要推翻重来
- 上下文压力:完整计划 + 各步执行结果快速填满上下文,需要配合 Context Engineering(上下文工程) 管理
Claude Code Plan Mode:Explore-Plan-Implement-Commit
Claude Code 将 Plan-and-Execute 实现为一个四阶段交互工作流,并在规划前加入显式的 Explore 阶段——解决了经典 Plan-and-Execute 的主要局限:在未充分理解代码库的情况下直接生成计划,容易规划出错误路径。
flowchart LR
E[Explore\n读文件理解结构\n不做修改] --> P[Plan\n生成实现计划\n人工可审改]
P --> I[Implement\n切出规划模式\n编码并验证]
I --> C[Commit\n提交并创建 PR]
Explore:进入 Plan Mode,Claude 读文件、回答问题,不做任何修改。让 Claude 先摸清结构,再产出计划。
Plan:要求 Claude 生成详细实现计划,说明需要改动哪些文件、流程如何走。Ctrl+G 可将计划在文本编辑器里直接编辑,是整个工作流最重要的人工审查节点——此时改计划成本最低。
Implement:切出 Plan Mode,让 Claude 按计划编码,同时验证(运行测试/lint/构建),对照计划收敛。
Commit:提交并附上描述性 commit message,开 PR。
何时值得规划:能用一句话描述 diff 的任务(改错别字、加日志行、重命名变量)不需要规划;修改多个文件、方法不确定、不熟悉代码时,规划价值最大。规划既有效果也有开销——不要为了规划而规划。
Codex PLANS.md:把计划变成活文档
OpenAI Cookbook 的 PLANS.md 做法,是 Plan-and-Execute 在 Codex 长任务中的一种文档化变体。它通过 AGENTS.md 定义一个项目内 shorthand,例如 ExecPlan,说明复杂功能或重大重构要使用这种计划文档;再用 PLANS.md 规定计划文档的格式与维护规则。这里的 ExecPlan 只是示例中的任意叫法,不应被当成独立行业术语。
与普通 Plan-and-Execute 相比,PLANS.md 约束下的计划不只要求“执行前先规划”,还要求计划在执行中持续更新。Progress 记录当前完成状态,Surprises & Discoveries 记录意外发现,Decision Log 记录关键取舍,Outcomes & Retrospective 记录阶段结果。这样,即使任务持续数小时、上下文被压缩、执行者换手,后续 Agent 仍能从计划本身恢复目标、约束和验证路径。
这种做法也修正了经典 Plan-and-Execute 的一个弱点:计划一旦写完就僵化。它要求计划保持自包含且可修改,允许在原型验证、源码阅读或测试反馈后调整路线,并把改变原因写回文档。这让规划阶段不再是一次性猜测,而是一个可审查的状态容器。
现代工程化形态
Plan-and-Execute 的思路在 Loop Engineering(循环工程) 中以工程化方式延续:规划器生成任务分解后,多个执行 Agent 在独立的 Agent Worktree(Agent 工作树) 中并行完成各自子任务,最终合并审查。Dynamic Workflows(动态工作流) 把这一模式进一步产品化——编排脚本(workflow script)承担规划器角色,Runtime 调度多个 subagent 并行执行、记录状态、验证结果。
在循环演进中的位置
Plan-and-Execute 属于第二代(Gen 2,2022–2023)Agent Loop(智能体循环) 架构,与 ReAct、Reflexion(反思) 同属这一代的代表性模式。三者各自探索提升多步 Agent 循环质量的不同路径:ReAct 引入显式推理轨迹,Reflexion 引入跨轮自我校正,Plan-and-Execute 引入执行并行化。
相关概念
- Agentic System Patterns(智能体设计模式) — 包含 Plan-and-Execute 演化出的 Orchestrator-Workers 模式的五种工作流总览
- ReAct — 同代的边推理边执行模式,无预规划
- Reflexion(反思) — 同代的另一种模式,关注自我校正而非并行化
- Agent Loop(智能体循环) — Plan-and-Execute 是 Agent Loop 的一种分阶段实现架构
- Loop Engineering(循环工程) — Worktree + Sub-agent 并行编排是 Plan-and-Execute 的现代工程化形态
- Agent Worktree(Agent 工作树) — 为并行执行的子任务提供文件系统隔离
- Dynamic Workflows(动态工作流) — 把规划生成为可复跑的编排脚本,执行器并行调度
- Context Engineering(上下文工程) — 管理规划 + 多步执行带来的上下文扩张
- Claude Code — 实现了 Explore-Plan-Implement-Commit 四阶段工作流的 Plan Mode