前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库Plan-and-Execute vs ReAct agent 规划
AIAI Agent任务规划

Plan-and-Execute 架构与 ReAct 循环在任务规划上有什么本质区别?

Plan-and-Execute 先一次性生成完整计划再逐步执行,ReAct 每步推理后再行动;本质区别在于规划发生的时机与重规划成本。

前端进阶之旅 · 一题精讲更新于 2026.09.05
AI Agent#任务规划
先看核心答案
理解线索

规划时机与反馈成本

  1. 规划时机先出全计划再执行,还是每步现想现做
  2. 重规划成本前者整批返工,后者天然每步可纠偏
  3. 上下文压力ReAct 长轨迹膨胀,前者步骤列表可压缩

判断边界:步骤数与工具序列能否在执行前被可靠预测。

核心回答

先记住这个答案

两者本质区别在于规划与执行的耦合方式。Plan-and-Execute 由 planner 先生成完整步骤序列,executor 依次执行,环境变化靠显式 replan 修正,优点是步骤可校验、token 消耗集中在规划期,代价是初始计划失效时整批返工。ReAct 每步都先思考再调用工具、观察结果,天然适应环境反馈,但长任务上每步都消耗一次 LLM 调用,且容易因局部观察而漂移。选型看任务的可预测性:步骤可预先穷举用前者,路径不可预知用后者。

  • 区别在规划时机:一次性还是每步
  • 长任务 ReAct 贵在每步一次 LLM 调用
  • 环境不可预知选 ReAct,步骤可穷举选先规划

先规划后执行与边推理边行动的机制差异

Plan-and-Execute 把任务拆成两个阶段:planner 基于目标一次性产出有序步骤列表,executor 逐个调用工具执行,遇到与预期不符的结果才触发 replanner 重新生成剩余计划。规划集中在一次或少数几次 LLM 调用中,步骤可被静态校验、并行化或插入审批门控。ReAct 则把规划摊到每一步:模型交替输出 thought、action、observation,下一步完全由上一步的真实反馈决定。

代价差异在长任务上被放大。假设任务要 50 步、每步需一次工具调用:ReAct 需要约 50 次携带全部历史轨迹的 LLM 调用,上下文线性膨胀且单步推理可能被局部观察带偏;Plan-and-Execute 可能只需 1 次规划加 50 次轻量执行,但初始计划若有 20% 步骤基于错误假设,返工的是整段剩余计划而非一步。前者把钱花在规划和返工上,后者把钱花在每步推理上。

批量数据迁移与故障现场排查的对照

场景一:把 12 张表从旧库迁到新库,要求逐表导出、转换、导入、校验行数。步骤在执行前即可穷举,工具序列固定,用 Plan-and-Execute:planner 生成 48 步计划并静态校验表名存在,executor 顺序执行,第 30 步行数校验不通过时只对失败表局部重规划。结果是 1 次规划调用加 2 次局部 replan,总 LLM 开销远低于每步推理。

场景二:排查线上偶发超时,可能涉及日志、指标、链路追踪、配置-diff,下一步查什么完全取决于上一步看到什么。ReAct 更合适:观察到 p99 在网关层已升高就转向网关日志,而不是按预设顺序查应用层。若强行先规划,初始计划大概率在第 3 步就整体作废。这个对照说明选型取决于下一步行动能否被预先确定。

两种模式各自失效的条件与对策

Plan-and-Execute 在环境信息不完整、步骤间依赖需执行中才能发现时系统性失效:planner 会虚构不存在的接口或假设中间数据格式,导致计划从第几步起整体失真。对策是限制规划深度,只规划已知阶段,留出显式的 replan 触发信号如校验失败率、工具报错次数,代价是丧失一部分预先校验能力。

ReAct 在长任务上的失效方式是目标漂移与轨迹膨胀:模型被局部观察吸引,逐步偏离原始目标,且几十步后上下文溢出被迫截断历史。对策包括周期性把当前状态与原始目标做对齐检查、用摘要压缩早期轨迹、设最大步数硬终止。混合做法也常见:高层用 planner 定阶段,阶段内用 ReAct 处理局部不确定性,用规划换可控、用循环换适应。

回答前,多想一步

容易答错的地方

认为 ReAct 不需要规划所以更简单省钱
ReAct 省去了显式 planner,但每一步都是一次带全部历史的 LLM 推理,长任务总 token 消耗常高于一次性规划,且需要额外的目标对齐与终止机制防止漂移和死循环。
认为 Plan-and-Execute 生成计划后就一成不变
实用的 Plan-and-Execute 必须配 replanner:执行结果与计划预期不符时重新生成剩余步骤。区别只在重规划是显式触发的批量修正,而非 ReAct 那样每步隐式进行。
试着用自己的话回答

面试官还会怎么问?

两种模式可以混合使用吗?

可以且常见:高层用 planner 把目标拆成阶段,每个阶段内部用 ReAct 循环应对局部不确定性,阶段边界做检查点与目标对齐。代价是要设计阶段粒度,太细则退回纯 ReAct,太粗则丧失适应性。

长任务上怎么量化两者的成本差异?

用每步平均 prompt token 乘以调用次数估算。ReAct 的历史轨迹随步数线性增长,第 n 步成本约正比于 n;Plan-and-Execute 规划成本近似常数,但要计入 replan 次数乘以剩余步骤的重新生成开销。

计划失效时 replan 应该改多少?

倾向只重规划受影响的子计划,保留已完成且结果仍有间接影响的步骤;但若失效源于初始假设错误,局部修补可能只是把错误往后推,应基于失败信号判断是局部修补还是整体推翻。

从一道题,走向一组知识

把知识连起来

任务规划

什么情况下不该给 Agent 加显式任务规划模块?

同属「任务规划」专题,接着看 LLM agent 何时不需要规划模块 在具体场景中的处理方式。

任务规划

执行中才发现的新依赖如何并入已有计划?

同属「任务规划」专题,接着看 agent 执行中 动态依赖 计划更新 在具体场景中的处理方式。

参考资料

  • Building effective agents

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 先规划后执行与边推理边行动的机制差异
  3. 批量数据迁移与故障现场排查的对照
  4. 两种模式各自失效的条件与对策
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑