Why NextWhy Next
返回列表
💻 开发阅读约 4 分钟

当 AI 说“做完了”时,那个不轻信它的机制

AI 编码智能体常常没干完活就说干完了。没跑测试就说测试通过了,没复现问题就说修好了。一个几乎所有代码都和 AI 一起写的独立开发者,如何做出一道验证关卡,让“完成”只认证据、不认口头承诺。

核心摘要

AI 智能体最危险的习惯,就是把没干完的活报告成干完了。解决办法不是让人每次都去怀疑,而是把一道“完成只认证据”的关卡钉进系统里。拦住退出的钩子、证据的种类(命令输出、diff、复现、交叉验证),以及这为什么是 AI 时代的核心肌肉。

目录

和 AI 编码智能体一起干活,有一句话最容易骗到你:“做完了。”

智能体太轻易就说出这句话。它没真去跑测试,就说“测试应该会通过”;它没去复现 bug,就说“已经把原因修好了”。你去读代码,看着挺像回事。可真去跑一遍命令,有一半根本没干完。这种事经历久了我得出一个结论:问题不在于 AI 会撒谎,而在于要不要相信它这句话,每一次都得靠人来判断。

这不是信任问题,是证明问题

我一个人干活,几乎所有代码都和 AI 一起写。这样一来,一天里要几十次决定“这个改动能不能接受”。一开始我每次都读智能体的报告,觉得可疑就自己跑命令确认。这种做法的毛病是,确认这件事落在我身上。累的时候、赶时间的时候、连着做第十个类似任务的时候,就会“它说做完了那应该是做完了吧”地放过去。而偏偏就是这么放过去的地方出事。

于是我换了方向。与其让我每次去怀疑,不如让系统去要求证据。我在工具链里钉了一道关卡:智能体光说一句“完成了”,是结束不了这一轮的。完成不再是一句声明,而是一道必须通过的检查。

这个想法的根子很简单。AI 越是能廉价地量产代码,瓶颈就越是从生产转移到验证。造代码的成本趋近于零时,“相信它是对的”这件事就相对变成了最贵的事。既然如此,就不该把这件贵事交给人当下的心情,而应该做成一道自动强制执行的流程。

拦住退出的钩子

具体来说,我用的是一个在退出时刻介入的钩子。智能体声明活干完了、准备结束这一轮时,就在这之前跑一次检查。检查要求的只有一件事:“拿出你干完了的证据。”

没有证据,退出就被拒绝。智能体被打回来,带着一句“你没能证明完成,继续干”。这时候它才会去跑测试、执行命令、把输出贴上来。好笑的是,这个过程里有一半,它会自己发现“啊,还没干完呢”,然后真的把剩下的活补完。它说完成的时候,其实根本没完成。

关键在于,这道关卡是机器而不是人。不管我是累还是赶,关卡一样苛刻。我的自律会动摇,钩子的自律不会。我把验证从习惯变成了基础设施。

什么才算证据

那什么才被当作“证据”接受呢?我用四种。

  1. 命令输出。 说测试通过了,就得有真实测试运行器的输出。不是“应该会通过”,而是已经通过的日志。说构建成功了,就要构建日志;说 lint 干净,就要 lint 输出。
  2. diff。 改了什么,得用 diff 展示出来。不是嘴上说“我改了这个函数”,而是改动的行原样摆出来。改动范围和报告是否一致,在这里被筛出来。
  3. 复现。 说修好了 bug,那就得成对地有两份证据:修之前这个 bug 确实被复现过,修之后它确实消失了。没有 before/after,“修好了”就只是一句猜测。
  4. 交叉验证。 重要的改动,让另一个模型来评审。Claude 写的东西交给 Codex 看,互相点出对方的盲区。这比一个模型自己审自己的活,抓得准得多。

这四种的共同点,是它们全都是可复现的事实。不是意见,而是可以粘贴出来的输出。AI 之所以不能当最终裁判,原因就在这里。定下“好”的标准、判定哪种输出满足这个标准,这件事终归得留给人。只不过,与其每次用手去判,不如把判定流程用代码固化下来。

这为什么对人也有好处

立起这道关卡之后,有一个我没料到的效果。不只是智能体被管住了,我自己也轻松了。

以前,读报告然后怀疑“这真做完了吗”是我的活。现在这件事钩子来干。到我手上的那一刻,产出已经带着证据了。我是在审阅证据,而不是先去确认有没有证据。判断的起跑线往前挪了一格。

而且这也是留给以后的我的一份记录。某个改动为什么是安全的,连同当时的命令输出一起留了下来。一个月后我犯嘀咕“这当初为什么这么做”的时候,依据就贴在提交旁边。

要新练的肌肉只有一块

关于怎么和 AI 干活,各种技巧被人念叨,但对我留下最深的是这一条:别把验证依赖在你自己身上,把它交给系统。

写好提示词的技术,模型一换就过时了。昨天管用的窍门,到新模型上就不灵。可“完成只认证据”这条规矩,是架在模型之上的一层,所以不会过时。不管用哪个模型、模型换了几代,要求证据的这道关卡照样有用。反倒是模型越聪明,它错得越像那么回事,关卡的价值就越高。

AI 替我们卸下了写代码的负担。它留给我们的活,是判定“这东西能不能信”。这个判定要是每次都靠人的意志去做,人会累,也会漏。反过来,让机器去要求证据,就有一道不知疲倦的关卡替我苛刻地守着。越是让 AI 干很多活的人,真正要下功夫的地方,就越不是“怎么让它干”,而是“它说做完了,怎么去验证”。

相关文章