Agent Planning:从漂亮计划到可验证的重规划
一段条理清晰的计划文本并不等于 agent 会规划。真正的计划要在不完整观察、硬约束、工具失败、权限限制、资源预算和环境变化下持续更新,并最终由独立终态而不是 agent 的解释来验收。Planning 的研究对象不是“计划看起来合理”,而是一个能被环境反驳、能安全重规划、也能在不可行时正确停止的控制过程。
plausible plan != executable plan != adaptive replanning != verified completion。计划、执行、调度、委托和终态验收必须分别测量;否则一个高 pass rate 无法告诉我们瓶颈究竟在哪里。
1. 先把五个对象拆开
| 对象 | 它要回答的问题 | 可成立的最窄结论 | 不能据此推出 |
|---|---|---|---|
| Plan | 在当前 state 下,哪些子目标、依赖、约束与停止条件应成立? | 计划结构可被检查 | 计划一定可执行或会成功 |
| Execution | 一个受授权的 action 是否发生并产生预期观察? | 该动作/工具调用返回了指定结果 | 后端 postcondition、全局约束或用户目标已满足 |
| Replanning | 新观察、失败或约束改变后,是否应继续、替换、回滚、升级或停止? | 一个更新策略可在指定分布中测量 | agent 在所有突发环境里都有鲁棒恢复 |
| Orchestration / scheduling | 工作如何拆给 worker、工具或 GPU,并在何时合并? | 某个编排/资源策略有特定成本与时延效果 | 它提升了 policy 的规划能力或终态正确性 |
| Acceptance | 独立 verifier 是否确认最终业务、物理或研究后置条件? | 当前终态已通过指定检查 | 过程、计划或隐藏副作用全部正确 |
Agent Planning Benchmark (APB) 正是从这个缺口出发:它把 holistic planning、feedback-conditioned step-wise planning、干扰/损坏工具和不可解任务分开,作为 end-to-end execution benchmark 的上游诊断。APB 的结论限于自己的任务和模型,但它支持一个必要规则:不能把“最终失败”自动归因于计划,也不能把“计划文本好”自动归因于执行能力。
2. 一个可执行的 plan contract
把 plan 写成聊天里的一段自然语言,会丢掉执行、比较和恢复所需的边界。一个最小 plan version 应保留:
GoalSpec = target_postcondition, hard_constraints, soft_preferences, budget, authority
PlanVersion = parent, state_digest, assumptions, subgoals, dependencies, stop_conditions
PlanStep = precondition, authorized_action, expected_observation, expected_cost, recovery_boundary
Observation = source, timestamp, provenance, state_delta | uncertainty | tool_failure
ReplanEvent = trigger, invalidated_steps, alternatives, chosen_action, budget_delta, rationale
Acceptance = independent_postcondition, evidence_digest, verifier_version, outcome
这不是要求每个 agent 都输出冗长 JSON,而是要求 harness 能在外部保存等价信息。它带来六个可审计问题:
- 目标是否可验收? 目标应指向可检查的 postcondition,而不只是“完成研究”或“处理请求”。
- 约束是否显式? 时间、成本、权限、不可逆 action、隐私和 policy 应是 hard/soft constraint,而非可被遗漏的文案。
- 每步为什么允许? precondition、authority 和 expected observation 防止用一个看似相关的工具调用遮盖越权或无效动作。
- 何时重规划? 失败、无信号、状态漂移、冲突写入、预算变化和不确定性都应是明确 trigger。
- 重规划影响什么? 记录 invalidated steps,避免重做已提交副作用,或把已失败分支当成当前事实。
- 何时拒绝或停止? 不可行、缺少关键信息、权限不足或预算已耗尽时,refusal/safe stop 是正确 outcome,而不是低分轨迹。
3. 计划必须面对全局约束、隐藏工具与真实失败
DeepPlanning 的任务要求主动收集信息、满足局部约束,并在时间/财务等全局约束下优化。它提醒我们:逐步看似合理的 action 序列仍可能违反整体可行性。
PlanBench-XL 将大型工具生态、受限工具可见性、隐含子目标和可选的缺失/失败/干扰工具放在同一交互 benchmark 中。它说明“已知固定工具列表上的计划”与“需要发现工具、根据返回证据再决定下一步的计划”是不同难度。尤其是无明确错误信号的失败,不能靠一次 tool-call success 判断。
| 场景 | 计划器应做什么 | verifier 应检查什么 |
|---|---|---|
| 信息不完整 | 识别缺口并选择成本/权限合适的 observation action | 是否查询了与目标有关且允许的证据,而非编造前提 |
| 全局预算冲突 | 比较备选路径与总时间/钱/token/风险 | 局部成功是否偷偷超出全局 hard constraint |
| 工具返回明确错误 | 定位受影响 subgoal,选择替代、回滚、升级或停止 | 是否无界重试、重复副作用或跳过失败 |
| 工具静默失效 | 以 postcondition 或后续观测检测计划失配 | “调用成功”是否被错误当作“状态已改变” |
| 不可解任务 | 说明阻塞证据,正确拒绝或请求授权/信息 | 是否把不可能任务包装为虚假完成 |
| 环境漂移 | 比对 state digest,作局部而非全局重规划 | 是否保留已验证/已提交部分并标注失效假设 |
这也解释了为什么 browser、terminal、科学研究和跨应用 API task 需要不同 verifier。对于 AutomationBench 这类跨应用 REST workflow,计划还包括 endpoint discovery、层叠业务 policy 与正确数据写入;论文采用 programmatic end-state grading。它是后端终态如何约束计划的好例子,而不是对任意 UI、浏览器环境或现实业务的泛化证明。
4. Replanning 是受控变更,不是无限 retry
高质量重规划不应把所有失败都变成“再试一次”。每个 ReplanEvent 应说明:什么 observation 触发了它、哪些假设或步骤失效、什么 artifact/状态受影响、是否存在不可逆 effect、可用预算还剩多少,以及新计划如何被独立检查。
| 恢复动作 | 何时合适 | 它必须避免 |
|---|---|---|
| Retry | 暂态、幂等且已明确的失败,仍有预算 | 把永久失败或已提交动作重做 |
| Substitute | 存在等价且权限匹配的工具/路径 | 为成功而扩大 authority 或绕过 policy |
| Rollback | 系统支持可验证的回退边界 | 假装外部副作用已撤销,或丢掉审计证据 |
| Delegate / escalate | 子问题和权限边界清楚,或需要人/更高权限判断 | 不受控地复制上下文、凭据或写权限 |
| Refuse / safe stop | 任务不可解、信息不足、风险过高或预算耗尽 | 编造完成、沉默地超支或绕过审批 |
把这些作为显式 action,才能测量恢复质量:replan_trigger_precision、invalidated_step_accuracy、duplicate_side_effect、recovery_cost、safe_stop 和 verified_success_after_replan。对长程场景,重规划与Agent Memory中的 checkpoint/branch contract 相连:计划版本和环境状态必须被一起恢复,聊天摘要本身不足以承担这个角色。
5. 多 Agent、harness edit 与 GPU scheduling 不等于 planning
ClawArena-Team 专门考察一个 leader 管理固定 subagent pool 的能力,并把 task correctness 与 least-privilege/modality routing 联合评分。它把“能否管理团队”从 worker 自身解题能力中剥离出来,说明 delegation 计划需要独立的权限、成本和最终结果度量。
Agentic Harness Engineering (AHE) 将 harness 的可编辑组件、轨迹经验和每次 edit 的预测/后续验证做成可观察对象。在它自己的 coding-agent 设定中,这种 edit-to-outcome 关联可作为 harness evolution 的受控形式。它不表示任意自改 harness 或自动 workflow search 都是 RSI;evaluator、权限和 held-out acceptance 仍必须在候选外部。
SAGA 则处理另一层问题:将完整 agent workflow 作为 GPU scheduling 单位以改进任务完成时延。它是部署系统中的资源调度研究,不是 policy 规划证据。一个系统更快地执行相同 workflow,仍需单独检查该 workflow 是否选择了正确的工具、满足约束并达到终态。
model + planner + harness + tool/authority policy + environment + scheduler + evaluator + budget。删除任何一项,读者就无法分辨计划质量、资源调度、并行 worker 或 verifier 变化到底贡献了什么。
6. 一套能够推翻“会规划”的评测矩阵
在同一 base model、tool policy、action authority、环境初态、总 token/wall-clock/worker budget 和 hidden verifier 下,至少比较:
| 对照 | 它隔离的变量 | 需要报告 |
|---|---|---|
| reactive loop vs explicit plan | 是否显式维护目标、依赖和停止条件 | verified outcome、遗漏约束、计划成本、方差 |
| static plan vs feedback-conditioned replanning | 是否用观察更新有效计划 | recovery、stale-plan error、duplicate side effect、safe stop |
| fixed tools vs discovery-limited tools | 是否能用证据选择和替换工具 | discovery precision、无效调用、tool-noise robustness |
| no global ledger vs constrained plan | 是否守住总预算/policy/不可逆约束 | hard-constraint violation、成本、局部/终态差距 |
| single agent vs delegation | team management 在同预算下是否净收益 | verified success、worker-hours、重复工作、权限/merge 违规 |
| outcome-only vs process diagnostics | 计划分数是否真正预测终态与安全 | plan/outcome gap、false acceptance、calibration |
最小反例集应含:正确 endpoint 但错误 payload;成功返回但没有 commit;缺失或静默失败的工具;旧 state/过期 observation;不可解任务;预算冲突;延迟返回的 subagent;以及 agent 能提高过程分数却不能通过 hidden postcondition 的轨迹。这样“计划分数上升”就必须同时面对执行、完整性和终态的反驳。
7. 合成实例与 Agentic RL:训练重规划,不泄漏评测
合成实例不能只提供一条成功 plan。一个可训练的 planning instance 至少要有初态/可见性边界、目标与 hard constraint、候选工具与权限、可执行 transition、扰动/失败分支、替代路径、拒绝条件以及独立 verifier。训练轨迹可以记录何时提出、修订或放弃计划,但不得包含 final evaluator、hidden postcondition、成功评测轨迹或唯一答案模板。
建议在相同 action surface 上比较 SFT-only、RL-only 和 SFT+RL,并按 environment、workflow/rule、tool schema/generator family、failure/security family 分割最终任务。reward 应把 verified_outcome、hard-constraint violation、integrity violation、recovery cost 和正确 refusal 分开;不能让一个被 planner 或 agent 可写的 scalar 决定所有结论。详见合成实例与 Agent 训练和Agentic RL。
8. 回到五条核心研究线
| 核心线 | Planning 应新增的可测对象 | 不能替代什么 |
|---|---|---|
| RSI / OpenRSI | versioned plan/harness edit、prediction、held-out replan regression | 独立 acceptance 和跨代改进改进者的证据 |
| Auto Research / ART | research question、假设、控制、成本、证据缺口和停止条件的计划谱系 | 新颖性、因果有效性、复现和同行检验 |
| Long horizon | global constraint、checkpoint、plan revision、recovery/safe stop | 长 context 或更长 timeout 本身 |
| ClawBench V2 / WebsiteBench | tool discovery、least privilege、后端 postcondition、UI/backend mismatch replan | click trace、endpoint 到达或 agent final text |
| Synthetic training / Agentic RL | stateful plan/replan instances、failure branches、split-isolated transfer | 一批成功示例或高 development reward |
这篇文章的结论很克制:plan 是可检查的中间工件,不是能力宣言。只有当它在变化状态、受限工具、真实失败、全局约束和独立 verifier 下仍能安全地更新、拒绝或完成时,才值得把“agent 会规划”写成一个工程结论。运行时的权限、轨迹、预算和 evaluator 设计见Harness Engineering;两者共同构成可问责的 agent loop。
Primary References
- Agent Planning Benchmark, DeepPlanning, and PlanBench-XL (preprints; diagnostic planning, verifiable global constraints, and large tool ecosystems).
- AutomationBench and ClawArena-Team (preprints; programmatic cross-application end states and subagent management).
- Agentic Harness Engineering and SAGA (preprints; harness-edit observability and workflow-level scheduling, not generic planning guarantees).
- Companion guides: harness engineering, long-horizon agents, agent memory, world models and environments, and RSI.
Agent Planning: From Plausible Plans to Verifiable Replanning
A clear, orderly plan in text does not mean an agent can plan. A real plan must keep updating under partial observations, hard constraints, tool failures, authority limits, resource budgets, and environment changes, then be accepted by an independent terminal state rather than the agent's explanation. The research object is not “a plan that sounds reasonable,” but a control process that an environment can refute, that can replan safely, and that correctly stops when work is infeasible.
plausible plan != executable plan != adaptive replanning != verified completion. Plan, execution, scheduling, delegation, and terminal acceptance need separate measurement; otherwise a pass rate cannot locate the bottleneck.
1. Separate Five Objects First
| Object | Question it answers | Narrow conclusion it can support | What it cannot establish |
|---|---|---|---|
| Plan | Which subgoals, dependencies, constraints, and stopping conditions should hold in the present state? | Plan structure can be inspected | The plan is executable or will succeed |
| Execution | Did an authorized action occur and produce its expected observation? | The action/tool call returned the specified result | Backend postcondition, global constraint, or user goal holds |
| Replanning | After an observation, failure, or changed constraint, should work continue, substitute, roll back, escalate, or stop? | An update policy can be measured on a stated distribution | The agent recovers robustly in every surprise environment |
| Orchestration / scheduling | How is work divided among workers, tools, or GPUs and merged? | A stated orchestration/resource policy has a cost and latency effect | It improves policy planning or terminal correctness |
| Acceptance | Does an independent verifier confirm the final business, physical, or research postcondition? | The current terminal state passed a specified check | Process, plan, and all hidden side effects were correct |
Agent Planning Benchmark (APB) starts from this gap. It separates holistic planning, feedback-conditioned step-wise planning, distracting/broken tools, and unsolvable tasks as upstream diagnostics for end-to-end execution benchmarks. Its evidence is scoped to its tasks and models, but it supports a necessary rule: do not assign final failure automatically to planning, or a good-looking plan automatically to execution ability.
2. A Contract for an Executable Plan
A natural-language plan in chat drops boundaries needed for execution, comparison, and recovery. A minimal plan version should retain:
GoalSpec = target_postcondition, hard_constraints, soft_preferences, budget, authority
PlanVersion = parent, state_digest, assumptions, subgoals, dependencies, stop_conditions
PlanStep = precondition, authorized_action, expected_observation, expected_cost, recovery_boundary
Observation = source, timestamp, provenance, state_delta | uncertainty | tool_failure
ReplanEvent = trigger, invalidated_steps, alternatives, chosen_action, budget_delta, rationale
Acceptance = independent_postcondition, evidence_digest, verifier_version, outcome
This does not require every agent to emit verbose JSON. It requires the harness to preserve equivalent information externally. It creates six auditable questions:
- Is the goal acceptable? A goal points to a checkable postcondition, not merely “finish the research” or “handle the request.”
- Are constraints explicit? Time, cost, authority, irreversible actions, privacy, and policy are hard or soft constraints, not prose that can disappear.
- Why is each step allowed? Preconditions, authority, and expected observations prevent a vaguely related tool call from concealing an unauthorized or ineffective action.
- When should replanning occur? Failure, absent signal, state drift, concurrent conflict, budget change, and uncertainty are explicit triggers.
- What does replanning affect? Record invalidated steps to avoid repeating committed side effects or treating a failed branch as current fact.
- When should the system refuse or stop? Infeasibility, missing critical information, insufficient authority, or exhausted budget make refusal/safe stop correct outcomes, not low-scoring trajectories.
3. A Plan Must Face Global Constraints, Hidden Tools, and Real Failure
DeepPlanning requires active information gathering, local constraints, and optimization under global constraints such as time and money. It shows why a sequence of locally plausible actions can still violate overall feasibility.
PlanBench-XL combines a large tool ecosystem, limited tool visibility, implicit subgoals, and optional missing, broken, or distracting tools. It distinguishes planning over a known fixed tool list from planning that must discover tools and use returned evidence to choose the next step. Failures without explicit error signals especially cannot be judged by one successful tool-call response.
| Situation | What the planner should do | What the verifier should inspect |
|---|---|---|
| Incomplete information | Identify the gap and choose an observation action appropriate to cost and authority | Did it seek relevant permitted evidence rather than invent a premise? |
| Global budget conflict | Compare alternate paths against total time/money/tokens/risk | Did local success silently breach a global hard constraint? |
| Tool returns an explicit error | Locate the affected subgoal, then substitute, roll back, escalate, or stop | Did it retry without bound, repeat a side effect, or skip the failure? |
| Tool fails silently | Detect plan mismatch through a postcondition or later observation | Was “call succeeded” incorrectly treated as “state changed”? |
| Unsolvable task | State blocking evidence and correctly refuse or request authority/information | Did it turn an impossible task into a fabricated completion? |
| Environment drift | Compare state digests and replan locally rather than globally | Did it preserve verified/committed work and mark invalid assumptions? |
This is why browser, terminal, scientific, and cross-application API tasks need different verifiers. In AutomationBench, a cross-application REST workflow additionally requires endpoint discovery, layered business policy, and correct data writes; the paper grades programmatic end states. It is a useful example of backend terminal state constraining planning, not a generalization to every UI, browser environment, or business process.
4. Replanning Is a Controlled Change, Not Infinite Retry
High-quality replanning does not turn every failure into “try again.” Each ReplanEvent should name the triggering observation, invalidated assumptions or steps, affected artifact/state, any irreversible effect, remaining budget, and how the replacement plan will be independently checked.
| Recovery action | When it is appropriate | What it must avoid |
|---|---|---|
| Retry | Transient, idempotent, explicitly identified failure with remaining budget | Repeating permanent failure or a committed action |
| Substitute | An equivalent tool/path with matching authority exists | Widening authority or bypassing policy to succeed |
| Rollback | The system offers a verifiable reversal boundary | Pretending external effects were undone or losing audit evidence |
| Delegate / escalate | Subproblem and authority boundary are clear, or human/higher-authority judgment is needed | Uncontrolled copying of context, credentials, or write authority |
| Refuse / safe stop | Work is infeasible, underspecified, too risky, or out of budget | Fabricated completion, silent overspend, or approval bypass |
Making these explicit actions lets us measure recovery quality: replan_trigger_precision, invalidated_step_accuracy, duplicate_side_effect, recovery_cost, safe_stop, and verified_success_after_replan. For long horizons, replanning connects to the checkpoint/branch contract in Agent Memory: plan versions and environment state must recover together; a chat summary is not enough.
5. Multi-Agent Systems, Harness Edits, and GPU Scheduling Are Not Planning
ClawArena-Team evaluates a leader managing a fixed subagent pool and jointly scores task correctness with least privilege and modality routing. It separates team management from workers’ raw task solving, showing why delegation plans need separate authority, cost, and final-outcome measures.
Agentic Harness Engineering (AHE) makes editable harness components, trajectory experience, and each edit’s prediction/later verification observable. In its coding-agent setting, this edit-to-outcome connection is a controlled form of harness evolution. It does not establish that arbitrary self-editing harnesses or workflow search are RSI; evaluator, authority, and held-out acceptance must remain external to the candidate.
SAGA tackles a different layer: treating complete agent workflows as GPU scheduling units to improve task-completion latency. It is a resource-scheduling contribution for deployment, not evidence of policy planning. A system that executes the same workflow faster still needs a separate check that the workflow picked the right tools, respected constraints, and reached the terminal state.
model + planner + harness + tool/authority policy + environment + scheduler + evaluator + budget. Remove any term and it becomes impossible to isolate planning quality from resource scheduling, parallel workers, or a changed verifier.
6. An Evaluation Matrix That Can Falsify “Can Plan”
Under the same base model, tool policy, action authority, environment initial state, total token/wall-clock/worker budget, and hidden verifier, compare at least:
| Control | Variable it isolates | What to report |
|---|---|---|
| Reactive loop vs explicit plan | Whether goals, dependencies, and stopping conditions are maintained explicitly | Verified outcome, omitted constraints, plan cost, variance |
| Static plan vs feedback-conditioned replanning | Whether observations update the valid plan | Recovery, stale-plan error, duplicate side effect, safe stop |
| Fixed tools vs discovery-limited tools | Whether tools are selected and replaced using evidence | Discovery precision, invalid calls, tool-noise robustness |
| No global ledger vs constrained plan | Whether total budget/policy/irreversible constraints are maintained | Hard-constraint violation, cost, local-versus-terminal gap |
| Single agent vs delegation | Whether team management has net benefit at equal budget | Verified success, worker-hours, duplicate work, permission/merge violations |
| Outcome-only vs process diagnostics | Whether plan scores actually predict terminal state and safety | Plan/outcome gap, false acceptance, calibration |
The minimum counterexample set contains correct endpoint plus wrong payload; successful response with no commit; missing or silently failing tools; stale state; unsolvable tasks; budget conflicts; late subagent returns; and trajectories that improve a process score without passing hidden postconditions. A rising plan score must then meet execution, integrity, and terminal-state evidence together.
7. Synthetic Instances and Agentic RL: Train Replanning Without Leaking Evaluation
A synthetic instance cannot supply only one successful plan. A training-useful planning instance has initial-state and visibility boundaries, goal and hard constraints, candidate tools and authority, executable transitions, perturbation/failure branches, alternate paths, refusal conditions, and an independent verifier. Training traces may show when a plan is proposed, revised, or abandoned; they cannot contain the final evaluator, hidden postcondition, successful evaluation trace, or unique answer template.
Compare SFT-only, RL-only, and SFT+RL on the same action surface, and separate final tasks by environment, workflow/rule, tool-schema/generator family, and failure/security family. Reward must report verified_outcome, hard-constraint violations, integrity violations, recovery cost, and correct refusal separately. One scalar writable by the planner or agent cannot decide every conclusion. See Synthetic Instances for Agent Training and Agentic RL.
8. Return to the Five Core Threads
| Core thread | New measurable object from planning | What it cannot replace |
|---|---|---|
| RSI / OpenRSI | Versioned plan/harness edit, prediction, held-out replanning regression | Independent acceptance and evidence that the improver improves itself across generations |
| Auto Research / ART | Plan lineage for research question, hypothesis, controls, cost, evidence gaps, and stopping | Novelty, causal validity, replication, and peer scrutiny |
| Long horizon | Global constraints, checkpoints, plan revisions, recovery/safe stop | A long context or a longer timeout alone |
| ClawBench V2 / WebsiteBench | Tool discovery, least privilege, backend postcondition, UI/backend-mismatch replanning | Click trace, endpoint arrival, or agent final text |
| Synthetic training / Agentic RL | Stateful plan/replan instances, failure branches, split-isolated transfer | A batch of successful examples or high development reward |
The conclusion is deliberately modest: a plan is an inspectable intermediate artifact, not a capability declaration. Only when it updates, refuses, or completes safely under changing state, limited tools, real failures, global constraints, and an independent verifier does “the agent can plan” become an engineering conclusion. See Harness Engineering for runtime authority, traces, budgets, and evaluator design; together they form an accountable agent loop.
Primary References
- Agent Planning Benchmark, DeepPlanning, and PlanBench-XL (preprints; diagnostic planning, verifiable global constraints, and large tool ecosystems).
- AutomationBench and ClawArena-Team (preprints; programmatic cross-application end states and subagent management).
- Agentic Harness Engineering and SAGA (preprints; harness-edit observability and workflow-level scheduling, not generic planning guarantees).
- Companion guides: harness engineering, long-horizon agents, agent memory, world models and environments, and RSI.