Plan-Then-Execute Pattern

Nikola Balic (@nibzard)· emerging

问题

如果工具输出能够改变后续动作的选择,那么注入的指令可能会将Agent引向恶意操作步骤。

方案

将推理拆分为两个阶段:

  1. 计划阶段 —— LLM在接触任何不可信数据之前,生成一个固定的工具调用序列。
  2. 执行阶段 —— 控制器执行这个完全固定的序列。工具输出可调整参数,但无法更改要运行的工具
plan = LLM.make_plan(prompt)      # 固定的调用列表
for call in plan:
    result = tools.run(call)
    stash(result)                 # 输出与规划器隔离

如何使用

非常适用于邮件和日历机器人、SQL助手、代码评审助手等场景——即动作集已知但参数存在变化的各类任务。

Claude Code 规划模式

Claude Code 借助「规划模式」实现该范式,此模式会将Agent切换至仅规划状态:

  1. 用户切换至规划模式:明确发起规划请求(例如在Claude Code CLI中按下shift+tab)
  2. Agent生成详细规划:制定分步执行方案但不实际执行
  3. 人工审核与确认:可在执行前调整规划方案
  4. 执行阶段:Agent严格遵循已确认的规划方案开展执行

成效:

  • 先对齐执行思路,可将复杂任务的成功率提升2-3倍
  • 避免因错误假设造成的无效工作
  • 可依托人类专业知识引导Agent执行

动态边界: 需要启动规划的任务阈值会随模型迭代发生变化:

“这一边界会随每一代模型产生惊人的变化。新一代模型的智能程度更高,因此需要用到规划模式的任务边界会有所拓展。过去必须规划才能完成的任务,现在无需规划即可处理。”——Boris Cherny(Anthropic)

这意味着,对于曾经需要规划的简单任务,使用能力更强的模型(如Sonnet 4.5与Opus 4.1)如今可通过one-shot方式完成。

权衡

  • 优点:控制流完整性强;灵活性适中。
  • 缺点:输出内容仍可能被污染(例如,生成恶意邮件正文)。

参考文献

关键词

聚焦大模型的“先规划后执行(Plan-Then-Execute)”策略,涵盖该策略对任务成功率的提升效果、其适用边界随模型迭代的演变,相关内容来自学术研究及Anthropic团队成员的播客分享。

\n\n

直译
  • Beurer-Kellner等人,第3.1节(2) 先规划后执行(Plan-Then-Execute)。
  • 鲍里斯·切尔尼(Anthropic公司):“规划模式……你必须了解它的局限性以及可能陷入循环的场景。如果先就规划达成共识,规划模式能轻松将成功率提升2-3倍。”
  • 鲍里斯·切尔尼:“(规划模式的适用)边界会随每个模型而变化……新一代模型更智能,因此需要使用规划模式的场景范围被扩大了。”
  • 《AI & I播客:如何像开发者那样使用Claude Code》 链接:https://every.to/podcast/transcript-how-to-use-claude-code-like-the-people-who-built-it

来源摘要

正在获取来源并生成中文摘要…

来源: https://arxiv.org/abs/2506.08837

← 返回社区