导读
AI 说做完了、改好了、已经生效了,这句话本身不是证据。它不是故意骗你,它对自己做过什么的判断,常常来自我打算做什么、我执行了哪条命令,而不来自它现在的状态。
更麻烦的一层是,我们平时拿来验证的那几个指标,本身也会骗人。文件的修改时间变了,内容可能一个字没动。文件大小一模一样,内容可能已经改了。某一个文件单独算出来的哈希没变,改动可能已经写进去了。进程没重启,改动可能已经生效了。
这四个我今天全跑了一遍,数字放在附录里。其中一个指标我跑了两次,两次量出不同结果。它两次结果不一样,就不能当判据。
正确的姿势只有一条。让它交一个能独立复算的产物,再加一条反向证据。这两样缺了,剩下的就是让你信它。
下面这段整块发给你的 AI。
把这段话整段发给你的 AI
复制下面整块,原样发给它:
左右滑动查看完整代码
我要请你做一件事,做完之后我要自己验。所以从现在开始,每一步都交我能独立复算的东西,不要只给我结论。
这件事是:(写清要做什么)
第一步,开工前先写清这件事做完长什么样。列出验收项,每一项写清三件事:看什么、在哪看、什么算通过。凡是给不出一个我能自己打开、自己数、自己比对的验收项,单独标出来,说明为什么给不出。
第二步,每做完一步,给我三样。
- 改了哪些东西,逐个列全路径。
- 每一项改动的证据。文件给前后内容摘要,数据给前后数量,配置给前后那几行的原文。不要只写已修改。
- 一条反向证据。改之前那个值现在应该找不到了,把它检索一遍,给出 0 命中的结果。
第三步,凡是涉及有没有生效,不要用下面这几个东西当证据,它们都会骗人:
- 文件的修改时间。
- 文件的大小。
- 某一个文件单独算出来的哈希值(如果这个系统会把改动先写进旁边的文件)。
- 进程有没有重启过。
要用能不能读到新内容来证明。
第四步,做完给我一份验收清单,我照着逐项打勾。哪一项你给不出可复算的证据,直接写给不出,不要用一句已完成顶上。
最后给我四行结论。
1. 这件事里最容易被误判成已完成的是哪一步。
2. 哪一项验收你给不出可复算的证据。
3. 我该重点验哪两项。
4. 有没有哪一步,你其实没做、但报告里看起来做了。
不要用已完成、已处理、已生效这类话代替证据。它把四行交回来,你照着清单逐项验。
需要你亲手做的四件事
- 自己打开产物看一眼。它给的路径,你自己打开一次,别只看它截给你的那段。
- 反向证据自己复算一遍。它说旧值检索不到了,你自己检索一次。
- 重点验看起来最顺的那一步。顺利的地方最容易被跳过,也最不容易被发现。
- 别只验它给你的那一项。它给的是它想到的,你要验的是你在意的,这两份清单不一样。
附:四个会骗你的指标(本机实测)
下面这些是我 2026 年 10 月 6 日在本机跑出来的。
- 文件的修改时间。我把一个文件的时间戳碰了一下,内容哈希从 ce87081a484d 到 ce87081a484d,一个字没动,时间戳却变了。只看时间会说它动过。
- 文件的大小。我把一个文件里的一个字换掉,字节数从 30 到 30,完全一样,但内容哈希变了。中文的等长替换就是这种形态,只比大小会判成没改。
- 某一个文件单独算出来的哈希。这类系统会把改动先写进旁边的一个日志文件,之后再合并回去。我握着一个长连接连写七次,主库哈希全程是 5c9dec1886cc 没变,旁边那个日志从 8,272 涨到 37,112 字节,七次写入每次加 4,120 字节,而数据从另一个连接立刻就读得到。同一个指标我换一个脚本再跑一次,关闭连接之后主库哈希就变了。两次结果不一样,说明它不能单独当判据。
- 进程有没有重启。写入前后我没重启任何进程,新数据照样立刻可读。没重启说明不了没生效。
顺带说一个真实场景的量级。这个站点上我连着写了六次内容,主库哈希从头到尾是同一个值,一直在变的是旁边那个日志,从 527,392 涨到 667,472 字节。只看主库,会得出六次都没写进去这个完全错误的结论。
附:正确的证据长什么样
两样东西,缺一样都不算。
一样是能独立复算的产物。要给出路径、给出一个能打开的东西、给出一个能数的量。你要能自己动手数一遍,而不是听它说数过了。
另一样是反向证据。改完之后,改之前那个值应该检索不到了。要它把旧值检索一遍,给出 0 命中。这一条比正向证据更能说明问题,因为正向证据它可能照抄上一轮的结论。
附:这套要求最省事的地方在哪
这套要求的收益在两头。你少返工,它少含糊。上一节那两样东西,做起来是几行字的成本。
真正贵的是另一种情况。它说做完了,你信了,过了两周才发现做的是另一回事。那时候你要往回翻是哪一步错的、当时的东西还在不在,找回来的成本比当初要一份证据高得多。
还有一层。要求它交证据,会同时改变它干活的方式。它知道每一步都要给出可复算的东西,中间那些含糊跳过的步骤就少了。这一条不用你额外做什么。