问题

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 亦是同构设计