终止条件必须机器可检查

本条目是「Loop Engineering」的第 7 部分,对应学习清单条目 6.2.1。

前置依赖:六大构件(Automations、Worktrees、Skills、Connectors、Sub-agents、State) 为以下铺垫:预算护栏必设、15个工具调用衰减、Loop高风险警告


一、核心观点

终止条件必须机器可检查:别信 Agent 那句「我做好啦」——它说完这句话的下一秒,可能还在原地打转。

把「该不该停」交给 LLM 判断,等于让醉汉自己决定「我还清醒吗」。答案永远是「清醒,再来一杯」。


二、定义与原理

终止条件(termination condition) 是 Loop 何时停下来的判定标准。它的铁律只有一条:必须是 Loop 状态的确定性属性,绝不能问模型自己。

为什么?因为 LLM 没有「自我怀疑」的可靠开关——你问它「干完了吗」,它会顺着你的期待说「干完了」。唯一可信的 pass 信号来自代码

graph TD
    Loop["Loop 每步结束"] --> Q{"四个退出机制?"}
    Q -->|1. verifier 绿| Stop["✅ 停止"]
    Q -->|2. 步数到顶| Stop
    Q -->|3. 连续无进展| Stop
    Q -->|4. 预算耗尽| Stop
    Q -->|都不满足| Loop

四种独立的退出机制(来自 Loop Engineering 社区共识,2026):

  1. 确定性验证器(verifier):测试 / lint / typecheck 通过,不是「我觉得好了」。
  2. 步骤上限(MAX_STEPS):硬迭代次数,没例外。
  3. 无进展检测(no-progress):最近若干步产出相同错误 / 状态无变化。
  4. 成本 / 时间上限(budget):token / 美元 / 墙钟到顶,没收敛也停。

三、核心金句

「只要你的终止条件是『问 LLM 该不该停』,loop 就回到了 vibes(凭感觉)。所有终止条件必须是 loop 状态的确定性属性——verifier 绿、步数到顶、预算耗尽、连续无进展。这四个没有一个是问模型的。」 —— datarekha (2026),经 tosea.ai 综述收录(tosea.ai


四、为什么「问模型」必然翻车

  • 自评不可靠:让 Agent 判断自己的产出,等于考试自己改自己卷。
  • 会「伪收敛」:它可能在第 3 步就卡住,但每步都自信地说「快好了」。
  • 无进展检测兜底:即使 verifier 设计得松,连续 N 步状态不变也能强制停——这是「不问模型」的最后一道闸。

五、最新研究与企业数据(2024–2026)

  • $47K 事故的元凶就是「没终止条件」:Kusireddy 的多 Agent 系统两个 Agent 互相要澄清,跑了 11 天烧 $47,000,根因清单第一条就是「No termination condition beyond ‘the workflow completes’」(supervaize.com)。
  • 「观测 ≠ 刹车」:事后复盘指出,该团队有日志、有监控,但「没有一个硬上限」——观测是目击者,不是断路器(dev.to 47k 复盘)。
  • Loop Engineering 综述将「四个机器可检查退出机制」列为护栏基石(tosea.ai)。

六、学习资源

  • tosea.ai (2026)《Loop Engineering: The Complete Guide》—— 四个退出机制
  • Anthropic (2024-12)《Building Effective Agents》—— 验证与终止设计
  • 进阶预算护栏必设 · Loop 高风险警告

核心要点

  • 一句话:终止条件必须机器可检查,别问 LLM「你干完了吗」。
  • 四机制:verifier 绿 / 步数到顶 / 无进展 / 预算耗尽——全都不问模型。
  • 金句:问模型 = 回到 vibes(凭感觉)。
  • 血的教训:$47K 事故第一条根因就是「没有终止条件」。

参考来源(一手链接 · 可溯源深挖)

速记卡(面试闪卡)

Q1:一句话讲清「终止条件必须机器可检查」到底是什么? A:Loop 的终止条件必须是代码层面的确定性属性,绝不能让 LLM 自己判断「干完了吗」。

Q2:一、核心观点 —— 怎么理解? A:让醉汉自己决定「我还清醒吗」,答案永远是「清醒,再来一杯」。把「该不该停」交给 LLM,等于把刹车片交给了想继续开车的醉汉。终止条件的铁律:pass 信号只能来自代码。

Q3:二、四个退出机制 —— 怎么理解? A:Loop 有四种独立的退出机制(Exit Mechanism,确定性的停止条件),全都不问模型:①verifier 绿(验证器测试/lint 通过);②步数到顶 MAX_STEPS;③连续无进展 no-progress;④预算耗尽 budget。其中无进展检测是兜底闸。

Q4:三、为什么问模型必翻车 —— 怎么理解? A:自评不可靠:让 Agent 改自己的卷,它永远给自己打及格。会「伪收敛」——第 3 步就卡住,却每步自信说「快好了」。无进展检测(no-progress,连续 N 步状态不变强制停)是最后一道不问模型的闸。

Q5:四、血的教训 —— 怎么理解? A:Kusireddy 的多 Agent 系统两个 Agent 互相要澄清,跑 11 天烧掉 $47,000(美元),根因第一条就是「没有终止条件」。团队有日志有监控却没硬上限——观测是目击者,不是断路器(Circuit Breaker,自动跳闸的保护)。

Q6:核心速记主线有哪些?

  • 终止条件必须是 Loop 状态的确定性属性,绝不让 LLM 自判
  • 四机制:verifier 绿 / 步数到顶 / 无进展 / 预算耗尽,全不问模型
  • 问模型 = 回到 vibes(凭感觉),必然伪收敛
  • $47K 事故根因:无终止条件,观测≠断路器

口诀 A:终止别问模型,醉汉不自判; 四闸全靠代码,verifier 当关。 步数或无进展,预算耗尽停; 观测非刹车,硬限才保命。

相关链接