一个命令行小工具,不调用任何模型,也没有依赖,却在12个公开改写任务上拿到58.67分(满分60),比表现最好的其他方案高出2.67分。这个差距的95%自助法区间是[1.00, 4.33],下界高于零。

打开网易新闻 查看精彩图片

测试的问题很直接:给AI写作挑毛病的检查工具,能不能让智能体把文件改得更好,比一句好提示词更管用?为此搭了11组对照——检查工具打包成Claude Code插件算一组,另外六个声称能去掉AI腔的Claude Code技能各算一组,再加一组完全不用插件的Claude。其中Humanizer、unslop、everwrite三组还额外用提示词点名调用跑了一遍,11组就是这么来的。每组在每个任务上跑三次,模型是Sonnet 5.5。

任务怎么打分

每个任务都要求智能体就地修改一个真实文件:一份法语发布说明、一段README开头、一条拉取请求描述、发布日志、一份混合语言指南、一个仓库搭建文档。评分只看改完之后文件里有什么,光讨论问题不得分。

每个任务还埋了粗心改写容易弄丢的事实,比如数字、人名、代码和链接,由脚本逐项检查。需要主观判断的部分交给盲评:所有组的输出打乱并匿名,评分者先给理由再给结论,每个格子五票。99个盲评格子里有92个是全票一致。

另外六个工具分别是Humanizer(blader/humanizer,按GitHub API在2026年10月24日的数据约6万星)、unslop、everwrite、slopless、avoid-ai-writing和slop-cop。测试协议在第一个格子跑之前就已写好并提交。

它没有全胜

在h11和h15两个任务上,它拿4.67分,最好的对手拿5.00;h18上双方打平在4.67。按更严格的逐任务规则,这三个任务算失败。

另有6个留出任务,作者是一个没看过这个仓库代码的Sonnet智能体,跑测量的人事先也没读过。在这组上,检查工具落后unslop 0.33分,区间[-1.00, 0.00],所以“排第一”的说法在这组不成立。这0.33分丢在ho1一个任务上,4.67对5.00。四组拿到29.67分以上,连不用插件的基线都有28.67,这组任务分不出高下。两组合起来看:公开组第一,留出组与11组中最好成绩相差不超过0.33。

Haiku 5.5和Opus 5.5也各跑了一遍,只保留检查工具、各组最佳和基线。这些数字只作描述——每个任务只跑一次,一两分的差距落在运行波动之内,而且没有盲评,公开组分数只用脚本标准,满分是57。

提示词做不到的事

检查工具的规则是确定性的:同样的文本给出同样的结果。但一次改写可能通过所有检查,却仍然弄丢一个事实,所以它带了一个--compare参数,逐项列出只出现在一边、没出现在另一边的数字、版本号、日期、链接、引文、代码片段和人名,发现一个就以状态码1退出。它还会报告数字旁边消失的限定词,以及改写新加进去的第一人称或断言词。

下面这段是真实输出,例子是两行文本:

  • facts: 1 kept, 4 lost, 0 added
  • lost date 3 March 2026
  • lost number 1200
  • lost qualifier up to 40
  • lost version 2.4

插件里的技能会在每次改写后跑这个对比,对比失败就视为阻断。不过--compare比的是事实不是措辞,它没法判断一次改写好不好。

代价与偏差

按标价算,这一组每个格子的成本是不用插件基线的2.43倍,两组都是,因为它要更多轮次和更多token。公开组每个格子0.125美元,基线0.051美元。整场测量按标价约91美元。

测量过程出过几处岔子:会话上限两次中断运行,236次公开组和160次留出组尝试因usage_limit_reached失败,记录保留但从未计分,之后用同样的命令重跑;公开组和留出组同时进行,留出组用了更晚的提交,因为测试框架拒绝工作树与提交不一致的情况,而两个提交的产品文件逐字节相同;盲评循环死过一次后重启,一度有两份进程同时写投票文件,重评的165份投票文件全部有效,没有一份被手工丢弃。对33个抽样盲评运行重评,与首次评分在99.4%的标准上一致;60个抽样格子重跑,公开组40个里有38个、留出组20个里有19个落在原先三次运行的区间内。

想自己验证,跑npx ai-slop-linter README.md,或者用npx ai-slop-linter --compare before.md after.md对比两份文本。装成Claude Code插件则是先/plugin marketplace add Bubblegunn/ai-slop-linter,再/plugin install ai-slop-linter@ai-slop-linter。每个格子、偏离协议之处和重算步骤都在第8轮证据文件夹里,REPRODUCE.md给出重跑命令,需要Claude Code 2.1.308、Node 24和大约9小时。任务、标准和测试框架公开在bench/head-to-head/,早前轮次和裁定在docs/HEAD-TO-HEAD.md。仓库是Bubblegunn/ai-slop-linter,0.2.0版本已上npm。