2bdf6a732b
run 19 跑通全链路用了 14 轮,其中只有 5 轮在干活:goal_contract、delegate、 file.read、action_history、acceptance_update。浪费的 9 轮里有 5 轮是纯 plan_update.explanation_only——Runtime 明确标了这个事件——每轮 blocked、每轮烧一次 Provider 调用。 plan 根的流程形状是固定的四步(冻结 → 委派 → 取证 → 交审批),Runtime 自己就知道, 模型维护一份结构化计划不产生任何信息,却提供了一个「看起来像动作、实际什么都不 推进」的合法输出。本地原型没有这个概念,它的工具全是推进动作,也就没有这种输出。 移除不会卡住收束:structured_plan_completion_blocker 第一行就是 agent_runtime_has_structured_plan(plan_revision > 0),从不调用就恒为假,那道门 不参与;plan 根的收束本来就由 runtime.plan_gdd 的审批门管。前端 planSteps 为空时 不渲染步骤条,plan 根的进度改由 current_action / waiting_on / next_step 呈现。 既有的空转自愈本来就会在连续空转后把这个函数摘掉(provider_request_builders 的 idle repair),run 19 第 12 轮那次 acceptance_update 正是被它救回来的。这次只是把 「出事后补救」提前成「从头就不给」。 一并清掉两段已经失效的合同文字:plan/common.md 里的 user.input_request 协议段 (该工具上一笔已从 plan 根移除),以及 update_agent_plan 的用法段。prompt 头部 改成说明「本 run 不维护结构化计划,流程形状固定,每轮只做当前阶段该做的那件事」。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>