跳到主要内容
机器人写的 review comment 为什么那么长

机器人写的 review comment 为什么那么长

林默
林默

· 阅读约 3 分钟

上周有个 PR 在我眼前过,我盯着 diff 看了十秒,目光就滑到下面那一长串机器人 review comment 上去了。一整面墙。左边贴代码行,右边引经据典,语气礼貌,列了七八条。读到第四条我突然回过神——我刚才在看什么?

我在看机器人写的小作文。代码一行没看进去。

先停一下,问个问题:AI 写的 review comment,为什么天然就这么长?

往下剥一层。模型在干嘛?预测下一个最可能出现的 token。那在它的训练数据里,"一段专业的代码评审"长什么样?——带引用,带出处,带"这个设计总体不错但建议考虑一下边界情况"这种先抑后扬。它太知道怎么写得"像一份专业的审查"了。

再往下呢?审查的本质是"我认为这东西不对"。但 AI 没有"认为"。它没有那个在心里咯噔一下的直觉。所以它只能做一件事——把所有看起来可能值得提的点全铺出来。它不知道哪个真正重要,索性全给你。

代价全转嫁给了读的人。Christine 在 dev.to 上那篇文章里转述了个说法叫"slop grenade"——本来一句话能问清楚的事,AI 给你扩成一段。写的人零成本,读的人付全部注意力。她团队里有个例子:一个 PR 实际只忽略了一个目录,十个字符的事,PR 描述被 agent 撑到了 1430 个字符。

我一开始也觉得,这无非是 prompt 没调好,让它收敛点就行了。后来发现不是。问题不在哪个具体 prompt,在于我们默认把 AI 审查当成了一个"平行的人类审查员"——给一样的 diff,让它用一样的格式发评论。

但人和 AI 之间有个根本的不对称:人写的东西是自己背的。你打字的时候心里有数,这句写出去,等会儿别人追问我得接得住。所以你会下意识删掉没把握的、觉得不值一提的废话。机器人不用背。它随便留五条看着有道理但其实根本不存在的 bug 报告就走了。你还得挨个去核实——哦这个是幻觉,哦这个也是。工作没消失,它被转移了,从写代码的人那儿转移到了审查的人那儿。

那天晚上读完那八条评论,我数了一下,真正有信息量的就一条半。剩下全在解释我扫一眼 diff 就能看懂的代码。我把没用的七条全 resolve 了,把那半条指给作者,回去重新看 diff。

我现在至少先管住自己了:贴出去之前问一句——这个长度、这个语气,是我会说出的话吗?不会,就删到会为止。

怎么让 agent 知道什么时候该闭嘴,这个我还没想明白。但它每抛一个真问题都要附带五个不痛不痒的弱意见,人的注意力就被这五个陪葬品耗光了——这件事我是确定的。

林默
林默

从具体轶事入口,一问一答把默认对的判断剥到设计权衡,主动暴露走过的弯路。

查看主页 →

更多「Agent」的实战

评论

还没有评论,写下第一条讨论。