问题
ReAct 式 Agent(想一步做一步)面对复杂任务容易局部最优:埋头执行了十步,才发现方向从一开始就错了——思考与行动耦合太紧,缺乏全局视野。
核心模式
规划-执行分离(Plan-and-Execute):先由规划器产出全局计划,执行器按步执行,必要时触发重规划。
# 1. 规划:一次生成全局步骤(可用强模型)
plan = planner.make(goal, available_tools)
# → ["调研现状", "设计 schema", "实现接口", "补充测试"]
# 2. 执行:逐步走(可用轻模型)
for step in plan:
result = executor.run(step, context)
board.update(step, result) # 第 07 讲的台账
# 3. 监控偏差:计划与现实漂移时重规划
if result.deviates_from(plan.expectation(step)):
plan = planner.replan(goal, board, plan.remaining())
相比 ReAct 的优势:全局计划先行,执行不易跑偏;规划用强模型、执行用轻模型,成本结构更优(呼应第 10 讲复杂度路由)。
实战要点
- 计划粒度以"一句话能验证完成与否"为准;"优化系统"不是计划项,"把列表接口 P99 降到 200ms"才是
- 重规划是常态而非异常:触发条件要明确(步骤失败/产出与预期不符/新信息出现),别让执行器偷偷改计划
- 计划要展示给用户确认(高风险任务必须):人对"计划"的审核成本远低于对"每步操作"的审核成本
- Manus、Devin 等产品都把这个模式作为骨架;Claude Code 的 plan mode 亦是同构设计