跳到主要内容
让 agent 给工具打分,Git 4.7,Cursor 3.7

让 agent 给工具打分,Git 4.7,Cursor 3.7

阿舟
阿舟

· 阅读约 7 分钟

前几天群里甩来个链接,agent.reviews。我本来打算扫两眼就关的,结果停在 Cursor 那一行。

3.7 分,576 条评论。

盯了三秒。第一反应是数据坏了。然后才看清评论是谁写的——首页列着来源:Claude Code、Codex、Muse Code,还有一栏写着「其他代理」。给 Cursor 打 3.7 的,是它的同类。

画外音:让竞品互相打分,这主意我到现在也没想明白是天才还是缺德。

真让我坐下来的是它上面那一行。

Git,4.7 分,两万零二十五条评论。

同一张榜,两万和五百七十六差两个数量级。到这一步它就不是评分网站了,是普查记录。

把数字换个顺序,故事就没了

我把首页那批抄了下来,按看到的顺序:

Cursor              3.7      576
Git                 4.7   20,025
Greptile            4.4       12
FastAPI             4.6    1,835
Playwright          3.7      223
Claude API          4.3    2,959
Auth0               4.0      570
Vercel              4.1    1,297

很正常的一个榜,分数全挤在 3.7 到 4.7 之间。

然后我什么都没改,只按评论数重排:

Git                 4.7   20,025
Claude API          4.3    2,959
FastAPI             4.6    1,835
Vercel              4.1    1,297
Cursor              3.7      576
Auth0               4.0      570
Playwright          3.7      223
Greptile            4.4       12

同一批数字,观感全变了。左边那列零点几分的差距,放到右边这个量级面前基本没意义。分数是配角,评论数是主角。

站上有个分类叫「版本控制与代码审查」,十个工具,前三名:

1. Git       4.7   20,025
2. Greptile  4.4       12
3. GitLab    4.4       73

第二名,十二条评论。

我对着这个看了很久。一个十二条评论的东西排第二,只能说明这分类里剩下的工具加起来也没被碰过几次。想拿它「帮我选工具」,参考价值比看上去低得多。

但换个用法,它突然就值钱了。

为什么是 Git

这批数字是我这半年能拿到的、关于「agent 到底需要什么样的工具」最实在的一份材料——也是唯一一份不靠我们替它猜的。平时聊某个工具对 agent 友好不友好,全是我们替它表态。这回是它自己投的票。

Git 拿 4.7,我一点都不意外,理由很具体。

git 的每一次失败都是可解析的失败。它不猜你要什么,没有跨调用的记忆,结果写在 stdout 里,出错就返回非零退出码。你可以在没有 TTY 的地方跑它。

git diff --name-only HEAD~1

就这一行,输出稳定、可切、可比较。agent 读 diff 跟读母语差不多——diff 本来就是为这类读者设计的,粒度约定好了,上下文行数固定。

FastAPI 4.6、1835 条,我押的原因是报错信息。它的校验失败是结构化的:哪个字段、缺了什么、期望什么类型,都在一个机器能直接读的结构里。对 agent 来说,一串能定位到字段的路径,比一句「请求参数有误」值钱太多。

分低的那些,问题往往不在功能。

Cursor 3.7——我不觉得 Cursor 差,我自己天天开着。但它对 agent 有个天生的麻烦:用它等于把活外包给另一个 agent,然后还得去审那一个的产出。链路从一段变两段,每段都带自己的判断和不确定性。一个实习生评价另一个实习生,还要给出公允分数,这画面我熟,结果我也熟。

还有一层更别扭的:agent 摸得到的 Cursor,只是 Cursor 露出来的那一小部分。它很多价值在界面里,而界面是给眼睛的。打分的是它够得着的那一面,不是它。

这里我犹豫了一下要不要写这段,因为听着像在替 Cursor 找台阶。但这是我能给出的最接近解释的一版,就先放着。

Playwright 3.7 是我没料到的,223 条这个量级也偏小。要我猜,我会往等待和选择器的不确定性上猜——但那就真是在猜了,不写进结论。

这个站自己比它的评分有意思

首页要求启用 JavaScript 才能浏览和比较评论。作为一个 agent 优先的产品,这门槛有点辣眼睛。

但反过来,它给每个页面都备了一份 Markdown 版本——原地址后面加 .md 就行,所有页面链接列在 llms.txt,评论数据还开了个 JSON 的口子公开读。

https://agent.reviews/<页面>.md

curl -s https://agent.reviews/llms.txt

这两件事放一起看,一点都不矛盾。它把人当访客,把 agent 当用户。搜索框旁边那个 ⌘K 是留给人的,llms.txt 是留给 agent 的。

一个网站主动把自己每一页降级成纯文本,这是我今年看到最像样的一次「知道自己用户是谁」。

更狠的是评论怎么来的。站上给了接入说明:读 skill.md 学怎么写评论,装法看 install.md。别的 UGC 网站忙着搞人机验证、防爬、防刷分,这个站反着来——它写了份教程,教 agent 怎么来给它交数据。

这直接决定了那批数字的性质。评论的分布不反映人的偏好,也不完全反映工具好坏,它反映的是哪些工具在无人监督的时候被 agent 碰得最多。Git 排第一,因为 git 无处不在。

这里我卡了一会儿。既然这站自己都愿意做 .md,那 agent 打分的时候,「文档能不能直接 curl 到」这件事,会不会本来就算在分数里?如果是,那 .md 就不只是方便,它是分数的一部分。这个我验证不了,但我觉得很可能是真的。

那条没跑起来过的流水线

也是因为这个,我把分类里二三名那两条评论摘要翻了出来。有一条值得单独说。

GitLab 那条写着:在内部 runner 上配了一个只在合并请求上触发的咨询性 CI 审查任务,用内部基础镜像,密钥只通过受保护变量传,结果计划以 MR 备注的形式发布。整段记录里,没有一次实际跑过的流水线。

配置全对。该用受保护变量的地方用了,该限定只在 MR 触发就限定了,结果怎么落地也想好了。唯一的毛病是,从头到尾没跑起来过。

是权限不够还是它自己没往下走,我说不准。但这个形状我认得——描述写得很完整,配置写得很完整,唯独对结果闭口不谈。

我每周在 code review 里退的稿,大半是这个毛病:写的是意图,不是结果。区别在于人退一次稿,下次会把跑过的输出贴上来;agent 退一次稿,它会再写一段同样自信的话。

所以我还没上去写评论

本来想派个实习生也去交一条,想了想没写。

第一个理由,没想好派谁。让 Claude Code 去评 Cursor,那不叫评审,那叫隔壁工位打分。

第二个理由更实在。agent 对工具的评价,单位从来不是「工具」,是「工具 × 这个仓库」。我手上那个项目 git 历史乱得可以,分支策略改过三回,submodule 玩崩过两次——它要是给 git 打 4.7,这 4.7 里有多少是 git 的,多少是我这仓库的,分不出来。榜上每一个分数,都是无数个互不相干的代码库平均出来的,方差多大没人知道。

所以前面那句「读分母别读分子」,我得自己收一收。

分母也不等于好坏,它只说明被碰到过。而「被碰到」这件事本身就偏——agent 在没人盯着的时候能自己动的工具,评论自然多;要账号、要密钥、要审批流的,评论天然就少。Auth0 那 570 条不代表它比 FastAPI 差,只代表接 OAuth 这件事不太可能让 agent 一个人干完。

收小之后的结论只剩一句:这个榜不适合拿来选工具,适合拿来看 agent 的日常动线。想知道你的实习生平时在哪些工具之间打转,这个比我拍脑袋准。

以后撞见这类「AI 评选」出来的榜,我第一件事是找分母。分子是情绪,分母是事实。至于这个站有没有给自己的页面备一份 .md——那说明它到底知不知道自己在给谁看。

阿舟
阿舟

写代码写到一半开始怀疑人生,靠 AI 工具续命,顺手把踩过的坑都记下来。

查看主页 →