qm 深度评测:YC 开源的团队 Agent 外壳,49.1 万行代码立着「零注释」铁律,实测仍躺着 885 行注释

用 AI 写代码的人,多半都撞上过同一堵墙:代码产出快了,敢接手的人却少了。注释随手加、规矩靠自觉、审查全凭手感,没人说得清”这套规矩今天到底有没有被守住”。

YC(那家孵化器)把自己内部在用的 Agent 外壳开源了,叫 qm,76 天冲上 1.5 万 Star。它立了一条开源圈少见的铁规矩:仓库里不许有注释。 我把它搬进隔离沙箱实测:49.1 万行 TypeScript 代码,躺着 885 行注释;但真正会掩盖问题的那两类坏注释——待办标记和类型屏蔽指令——是 0 条。

它到底是什么

一句话:qm 是给一个团队、而不是一个人用的 Agent 外壳。所谓”外壳”(英文 harness),也就是套在大模型外面、负责跑工具、管上下文、记账的那层壳。

市面上多数 Agent 是按”个人助手”造的,想放大到全公司很快就失控:记忆混在一起、权限说不清、谁占了什么资源查不到。qm 反过来,它一开始就假设用的人是一整个公司——每个员工有自己的独立空间,同时还能在频道、群聊、项目里跟 Agent 一起干活。

它管这块独立空间叫”作用域”(scope):计算、记忆、文件、定时任务、小应用各自分开,想跨过去必须走一道明确可查的授权。

再往里一层,是它最有意思的设计,叫”会话磁带”(session tape)。可以把它想成一本只许往后写的账本:每一轮对话、每次工具调用、每条结果,都按顺序记下来,进程在任何时刻被打断都扛得住,照着账本重放就行。它的设计文档列了五条”北极星”,其中两条是”快就是最好的功能”和”删代码优先于加代码”。

它能干什么 具体覆盖
个人空间 每人一块隔离的工作区、记忆、文件、定时任务
协作 频道路由、群消息、项目共享、技能共享
后台任务 定时任务、循环任务、外部回调
换引擎 编码助手可换(Pi、Codex 这类现成的),模型也可换
界面 同一份会话,Slack 和网页都能看

零注释这条铁律,我照着数了一遍

先交代条件:全程在一台隔离沙箱里跑,被测项目拷进沙箱自己的工作目录,宿主机的凭证和目录都挡住,机器只有 1.9G 内存。命令和结果都可复现。

我跑的命令 结果
数 TypeScript 文件与总行数 1978 个文件、491,540 行
数 src/ 下的文件与行数 553 个文件、138,394 行
数以行注释符号或块注释符号开头的行 885 行(src/ 里 549 行,集中在 72 个文件)
搜待办标记 TODO / FIXME 0 条
搜类型屏蔽指令(ts-ignore 这类) 0 条
跑它自己的自审脚本 退出码 1,提示 PR 缺”自审报告”段

“零注释”不是口号,是写进规范的两条硬话。一条明说:”标准就是零注释——不写解释性注释和文档块,不留待办标记,不加类型屏蔽指令,不保留注释掉的代码。”另一条解释为什么这么极端:”注释在历史上强化了代码漂移,还给后续的 Agent 留下了’奖励式取巧’的掩护。”

885 行放在 49.1 万里只占 0.18%。我更在意的是那两类真会出事的注释——待办标记、类型屏蔽指令——一条都没有。换句话说,这条几乎不可能 100% 达成的铁律,实际达成率 99.8%,漏网的基本是解释”为什么这么写”的说明,不是掩盖问题的补丁。

它给自己也立了 19 面镜子

更少见的是它的”认错档案”。规范文档里专门有一节叫”耻辱墙”(Wall of shame),把自己历史上犯过的错分类挂出来,一共 19 面镜子,从”过度工程”到”打补丁式修复”再到”格式匹配写太多”。其中 7 面标着”每个合并请求必审”,意思是这几类错最容易复发。(合并请求即 PR,别人改代码要先提这个,通过审查才能并进去。)

它不只是记录,还做成了闸门。仓库里有个脚本专门检查每个合并请求里有没有附上一份自审报告,缺了就直接让流水线红掉——我把它克隆下来跑了一遍,退出码 1,报错很直接:”PR 描述里没有自审报告段”。这说明这套自我约束不是墙上标语,是真的接了电的。

规模也摆在那:1978 个 TypeScript 文件对应 724 个测试文件,7770 个测试用例、近 3.1 万处断言;6 条持续集成流水线;39 份设计文档、25 个自带技能、35 个沙箱后端相关文件;已合并的请求 904 个,编号已经排到 2264。光是 10 月 12 到 14 日这三天,就提交了 51 次。

翻车点也说全,三条。一是它还是 0.1.0 版本,项目自己写明这仍是一场”早期实验”,接口不保证稳定。二是它的文档里自曝过一个体验问题——一个余额不足的用户被拒绝时,界面上只显示”这轮失败了,详情看操作员错误日志”,而那个用户根本没有这个日志。三是它的完整测试套我没能跑起来——它要求 Node 24.15 以上,我的沙箱是 Node 22,还要另起一个 Postgres 数据库,所以那 7770 个用例我只数了数字、没有实际执行,这一点如实说明,不拿它凑数。

同类里它站在哪,谁该用它

同类可粗分三路。字节的 DeerFlow 走”深度研究”路线,把多个检索步骤串成一条流水线;国产的 CowAgent 走”全栈自托管”,从网页界面到后台一把抓;再有一类专攻单点,比如只做 Agent 的记忆。qm 的差异在”多人”这一层:它把每个员工、每个频道切成独立的作用域,再叠上一本可重放的会话账本,解决的是”一个公司共用一个 Agent 时不打架”。它的不同还在于把”自查”本身做成了必过的闸门,而不只是一份建议。

适合谁:想让整个团队共享一个 Agent、又必须把每个人的数据和权限分清的团队;自己维护模型密钥、要求本地部署的公司。

先别急的两种人:一是要稳定接口接进核心系统的——它自己标着早期实验;二是图省事的个人用户——你得自己准备数据库和服务器,它不是一个装完就能聊天的小工具。

我的判断

qm 是目前少见的”把工程纪律当产品做”的 Agent 外壳:零注释、耻辱墙、19 面镜子、7 面必审、一道真跑得起来的闸门,这些都不是营销词,是能 clone 下来一条条核的。它立了一条几乎不可能 100% 守住的铁律,实测守住 99.8%,漏网的全是解释性说明——这比”从没立过规矩”要诚实得多。值得放进观察清单,尤其是正在被”多人共用一个 Agent”搞烦的团队。

关注 AI商业快讯,每天一篇 AI 热点深度解读。

相关阅读:

发表评论