它是什么
Agent 规划是运行时决定下一步做什么的那一环:给定目标、可用工具和当前已得到的结果,选出一个动作,执行,看结果,再选下一个。[S1]
关键的限定词是「运行时」。写在代码里的步骤顺序不是规划——那是编排;规划指的是每一步的输入在执行前还不确定,必须等上一步的结果出来才知道怎么走。这也意味着规划天然带有一个别人没有的责任:它可能走进你没写过的分支。
为什么需要它
因为有一类任务没法事先枚举路径:排查一个线上问题、调研一个还不清楚的市场、把一个模糊需求变成方案。这些任务的共同点是「第二步取决于第一步发现了什么」,硬写成固定流程只会得到一张巨大的分支表。
规划带来的收益与代价是同一件事的两面。收益是它能在情况变化时改道;代价是它无法被逐段测试——你测得了每一步,测不了「它会选择哪些步骤组合」。所以规划设计的重点从来不是「怎么让它更聪明」,而是怎么给它的自由划边界。
如果没有边界,规划会把错误连续化:第一步判断偏了,第二步基于偏了的结论继续走,第三步在此基础上做出一个不可撤回的动作。单步错误的概率没变,但错误的后果被串起来了。[S2]
它如何工作
一个能上线的规划环路通常包含四件事,缺一不可:
- 目标与约束的显式表达:目标是什么、哪些动作绝对不能做、以什么形式算完成。约束不是写在文档里给人看的,要作为规划器能读到的输入。
- 动作空间:可用工具有哪些、每个工具的权限范围是什么。给模型十个工具,等于把十个副作用都变成了它的选项。
- 状态与反馈:上一步的结果、失败原因、已经试过什么。没有这层,规划会重复试同一个注定失败的动作。
- 停止条件:什么算完成、最多走几步、连续失败几次就退出。这是规划与「一直转下去」的唯一分界。
常见结构调整有两种:先规划后执行(一次生成完整步骤序列再逐步执行,好处是可审阅,坏处是计划一旦过时就要重来);边做边规划(每一步都重新决定,好处是适应性强,坏处是缺少全局视图、容易绕圈)。实践中多数系统是两者的混合:先出一个粗计划,在关键分支处重新规划。
必须澄清的误会
Agent 规划 ≠ 工作流自动化。 差别在「谁决定下一步」和「什么时候决定」。工作流在开发期把路径写死在代码里,运行时不会变;规划在运行时按当前状态选下一步,所以同一个任务两次运行走的路径可能不同。这条差别直接决定了两者的工程代价:工作流可以逐段测试、可以算出最坏耗时;规划要靠预算、步数上限和日志来约束,因为它没有一张可穷举的路径表。
Agent 规划 ≠ 把任务拆成子任务。 拆解是产出(得到一个步骤列表),规划是过程(在运行中决定走哪一步、什么时候换路)。先拆再问「谁来执行这个拆解结果」,答案往往还是规划。
规划也不等于人在回路。 规划决定「下一步做什么」,人在回路决定「这一步要不要人批」。两者是配合关系而不是替代关系:高风险动作即使被规划正确地排进了计划,也仍然应该在执行前停下来等人确认。反过来,不要指望用「让模型多想想」替代审批环节。
最后一个常见误解:规划得越细越好。 过细的计划在第一个意外出现时就整份作废,而且会掩盖真正的决策点。好的计划是计划到下一步,而不是计划到终点。
真实例子
一个「排查线上问题」的 Agent,其规划边界可以这样写:最多执行 8 步;只允许只读工具(查日志、查监控、查配置),不允许任何写操作;同一类查询连续失败 2 次即停止并输出已排除的假设;只要结论涉及「修改生产配置」,必须停下来交给人——即使它很有把握。[S1][S2]
一次典型运行是:查错误率 → 发现集中在某个接口 → 查该接口的依赖健康度 → 发现某个下游延迟升高 → 输出「怀疑下游超时导致重试放大」并附上证据链。这里值得注意的不是它多聪明,而是它在第 4 步就停了——因为规则要求「结论涉及变更时停」,而不是因为它查不出下一步。
什么时候适合与不适合
适合:目标明确但路径不明、需要跨多个系统反复试错、探索成本低而错误后果可控。这类任务里,规划的价值在于它能在你没预想到的分支上继续推进。
不适合:步骤可枚举、输入分布稳定、结果有客观检查方式。这类任务用工作流自动化更便宜也更稳——它的路径能逐段测试,规划不能。硬上规划会把一个可测的系统变成一个只能靠日志观察的系统。
绕圈与越权是两种性质不同的失败,要分开防。 一种是绕圈:反复尝试同一个无效动作,因为没有记住「已试过什么」。另一种是越权:计划本身合理,但某一步的动作超出了应该有的权限——这一条只能靠工具侧的权限设计防,不能靠提示词里写「不要删数据」。前者用状态与失败计数解决,后者用最小授权解决。
亲自试一下
挑一个你手上的多步任务,用约 30 分钟写出它的规划边界(不是写出它的步骤):
- 最多几步:写下步数上限,并说明为什么是这个数。
- 失败了怎么办:哪些失败可重试、重试几次、哪些失败直接停止。
- 什么条件下必须停下来找人:列出两类——一类是动作不可撤回,一类是两次拿到互相矛盾的证据。
- 不允许做什么:明确列出禁用的动作与工具。
写完后对照你自己过去处理这类任务的过程:你实际在第几步做出了关键判断? 如果你的规则会让它在那一步之前就停下,说明上限设得太紧;如果它可以从头跑到尾而无需任何人工介入,说明这个任务大概不需要「规划」,它更适合写成工作流。
接下来学什么
规划是这一站(给手脚)里负责「下一步」的那一环。它需要两个邻居配合:工具调用 提供可选动作,Agent 记忆 提供「之前发生过什么」。三者缺一,规划就只能凭当前这一轮的信息猜。
如果你还在纠结「这个任务该用规划还是该写死流程」,先看 工作流自动化 与 Agent 工作流 的分界(给流程)——判据是「步骤能不能事先枚举」。如果你担心的是「它会自己做出不该做的动作」,直接跳到 给安全:人在回路 与 AI 护栏 讲的正是那层边界。
来源与修订
把「模型自主决定自身流程」作为 Agent 与固定工作流的核心区别,来自 Anthropic 的 Building Effective Agents;对自主系统需要预算、停止条件与人工介入的判断,参考 Trustworthy Agents in Practice。[S1][S2]
需要说明一处边界:「步数上限、失败计数、必须停下来的两类条件、禁用动作清单」这四条是本站在落地时总结的操作性要求,不是上述来源的原文。来源给出的是架构选择与风险原则,不会规定你的系统该设 5 步还是 8 步——这类阈值必须由你的场景和后果决定。
2026-09-21 按决策页规范重写,本次修订补入停止条件与禁用动作清单:原版本解释了规划是什么,却没有回答「它什么时候必须停下来」。
Case practice
这个概念出现在哪些案例里
案例中的这些关卡会把概念放进业务约束、证据与取舍里练一遍。
Learning navigation
学习导航
沿认知链路:你现在在第 4 站,下一站是「给接口 · 怎么标准化地接系统」:先沿主路径补上这一层。
Relation topology
拓扑图谱网络 · 一度关联场
可拖拽节点、滚轮缩放、点击节点探索Agent 规划的一层关系
5 个节点 · 6 条直接关系
交互图谱之外,本页下方保留完整文字关系与词条链接。
Source register
核验来源
- Building Effective AgentsAnthropic · 访问于 2026-09-21
- Trustworthy Agents in PracticeAnthropic · 访问于 2026-09-21
发布 2026-08-20 · 更新 2026-09-21 · 核验 2026-09-21