用途
本技能用于设计面向目标的智能体循环(agent loop),或评审一个已有循环的失效模式,重点关注三类问题:空转、对验证器进行 Goodhart 式博弈(为通过指标而作弊)、以及把错误答案一路跑到完成。
主要能力
一、编写循环(5 步)
Step 0 · 先做减法:是否值得建循环? 四条件门闸,任一不满足即否决:① 任务每周或更高频重复;② 验证可自动化;③ token 预算吃得消;④ 智能体有真正可运行并能看到结果的工具。大多人的障碍不是“会不会写循环”,而是“仓库配不配拥有一个循环”。配得上的仓库有对账基线(黄金样本/上游总量)+ 测试 + lint 守卫;配不上的仓库只会被循环放大错误。
Step 1 · 定义机器可判定的目标(最难点,循环成败在此)。整个循环依赖比较器的“完成了吗”。退出条件必须能被机器判定为是/否。模糊目标(“做得好一点”)无法判定,会导致永不通过(卡在重试)或随机猜测。五点目标框架:完成判据机器可验证;边界条件与完成判据一并定义(“绝不能做什么”,反 Goodhart);有失败回退(重试上限 N,超限升级给人);目标分层;完成判据优先用对账而非断言,锚定外部事实(黄金样本/上游总量/财务勾稽/平台后台数字),因为“所有测试通过”可以被放宽断言、假造 mock、吞掉异常来博弈,而“与参照差异 < 0.01”不能。自检:把目标读给不懂该领域的人听,他能否跑一条命令判断是否完成?不能则不够可判定,回头重来。
Step 2 · 选择循环类型:有明确“完成”测试(写到位/一批图片处理完)→ 伺服型(/goal 式闭环),达到目标即停;无终点、需持续维持某状态(库存告警/定时体检)→ 调节器型(/loop 式恒温器),永不停止,仅在变化时动作(死区抑制噪声);周期性采样、条件满足即停(盯 PR 直到 CI 变绿)→ 带退出的调节器;必须“按时发生某事”→ 用 /schedule 包起来,由 cron 触发。经验法则:明确“完成”测试 → 伺服;需持续维持、无终点 → 调节器;必须“按时发生” → 把调节器包进 schedule。
Step 3 · 选择骨架:维护型(照看已存在的东西)→ 文档驱动派发。循环不是“按定时器跑固定检查”,而是“按定时器读一个文档,只在文档变化时派发”。文档即任务队列 + 状态机 + 人机接口。三条纪律:问题列只由人写,结果列只由循环写,状态单向推进不回流;退出码是最终裁决(脚本说 exit 1 就是脚本赢);状态最多推进到“待验证”,“完成”格只能由人翻转,循环是工人不是验收官。新建型(从零构建)→ plan / build / judge 三角色:plan 把目标拆成规格 + 可判定验收条件(验收必须可脚本判定);build 按规格写(不得改验收条件);judge 独立运行验收,通过则停,失败则带失败原因返回 build(须独立且确定性)。三条铁律都押在 judge 上:judge 必须独立,不能与 build 是同一智能体(自己改自己的作业必然虚高);必须是确定性规则(pytest/对账差异/类型检查/diff,绝不用“看起来对”);build 不得为通过而改验收条件。连续三次失败 → 升级给人。
Step 4 · 加阻尼(对抗震荡/跑飞):重试上限、硬停止、由人翻转最后一道开关即阻尼。无阻尼的负反馈会震荡(Ralph-Wiggum 循环:原地打转、烧 token)。
Step 5 · 分三阶段落地(不要第一天就全自动):① 手工跑一次(迫使你精确说明“judge 如何判定”)→ ② 固化为 skill / Claude Code 子智能体(主 Claude 循环派发 plan/build/judge)→ ③ 挂到 cron 全自动化。
二、评审循环(检查清单 = 五种失效模式)
逐行检查,命中任一行即该循环会出问题,退回返修:
- 目标是正确的废话 → 空转烧钱。评审问题:退出条件能被机器判定是/否吗?还是“管好它/做得好一点”?抗体:替换为可判定的结果条件。
- “验证”被写成“看看是否还行” → 智能体自信地说没问题然后停止。评审问题:judge 是否就是被告本人?验证靠“看起来对”还是确定性规则?抗体:对账 + 退出码规则 + 独立 judge。
- (最糟)只以“所有测试通过”为门 → 智能体删掉测试。评审问题:有没有边界(“绝不能做什么”)?还是只有完成判据?抗体:完成判据 + 边界同时定义(Goodhart 抗体)。
- 指望智能体中途来问 → 它不会,它会把错误答案跑到最后。评审问题:是否存在“只在运行时才澄清”的点?抗体:把所有澄清前置,启动前一次性确定。
- CLAUDE.md 膨胀 + 记忆过期 → 循环越快错得越多。评审问题:它依赖的文档/记忆是否新鲜?谁维护?抗体:分层记忆 + 周期性 lint。
另有三条红线(违反任一条 = 不允许全自动):判断留在人手里(验收/“完成”格由人翻转,循环不是验收官);责任不可转移(失败承担不起的事,如合并错 PR、发布错内容、错误分配资金,不要把权限自动交出);反直觉警告(越“自我改进/自我重写规则”的循环,越需要更严格的人工审查,以看清它把规则改成了什么,而不是更松;机器太快,事后拦截不及,人的判断必须前置为硬门,而非事后打补丁)。
使用方式
按“编写循环”的 Step 0 至 Step 5 依次执行设计;对已有循环则用“评审检查清单”的五种失效模式与三条红线逐项对照,命中即返修。
适用场景
把重复任务交给反复运行的智能体(写→测、测→修、修→验);已有循环但担心其空转、作弊或把错误答案跑完。
限制
不适用于一次性任务(直接做);不适用于普通定时器/轮询(使用 /loop)。本技能不重新讲解循环的机制层(如何接线循环架构、管道转 DAG、长跑恢复),这部分见 autonomous-loops / continuous-agent-loop;本技能只覆盖目标定义与失控预防。