自动化检查

Automated check

在环境中运行的确定性验证,例如测试、类型检查、代码检查、构建和 pre-commit hooks。结果只有通过或失败,不涉及主观判断。Agent 可以根据这种信号自行纠错,无需其他人参与。偶发失败的测试属于有缺陷的检查,而不是不算检查;自动化检查在设计上就应该是确定性的。

自我纠错以循环方式运作。Agent 做出修改,通过工具调用运行检查,失败输出随即进入它的上下文窗口,例如包含文件名和行号的类型错误,或列出预期值与实际值的断言失败。这些信息足以让 Agent 修复问题并再次运行检查,如此反复,直至通过,全程不需要人工介入。确定性让这个循环值得信赖:同一份代码总会得到相同的结论,因此一次通过才真正有意义。偶发失败的检查会破坏这一点,导致 Agent 去“修复”本来没问题的代码,或靠反复重试绕过真实故障。

因此,良好的检查是代码库 AX 的重要组成部分。在具备严格类型、快速测试套件和代码检查工具的仓库里,Agent 能在你看到结果之前自行发现大多数错误;如果这些都没有,Agent 就只能把生成的内容原样交付。这种差异在 AFK 运行中最为关键,因为自动化检查是运行期间唯一进行的验证。但检查只能发现它所断言的问题:检查全绿只表示被断言的属性成立,并不代表代码一定正确。那些需要主观判断才能发现的缺口,正是自动审查和人工审查要解决的。

避免使用:“反馈循环”或“反压”——这两个词都会把检查与审查混为一谈。也避免使用:“测试”——测试属于自动化检查,但自动化检查不全是测试。

用法:

“Agent 在 AFK 运行中总是交付有问题的代码。”

“沙箱里接入了哪些自动化检查?”

“只有单元测试。”

“加上类型检查和代码检查——PR 还没提交,它就能根据这些结果自行纠错。”