见好·旅行规划器深度评测:399 Star 的中文旅行攻略技能,25 项机械验收我实测挖出 4 个洞

见好·旅行规划器深度评测:399 Star 的中文旅行攻略技能,25 项机械验收我实测挖出 4 个洞

让 AI 做一份旅行攻略,最气的不是它不会写,是它写得像那么回事。

十天的行程排得整整齐齐,每天几点去哪、在哪吃、门票多少,一张表给你。你截图存进手机,到了地方才发现:那家店六点就打烊,你的表上写着「晚饭」;两个景点隔着半座城,中间只留了三十分钟;回程那趟车的班次,是搜索摘要编的。

问题不在 AI 会不会查资料,而在没人验收。你收到一份文档,它没有错别字,排版漂亮,你凭什么判断它能不能照走?

GitHub 上有个叫「见好 · 旅行规划器」的中文技能包,专治这件事。它 399 个 Star,9 月 23 日建仓,作者把整整 10 万字的工作流写成一份给 AI 看的使用说明书,里面配了 25 项自动验收检查(用脚本代替人眼逐项打勾)。README 的原话是「你也能一键验收 AI 有没有偷懒」。

我把这个仓库拷进隔离的沙箱跑了一遍。检查确实是真能跑的,但好几处标着「通过」的地方,其实是没检查。这一篇就讲清楚:它哪里值得抄,哪里还不能信。

—

它到底是什么

先说清楚「技能(skill)」是什么:它是一份给 AI 读的工作说明书。你把它放进 Claude Code 这类 AI 工具的技能目录,AI 下次遇到「帮我做个攻略」就会先读这份说明书,按它规定的流程干活。

绝大多数这类说明书只写「怎么做」。这个包不一样,它花了大量篇幅写三件事:

部分 内容 实测数字
工作流主体 从问需求到出成品,分 7 个阶段 阶段 0 到 5,含一个 3.5
硬性约束 8 条不可违反的铁律 如实查、未核实必标注、动线不绕路等
交付验收 一个 Python 脚本,逐项检查成品 25 项检查,1 项需另装浏览器组件

那个验收脚本是它最特别的地方。你让 AI 做完攻略,AI 得跑一遍这个脚本,把输出原文贴给你。脚本会去数你这篇成品里:十个必备板块是不是都写了、每天是不是有早中晚三行饭、有没有留下「【目的地】」这种没填完的模板占位、手机上会不会横向溢出、每天配图是不是 2 张或 4 张、页面里的地图线条有没有画出框外。

这些项不是凭空想的。它每一条后面都挂着一句来源,比如「每天配图 2 或 4 张,禁 3 张」后面写着:配图区是两列网格,3 张就会排成「上二下一」的歪相。

这个思路是对的。把「感觉差不多」变成「机器数得出来的相等」,是这类文档最需要的护栏。

—

实测:25 项里,我挖出 4 个洞

我在沙箱里把仓库拷下来(5.7 MB,8 个 Markdown、5 个 Python),只做了一件事:用它自带的检查去检查它自己。

先给一句公道话:它仓库里那份「基准骨架」是填空模板,不是成品,跑出不合格是正常的,作者自己也在文档里这么说。所以我没拿这一点当罪名。真正的问题在这几处。

我做的事 它报的结果
数它到底有多少项检查 25 项(README 写 11 项,更新日志写 24 项)
把每天的时段卡全部删掉再跑 「时段卡时间线 ✅ 5 天时间戳升序(读到 0 个带时刻的时段卡)」
用关键词查它最新加的出境功能 签证、汇率、领事保护、时区、护照,一个都查不到
用它另一个版式校验脚本查它的基准骨架 不合格,退出码 1
看它的提交闸门允许哪些文件 它自己这版新加的工具不在白名单里
不带参数跑它新加的预抓工具 直接报错崩掉,没有用法提示

拆开说三条最值得注意的。

第一,零样本也算通过。 我把每一天的时段卡整段删掉,只留空的日期区块,再跑检查。它照样给「时段卡时间线」打勾,理由是「读到 0 个带时刻的时段卡」——读到 0 个,就没有乱序,也没有重复,于是通过。

这不算它没想过。它在这个脚本的更新说明里,亲口记着一模一样的翻车:以前删掉全部日期区块,脚本会报「0 天全齐」,它为此专门加了一条前置校验,现在 0 天直接判不合格。它认出了这个病,只治了一处。

第二,它最新、最重磅的升级,验收环节一条都没跟上。 10 月 19 日的版本把「出境能力包」列为本轮最大更新:签证体检卡、出入境双清单、双币种预算、领事保护区块、时差换算、插头制式。整个版本说明里写了六七段。

我在验收脚本里逐个搜这些词,命中 0 次。也就是说,一份出境路书漏掉签证倒排时间线、漏掉领事保护电话,那 25 项检查一项都不会响。

它自己在脚本注释里写过一句诊断,我认为是整份代码里最清醒的一句话:翻车全都发生在「条款有、检查器没有」的形态层。这次它自己也踩进了这句诊断里。

第三,它的校验脚本会判自己不合格。 包里还有一个「版式一致性」校验,拿基准骨架当唯一真值,比对新成品和它是否一致。用它去查基准骨架本身,结果是退出码 1,理由之一是「样式块 1 个,应为 2 个」。根因是那个「第 2 个样式块」被写在了 HTML 注释里,脚本数样式块时会先剥注释,判断「该有几个」时却按整份文件算——两边口径不一致。

还有两处小的:交付给仓库的推送闸门里,允许上传的文件清单只列了旧的三支脚本,这一版新加的预抓工具不在其中,照它自己的规则这个文件推不上主分支;报错提示还让人「先更新 GIT.md 的白名单」,而仓库里根本没有 GIT.md 这个文件。

—

但有一件事,它做得比大项目好

上面这些挖得越细,我越想说另一边。

这个仓库有一份 5.5 万字的「翻车实录」。不是宣传语,是事故档案:哪一版把 93KB 正文压成了摘要、导致条款全丢;哪一版手机端工具条把正文最后一行挡住了;哪一次图片检查因为没滚动触发懒加载,把 10 张图里的 4 张误判成死图;哪一次地图的路线端点在框里、路径却绕出框外 10 像素。

每一条规矩背后都挂着一次真实事故,而且是作者自己写下的、不体面的那种。

对比一下站内刚评过的同类:同样是自带检查的项目,有的 13 道校验跑完全绿,同时打印 409 条警告、一条都不拦;有的 1020 个测试全绿,我复现 6 个基准只对上 5 个。「闸门全绿」这件事本身不值钱,值钱的是闸门敢不敢红。

这个包的闸门是敢红的。它跑自己的基准骨架,25 项里直接判 8 项不合格、退出码 1,还把每一处不合格标出位置和修法。很多项目的验收脚本,出厂设置就是「全绿」,因为红了不好意思。

它还有两个细节看得出是真做过东西:一是给页面样式算了个指纹,派生新稿时样式一改就会被抓出来;二是查占位符之前,先把内嵌图片的二进制数据剥掉——因为图片数据里可能碰巧出现「TODO」这类字符,造成假报警。后者是吃过亏才会想到的。

再加上一组外部数据:作者说这个项目的抖音介绍视频播了 12.6 万次、收藏 2889(他标注截至 9 月 30 日,我无法核实,仅作参考)。

—

谁该用,谁别用

适合你的情况:你自己用 AI 写旅行攻略,写完想有个客观标准判断「能不能照着走」。把这套检查拿过来,改掉里面的城市前缀,就能用在你的成品上。或者你在写自己的技能包,想看一份把「验收」当正事的样本怎么组织。

不适合的情况:你以为装上它,AI 就会自己做出一份能直接出发的攻略。它的定位是流程和验收,真正的信息还是得 AI 联网一个个查,查不到就得如实标「未核实」——这一点它自己也反复强调,而且把「禁编造」写成了铁律第二条。

还有个体量上的提醒:10 万字节的单文件说明书,加上 5.5 万字档案,对 AI 的上下文是真金白银的开销。它在文档里专门立了一条规矩,禁止把这份说明书压缩成摘要,因为压缩就会丢条款。这是诚实的取舍,但代价也要你自己承担。

—

我的判断

值得放进观察清单,不建议直接当生产工具用。

它解决的是这类 AI 产物最缺的一环:验收。25 项机械检查、事故档案、敢判自己不合格,这三样在 399 星的小仓库里出现,质量明显高于星数。

但要真拿它交付,有四件事得自己补:检查项数按脚本实际输出为准,别照文档写;「读到 0 个样本」类的检查要人工复核有没有漏检;出境章节完全靠人眼盯;版式校验脚本跑在自己仓库上会误报,别被它吓到。

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

相关阅读:

  • [laya 深度评测:7 天 2.35 万 Star,6 张基准表逐格复现](https://www.geeyo.com/laya-%e6%b7%b1%e5%ba%a6%e8%af%84%e6%b5%8b%ef%bc%9a7-%e5%a4%a9-2-35-%e4%b8%87-star-%e7%9a%84%e5%86%b3%e7%ad%96%e5%bc%95%e6%93%8e%ef%bc%8c6-%e5%bc%a0%e5%9f%ba%e5%87%86%e8%a1%a8%e6%88%91%e9%80%90/

评测环境:隔离沙箱内克隆仓库(bwrap 命名空间,无宿主家目录),所有检查在沙箱内断网运行。数据截至 2026-10-21。

ECC 深度评测:28.5 万 Star 的 Agent 操作系统,13 道校验全绿却放行 409 条警告,98 篇跨平台副本已漂移

ECC 深度评测:28.5 万 Star 的 Agent 操作系统,13 道校验全绿却放行 409 条警告,98 篇跨平台副本已漂移

GitHub 上有个 28.5 万 Star 的仓库,叫 ECC。它给自己的定位很硬:不是又一个提示词合集,而是「AI 编码助手的操作系统」——71 个子智能体、311 个技能、97 个命令,装一次,让你的编码助手按一套工程流程干活。

仓库的自我要求也硬。它配了 13 道自动检查,提交代码时全部跑一遍。我把它拷进隔离沙箱,先跑了一遍:13 道全绿,45 秒跑完。

然后我开始动手改。按它的贡献指南,每个技能都必须写「什么时候该用我」和「别这么做」两节,我就把一个技能的「什么时候该用」整段删了;又挑了一个技能,把正文全清空,只留文件开头那几行元数据;再把这 311 篇技能里 30 篇的简介全换成一句「A skill.」。

四处改动,13 道闸门一次都没响。

—

它到底是什么

ECC 不是单个技能,更像一个中台。装进 Claude Code、Codex、Cursor 这类编码助手后,它提供四层东西:

层 数量 干什么
子智能体(agents) 71 个 分别负责规划、代码审查、构建报错修复、安全审查、各语言专项
技能(skills) 311 个 按需加载的工作流,从测试驱动开发到 Python、Go、Spring Boot 各框架规范
命令(commands) 97 个 斜杠命令入口,仓库自己标注为「过渡期兼容层」,正在往技能迁移
规则(rules) 122 条 按语言和项目类型挑选的常驻约束

先给一句公道话:这些数字全是真的。我在沙箱里数了一遍目录,71、311、97、122,与 README 写的逐项对得上——很多号称几万 Star 的项目,README 里的数字是上个季度的。ECC 的自检脚本 catalog:check 专门盯这一条,我把 README 里的 311 改成 999,它立刻亮红灯拦下。

它还做了一件同类项目很少做的事:把自己的失败写进文档。仓库里有一份「提问有效性」的实验报告——作者拿 6 个藏了坑的编程任务做对照,四个组跑了 72 次真实会话,结果四组全部满分通过,什么也没测出来。报告里直接写「这次实验没有提供任何信息」,并分析了三个原因:坑都藏在仓库里、实验时关掉了向用户提问的通道、测试用例是按闸门自己的问题分类写的因此注定通过。这份诚实,比大多数评测报告值钱。

—

实测:闸门守的是什么

先说常驻成本,这是装之前最该知道的。

311 个技能的简介会全部塞进助手的上下文,因为助手得先知道有哪些技能,才能决定加载哪个。我实测这 311 条简介合计 10 万字符,按英文四字符一个词元估算,约 2.5 万词元常驻。词元(也就是模型计费时说的那种字数单位)在场的每一轮对话都要重新计费。对一个每天开十几个短任务的人来说,这是纯开销。

如果 311 篇正文全部加载,是 73 万词元——当然设计上不会全加载,但这也说明「311 个技能」不是一个轻量的承诺。

再看内容厚度。311 篇技能里,269 篇的目录里只有一个说明文件,没有任何脚本、模板或附件。真正带可执行脚本的只有 23 篇。这不是罪状——很多技能的价值就是一份写清楚的流程文档——但它解释了为什么 2.9 MB 的正文撑起了 311 这个数字。

13 道闸门实际放了 409 条警告。 这个数字是我跑 npm run test:validators 得到的:退出码 0,同时打印 409 条提示。拆开看,160 篇技能缺「什么时候该用我」这一节,211 篇缺「别这么做」这一节,37 篇正文超过贡献指南规定的 500 行上限。

这些闸门本身写得没问题,问题在于它们的出厂设置:全部按「建议」处理,只有加 --strict-checklist 才升级为「错误」。我加上这个参数再跑一次,同样的 409 条立刻变成 409 个错误,退出码 1。也就是说,仓库自己写下的规矩,默认状态下一条都不会拦人。

于是就有了开头那组注入。五处改动,只有一处被拦:

我改的地方 闸门反应
README 里技能数 311 → 999 拦下(catalog:check 报错)
删掉一个技能的「什么时候该用我」整节 放行
把一个技能正文清空,只留 324 字节元数据 放行(三道检查全绿)
改掉技能的内部名,塞进只在 Claude 下有效的变量 放行
30 篇技能的简介全替换成「A skill.」 放行

被拦的那一处,恰好是「数字」——catalog:check 会拿 README 里的计数和实际目录数比对。它守的是数量和结构,不守内容。一份技能文档是三千字还是一句话,在它眼里没有区别。

这不是疏忽,是个工程取舍:文档写得好不好,没法用脚本判定。但取舍的边界应该写清楚——贡献指南把这四节列为「必填清单」,闸门却全部降级成建议,这中间的落差,读者容易误解成「不写也没事」。

—

更值得说的问题:副本已经漂了

ECC 支持十几种编码助手。它的做法是:仓库根目录的 skills/ 是唯一真源,其他平台的目录(给 Codex 用的 .agents/skills、给 Kiro 用的 .kiro/skills、给 Cursor 用的 .cursor/skills)打包或映射同一批文件。README 写得很明确:「根目录是真源,平台适配器打包或映射这些同样的工作流,而不是维护独立副本。」

我按字节比对了一遍:

副本目录 篇数 与主库逐字节一致
pi/core/skills 132 131
.agents/skills 46 5
.kiro/skills 43 0
.cursor/skills 12 0

pi 那一套几乎完美同步,说明同步机制是存在的、能用的。但另外三套——合计 101 篇——只有 5 篇还对得上。差异不是改几个字,是整节消失:25 篇副本里丢了整节内容,其中 8 处丢的是「不可信来源」这类段落。

举个具体的。主库的深度研究技能里有一节专门写:网页抓回来的内容全部是「攻击者可以控制的东西」,页面里出现「忽略你之前的指令」这类话,只能当引用、不能当命令执行。给 Codex 用的那份副本,这一节没有了。同一个缺失出现在市场研究技能上,给 Cursor 用的副本也一样。内容创作技能的「硬性禁令」一节,在 Cursor 副本里也消失了。

这些段落不是文风问题,是防提示注入的安全约束。三个平台的用户,拿到的是少了这道防线的版本,而没有任何检查会发现这件事——我试着把副本改回和主库一致,闸门毫无反应,因为它根本不比对副本。

还有一个更小的细节,能说明「真源」的边界在哪。日语版本里有 32 篇技能,每篇都是 11 行的占位符,正文写着「翻译进行中」,末尾指向一个本地路径 D:/tmp/ECC/...——那是作者自己电脑上的盘符。仓库有一条检查专门防止这种本地绝对路径泄漏,但它只认 Mac 和 Windows 用户目录两种格式,D:/tmp 这种盘符根部路径不在它的识别范围里。这 32 篇占位符,随包进了 npm 分发包。

—

同类里的位置

这条赛道上,ECC 走的是「大而全」那一头。之前评测过的 mattpocock/skills(27.4 万 Star)是 27 个技能、688 KB,走的是少而精;addyosmani/agent-skills(9.9 万 Star)是 25 个工程技能;i-have-adhd 是单点解决输出样式。ECC 反过来:把你能想到的语言、框架、流程全铺一遍,311 个技能铺满,用「总有一个你用得上」换取覆盖面。

代价就在上面那几组数字里。铺得越宽,单篇被校验的深度就越浅;支持的平台越多,副本漂移的面积就越大。MIT 协议、单月 5.2 万次 npm 下载、1778 次提交的主作者加上 500 多次的第二贡献者——这是一个真在高速迭代的项目,而高速迭代和「每份副本都跟主库一致」天然冲突。

适合谁:刚给编码助手上手一套工程流程的人。它的规划、测试驱动、审查三段式确实成体系,71 个子智能体里挑几个常用的,比自己从零攒提示词快得多。规模是真的,这点不用怀疑。

不适合谁:只想装一个轻量技能的人。2.5 万词元的常驻索引,对偶尔用一次的人是负担。以及,如果你用的是 Codex、Kiro 或 Cursor——你拿到的那份副本,可能比主库少了点什么,而没有任何东西会提醒你。

—

我的判断

值得看,但要按「一套规模很大、质量参差的工程模板」来理解它,而不是「一个自带质量保证的体系」。

它最值钱的地方恰恰不是那 13 道闸门,而是那份把自己实验做失败、然后老实写下来的报告。一个愿意公开「这次什么也没测出来」的团队,比一个宣称「13 道闸门全绿」的团队可信得多——后者只能说明结构和数量没坏。

真要用得踏实,建议补三件事:一是把 --strict-checklist 打开,让那 409 条警告真的变成错误,否则你写的技能可以是一句空话;二是如果你用的是非 Claude 平台,以主库的 skills/ 为准,别信副本;三是装之前先算一笔账,2.5 万词元的常驻索引,值不值。

28 万 Star 买的是覆盖面。而覆盖面这件事,从来不承诺深度。

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

相关阅读:

context-mode 深度评测:3.1 万 Star 的上下文插件省 98% 是真的,19 条泄洪命令实测 16 条放行

context-mode 深度评测:3.1 万 Star 的上下文插件省 98% 是真的,19 条泄洪命令实测 16 条放行

你大概撞过这堵墙:用 AI 编码助手干活,聊上半小时它开始「失忆」——刚改过的文件忘了,刚才的任务忘了,你上一条消息也忘了。很多人以为是模型不够聪明,其实更常见的原因是上下文被工具输出撑爆了。一次日志查询、一次跑测试、一个网页抓回来,几十 KB 的原始数据就这么灌进对话窗口。

有个 3.1 万 Star 的开源插件专门堵这个口子,名叫 context-mode(可以理解成「上下文模式」)。它的说法很硬:把大块数据关起门来处理,只让结论回到对话里,能省下 98% 的上下文。我把它拷进隔离沙箱翻了一遍:这个数字是真的,我手里几份样本甚至更省。但同样在这次实测里,它承诺的「自动拦截」只覆盖了 19 条常见命令中的 2 条。

它是什么

context-mode 是装给 AI 编码助手用的插件,Claude Code、Cursor、Codex 这类工具都能装。它主要想解决两件事:

  • 别让原始数据进上下文:给它一段代码,它在单独的子进程里跑,只把打印出来的结果交回来。
  • 别让对话失忆:把每次文件改动、命令、决定记进本地数据库,压缩对话后还能按关键词搜回来。

它还有一路「检索式」用法:先把文档、日志切块存进本地全文索引,需要时按问题搜出相关片段,而不是整篇塞进去。

真正值得看的是它拦什么、放什么:

它想管的事 它的做法
抓网页(curl、wget、WebFetch) 改写成一句提示,让你改用沙箱里的抓取工具
内联发网络请求 同样改写成提示
gradle、maven、sbt 构建 改写,让你把构建放进沙箱跑
读大文件、全文检索、跑测试、看日志 只在你第一次触发时提醒一句

实测:省下的数字站得住,拦下的命令站不住

先说省。它仓库里放了 21 组真实样本——一份 85.5 KB 的埋点表格、一份 45.1 KB 的 nginx 访问日志、一份 58.9 KB 的 GitHub issues 导出。我用它自带的执行器跑了一遍:

样本 原始 进上下文 节省
埋点表格(500 行) 85.5 KB 79 字节 99.9%
nginx 访问日志(500 条) 45.1 KB 92 字节 99.8%
GitHub issues 导出 58.9 KB 17 字节 99.9%
git 提交历史 11.6 KB 11 字节 99.9%

这个方向没得挑。它给你一个子进程,你写几行代码把统计做完,窗口里只留一行结论。我另外试了「检索式」那一路:四份文档共 32.7 KB,三个问题各取回三条片段,进上下文 5.59 KB,省 82.9%,和它文档里给这类用法标的 82% 基本吻合。问文档里根本没有的东西(比如「怎么部署到 k8s」),它会返回零条,不硬凑。

省是真省。问题出在它承诺的另一半:它说装上钩子就会「自动拦截」,之后不用你操心。

我把它的路由逻辑单独抽出来,喂了 19 条最典型的命令,结果是这样:

我喂的命令 它的反应
curl -s https://… 直接把网页打到屏幕 拦下,改写
curl -s -o 文件 https://… 存成文件 放行
tail -n 2000 日志(第一次) 追加一次提示
同一条 tail(同会话第二次起) 放行
grep -rn ERROR src/ 放行
find . -name '*.ts' 放行
ls -R src/ 放行
git log -p -n 200 放行
gh pr view 123 --json body,comments 放行
kubectl logs --tail=5000 放行
docker logs 容器名 放行
cat 一个大文件 放行
npm test / npm run build 放行

19 条里,改写拦下 2 条,只提醒一次 1 条,其余 16 条原样通过。

这不是我挑得刁。它的设计就是这样:只在「结构上一定短小」的命令上主动放行(比如 pwd、git status),其余走一句「建议用沙箱」的提醒,而且每个会话只提醒一次。也就是说,第一次 tail 之后,助手再查多少次日志,它都不再吭声。真正能改变行为的只剩提示词,而提示词管不住它读不读日志。

这里还有一层措辞值得说清。它宣传里的「沙箱」只是另起一个子进程,并没有把文件和网络隔开。我在里面读了系统用户文件、读了家目录下的文件、往临时目录写了东西、还抓了一次公网,全部成功。这本身不算毛病——它要的是「数据不进口上下文」,不是「防住恶意代码」。但读者很容易把「沙箱」理解成后者,文档里「完全隔离」的说法撑不起这个想象。

它自己的文档,九处改动一处没响

一个项目可不可信,最后看它有没有本事守住自己的话。我把它的仓库当成被测对象,做了两组注入。

第一组改代码:把工具名前缀改错、把抓网页的拦截整段拆掉、把函数返回类型改错、让版本号只改一半。四道闸门——类型检查、打包产物断言、插件入口检查、单元测试——四发四中,全红。

第二组改文档,一次只动一处,跑同一套闸门:

我改的地方 闸门反应
首页主标语「98%」改成「99.9%」 全绿
基准报告的总节省 96% 改成 99.9% 全绿
把基准报告里 20 行实测数据整段删掉 全绿
测试总数 125 改成 1250 全绿
安装量徽章 69.97 万改成 990 万 全绿
技能说明里「拿不准就用它」反写成「拿不准就用原始命令」 全绿
平台表里把 Claude Code 从「有钩子、省 98%」改成「无钩子、省 0%」 全绿
隐私段「不上传任何数据」改成「默认采集遥测」 全绿
许可证从 ELv2 改成 MIT(和仓库里的许可文件矛盾) 全绿

九处,零拦截。仓库里没有一条测试或脚本拿基准报告和首页当数据源——它守的是代码能编译、打包没坏、版本号一致,唯独不守「我们宣称自己做到了什么」。

这组数字本身也有松的地方。基准报告开头写「21 个场景」,两张表加起来只有 20 行。总账写「376 KB 变成 16.5 KB,省 96%」,按它自己的分项算出来是 95.6%,四舍五入到 96 需要一点善意。有一行「网络请求」标 13% 节省,按原始字节算是 14.8%。另有两行标着 100%,实际分别还剩 155 字节和 222 字节。都是小账,但一份用来佐证「98%」的报告,小账该更紧一点。

顺带说一句首页。顶部有一排企业徽章——微软、谷歌、Meta、亚马逊等 18 个名字,底下写着「以下团队在用」。那 18 个链接全部指向空锚点,点不动。这不是造假证据,但也不是能点开的证据。

同类里的位置

省上下文这条道上,它站的位置很特别。之前评测过的 caveman(10.8 万 Star)走的是「让 AI 少说废话」:用提示词约束输出,省下的主要是模型自己的啰嗦,官方简介写省 65%、自家文档只认 8.5%。context-mode 不碰说话方式,它搬走的是工具塞进来的数据——这是另一半,也是更硬的一半。

再往前看,Graphify(12.5 万 Star)用代码知识图谱省调用费(也就是模型按字数计的额度),官方宣称 71.5 倍、我复算 38.3 倍;agentmemory(2.9 万 Star)做记忆,官方 95.2% 的「答案找齐」率换成实际评测只剩 81.8%。这条道上的共同点是:省的量级大多能复现,宣称的精度普遍要打折。context-mode 在这一点上算体面——它的 98% 我复出来在 99% 以上,方向没错。

代价也有。装上钩子后,每个会话开头会注入一段约 6800 字符的行为规则(英文约 1700 个词元,也就是模型计费时说的那一种计量单位)。对一次长会话不算什么,对一堆短任务就是纯开销。

适合谁:每天用 AI 编码助手处理大量日志、测试输出、网页抓取的人。子进程和本地检索确实能让窗口干净很多,省下的量我能复现。

不适合谁:指望它「装上就自动管住助手」的人。它真正硬拦的只有抓网页和三种构建工具;其余靠一句每个会话只出现一次的提醒。想让助手老实走沙箱,还得在项目规则里自己写死——这恰恰是它想替你省掉的那件事。

我的判断

值得装,但别按宣传理解它。把它当成「一个更好用的数据处理器加一块本地检索库」,你会很满意:一份 85 KB 的表格进去,79 字节的结论出来,这一手确实漂亮。把它当成「上下文守门员」,你会失望——门装了,大部分时候只是挂在那儿。

真要用得踏实,建议补两件事:一是把「读日志、跑测试、看 diff 必须走沙箱」写进你自己的项目规则,别指望钩子;二是装完后拿它给的那份基准报告,对着手头的真实任务复一遍,看省下的比例还在不在同一量级。

省 98% 是它最好的一张牌,而这张牌恰恰是它自己最没闸门守的一张。

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

相关阅读:

humanizer 深度评测:5.8 万 Star 的反 AI 味技能,204 条禁用词我逐一核过,146 行检查脚本却只查打包

humanizer 深度评测:5.8 万 Star 的反 AI 味技能,204 条禁用词我逐一核过,146 行检查脚本却只查打包

你大概见过这种句子:「这不仅仅是一次更新,更是一个时代的开始。」读起来顺,但就是不像人写的。有个 5.8 万 Star 的开源技能专门治这个病,名字叫 humanizer(可以理解成「给机器文字做人味」的写作技能)。它把「AI 味」拆成 26 种可以指认的毛病,一种一种改。我把它拷进隔离沙箱翻了一遍:这份规则清单写得确实漂亮,光是写死的禁用词与短语就有 204 条;但我也顺手测了它唯一的一道自动检查,发现它压根不管句子。

它是什么

humanizer 是一个装给 AI 编码助手用的写作技能。装进 Claude Code 这类工具后,你丢一段文字给它,它按规则找出 AI 痕迹,再改写成更像人写的样子。整个仓库只有 15 个文件、238 KB,几乎全部价值都集中在那一份约 5200 词的说明文档里,外加一份 146 行的打包检查脚本。

真正值得看的是它盯上了哪些毛病:

毛病 它的例子
先扬后抑的对比句 「这不只是一个功能,而是一次升级」
一句一段的收尾句 「这说明了一切。」
假装深刻的短句 「说到底,真正重要的是……」
三段排比、满篇破折号 硬凑三项、把连接号当成万能胶水
夸大的意义、模糊的引用 「标志着关键时刻」「专家们认为」
聊天残留 「好问题!」「希望这能帮到你」

它给 26 条规则各配了一份「盯防词表」(也就是一份写死的禁用词清单)。我把这些词表全部抽出来数了一遍:26 条里有 18 条带表,合计 204 个词或短语。这份表的意思很直白——这些词你在稿子里一用,就等于自报家门。

实测:它的闸门只管打包,不管句子

这里有个缝。词表是写给「读文档的人或模型」看的,不是给机器执行的——仓库里没有任何测试或评测脚本,唯一能跑的程序是那份 146 行的打包检查。它跑得很快,会确认四件事:几个清单文件里的版本号一致、README 和说明文档里的 26 条编号对得上、说明文档没超过 5500 词。做完这些,它就报「包是好的」。

我把它的原版检查拿来当尺子,往仓库里灌了 11 处缺陷,看它抓不抓得住:

我注入的缺陷 检查结果
清单版本号改成 3.1.1,与其它文件不符 抓到
README 里一条规则的名字改了一个词 抓到
说明文档灌到 5619 词 抓到
把一整段 AI 味文字写进说明文档正文 放过
把连接号、弯引号写进说明文档(违反它自己的第 8、21 条) 放过
把「改前改后」里已经改好的句子,改回带连接号 放过

11 处里,它抓到 6 处、放过 5 处。抓到的全是「打包整不整齐」,放过的全是「句子本身违不违规」——而后者恰恰是这个技能存在的理由。

我又用它的尺子量了它自己的示范。它给 26 条规则都写了改后范例,我把这些范例抽出来,拿别的规则的盯防词表去搜,命中 3 处:一条规则的示范改写里,用了另一条规则明令删掉的词。都是小毛病,但方向有意思——连它自己也没法用机器守住自己的词表,因为改稿这件事,最终还是要靠模型读懂规则、照着改。

第三方盲测说了同一件事

仓库里挂着一个志愿者跑的盲测(issue #229),结论和我的观察在同一条线上。让评委在不知道作者的前提下二选一,humanizer 的改写在 16 次对比里全胜;把 AI 常用词清掉的效果很干脆——评委点名的「AI 词汇」从 70 次降到 0 次。但另一组数字没那么好看:句子的节奏反而更齐整,被点名的「节奏类」痕迹从 60 次涨到 101 次。这位志愿者还实测了 100 篇 AI 文本的去检测效果,改完仍被识别出 97.8%。

作者本人在同一个帖子里的回应很干脆:绕过 AI 检测不是这个仓库的目标,它也从没声称能做到。这话是诚实的,网站首页现在也写着「给人类读者改稿,不追求骗过检测器」。

同类里的位置

同类还有几个,位置各不相同。中文圈有一个从它移植的分支,把 26 条缩成 24 条来适配中文(本号此前实测过,当时它还没公开过基准测试);另一个走「极简规则」路线的反 AI 味技能 stop-slop,规则少到能被机器完整执行,代价是停更了很长时间(本号 9 月评测过,它的改后范例自己就违反规则)。humanizer 站在两者之间:规则最全、更新也最勤,上周还有新提交;代价是规则再全,也得靠模型读懂了照着改,没有机器替你验收。

适合谁:经常用 AI 起草、又想让文字读起来像自己写的人。不适合谁:想靠它躲开 AI 检测的人——它自己和第三方实测都说了做不到。

我的判断

把它当一份「写作体检清单」用,很值。204 个盯防词一摆出来,你会立刻认出自己稿子里的 AI 味,这比任何抽象的「别写出 AI 感」都实在。别把它当自动净化器:它没有能力、也没打算替你验证规则有没有被执行。真想让它省事,得自己在流程里补一道闸门——改完再查一遍,用词表当尺子。

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

相关阅读:

—

评测数据截至 2026-10-19,取自隔离沙箱内 clone 的 blader/humanizer 主线(版本 3.1.0);第三方的盲测与检测数据来自仓库 issue #229 及其复现仓库,未由本站复跑。

DeepSeek V4.1-Flash-1017 发布:552B 开源模型编程跑分反超 Claude Opus 5,权重免费开源、API 价格低至十六分之一

DeepSeek V4.1-Flash-1017 发布:552B 开源模型编程跑分反超 Claude Opus 5,权重免费开源、API 价格低至十六分之一

552B 参数的开源模型,在一个主流编程基准上拿到了 77.0 分——比 Anthropic 的闭源旗舰 Claude Opus 5 高 3 分,而调它一次的输入价格,是后者的十六分之一。

10 月 17 日,DeepSeek 把 V4.1-Flash 更新到 V4.1-Flash-1017,网页、App 和 API 同步换新,模型权重也按 MIT 许可放上了 HuggingFace 和 ModelScope。同一天它做了第二件事:把自研的网页搜索与抓取接口对外开放。对天天在搭 AI 智能体(agent,能自己调工具干活的程序)的开发者来说,这两件事叠在一起,意味着一个更便宜的编程模型和一个第一方搜索层,共用同一把接口密钥(API key)。

它强在哪,又输在哪

按 DeepSeek 自己公布的跑分,1017 版本在它列出的 11 项基准上全面高于上一版,涨幅 2.0 到 11.1 分。挑三格最能说明问题的看:

基准 V4.1-Flash-1017 上一版 Claude Opus 5
DeepSWE v1.1(编程) 77.0 74.2 74.0
Terminal-Bench 4.0(终端任务) 42.3 31.2 51.8
无工具 HLE(知识推理) 42.6 36.8 56.3

DeepSWE 这一格是重点:它反超了 Claude Opus 5。另外两格是它输的地方,而且输得不算小——一个考长时终端操作,一个考最硬的知识推理。

模型规格上,它是一台 552B 主干加 196B「Engram」条件记忆的混合专家模型(MoE,每次只唤醒一小部分参数来算),每生成一个词元(token,模型吐字的最小单位)只激活 8B(读入阶段)到 16B(生成阶段)。上下文 1M token,最长可输出 384K。价格表上,峰值时段每百万输入 token 收 0.30 美元、输出 1.20 美元,低峰时段再打对折。

为什么这件事值得单独看

第一层是价格。 闭源旗舰现在的挂牌价是 Claude Opus 5 的 5 美元/25 美元,GPT-5.6 Sol 促销期 4 美元/20 美元(标价 5 美元/30 美元)。DeepSeek 报的输入价 0.30 美元,约是 Opus 5 的十六分之一;输出价 1.20 美元,约二十分之一。这个倍数不是靠补贴撑的——它敢报这个价,是因为架构上把推理成本压下去了:全局 KV 缓存(模型记住上下文用的那块显存)降到每个 token 890 字节,只有上一代 V4-Flash 的四分之一;持久缓存那一部分压到约八分之一。

第二层是搜索。 DeepSeek 这次开放的搜索和抓取接口,定价每 1000 次成功请求 0.75 美元,失败和空结果不计费。对比一下 OpenAI 对网页搜索的报价是每 1000 次 10 美元,差十三倍。而 DeepSeek 说这套搜索是自研的,不调用外部引擎。对做智能体的团队来说,「模型 + 搜索」这两块过去要向两家分别付钱,现在压进了一家、一张价目表。

第三层是它没赢的地方,这恰恰更值得看。 无工具 HLE 的 42.6 对 56.3、Terminal-Bench 4.0 的 42.3 对 51.8——DeepSeek 在「从零把项目做出来」这类任务上追得很紧,在最难的知识推理和一小时级的终端长任务上仍明显落后。也就是说,开源阵营这次抢下的不是「全面最强」,而是「够用、且便宜一个数量级」这条线。对企业采购来说,这条线往往比榜首更有杀伤力。

一个补充视角是普通用户。官方把这版能力描述为「许愿式」编程:用一句话描述想要的完整项目,让模型从零搭出来,训练方法上用了带自我反馈的强化学习。

把它放回这一周

10 月 15 日 Meta 放出 Muse Spark Open,816B 参数;16 日阶跃星辰的 Step 5 Preview,600B;更早还有 Reflection 的 Beam,501B。这些全是开放权重,参数规模集体往上冲。DeepSeek 的 552B 在这一批里属于偏小的,但它的激活参数只有 8B 和 16B,其余几家没有公开到这个口径——这正是它能把 API 价格压到 0.30 美元的原因。

它的上一代 V4.1-Flash 是 9 月发布的,当时在 HuggingFace 上拿到了 130 万次月下载。从 9 月到 10 月的一次小版本更新,把 Terminal-Bench 4.0 从 31.2 拉到 42.3,涨了 11 分——这个幅度在基准的同一大版本里并不常见。

接下来看什么

这件事的真正分量不在 77.0 这个数字,而在它出现的位置:最高的一格压在闭源旗舰之上,最便宜的一格压在它自己上一代之下,而权重是免费下载的。

后面值得盯两个点。一是闭源阵营会不会跟进降价——如果 Opus 5 和 GPT-5.6 Sol 的价格不动,「便宜十六倍、跑分接近」就会持续压缩它们在智能体场景里的份额。二是 11 月 1 日搜索接口免费窗口关闭之后的实际用量,那才是这套「模型 + 搜索」打包能不能真正留住开发者的试金石。

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

相关阅读:

public-apis 深度评测:49 万 Star 的免费 API 清单,自带检查器报 624 条错、落进正文的只有 55 条

public-apis 深度评测:49 万 Star 的免费 API 清单,自带检查器报 624 条错、落进正文的只有 55 条

想给手头的小工具接一个免费数据源,多数人的第一反应都是去 GitHub 搜一份「免费 API 清单」。搜来搜去,基本都会落到同一个仓库:public-apis。近 49 万 Star,2016 年建仓,十年攒下两千多条接口。我把它拷进隔离沙箱翻了一遍,也跑了它自带的检查工具,撞见一处很难忽略的矛盾——这个仓库给自己配了一套格式检查器(也就是专门挑毛病的自动脚本),而这套脚本在仓库自己的主文件上,已经连续红了快一年。

清单就是产品,写代码的地方只有 23 个文件

先说清楚它是个什么。public-apis 不是软件,你没法安装它、也没有一个程序在后台运行。它的全部产品就是一个 Markdown 文件(README.md),一本两千多行的接口黄页。你想找天气、汇率、星座、公开财报、机场信息,翻这本黄页,按分类找到对应的接口,点进它给的官方文档。

去掉版本历史,整个仓库只有 23 个被跟踪的文件。绝大多数是图片和说明文档,真正算「代码」的只有四样:

组成 数量 干什么的
主清单 README.md 1 个,31.5 万字节、2679 行 就是那本黄页,52 个分类、2185 行表格条目
格式检查器 2 个脚本 检查每一条写得合不合规矩
自动检查的配置 3 个 让 GitHub 每次提交都自动跑一遍上面的脚本
脚本自测 2 个文件、31 条用例 验证检查器本身没写坏

所以它是一个「靠规矩维持的清单」。它给每条接口定了硬要求:分类内按字母排序、描述不超过 100 个字符、一次提交只能加一个链接、提交前先搜一遍有没有重复。这些规矩写在给贡献者的说明里,也写成脚本让机器执行。

这套机器分两层。上游是检查脚本,下游是 GitHub 的自动检查服务(CI,也就是每次有人提交代码,服务器自动跑一遍检查并把结果打回提交页)。过去十年,这个仓库的贡献者大多是路过的开发者,改一行加个链接就走。要维持两千条不出错,靠人盯是不现实的,只能靠机器。这是个很聪明的设计——省下的人工编辑,变成了两段脚本。

问题也恰好出在这里。

我跑了它的检查器:624 条报错,91% 跟清单内容无关

在沙箱里,我照着它的配置跑了一遍格式检查,结果是退出码 1,也就是「不通过」:全文件报出 624 条错误,分布在 129 行上。

六百多条听起来很吓人。但我把这 624 条按「报错落在文件的哪一段」摊开之后,结论完全变了:

报错落在哪 条数 占比 是什么
表格分隔行的写法 507 81% 机器没跟上清单的新写法
表头行、MCP 段、赞助段的表结构 62 10% 机器只认一种表格
主清单的条目行 55 9% 这才是清单正文

624 条里,只有 55 条落在清单正文上(9%);其余 569 条(91%)是检查器与清单格式演进之间的脱节。那 55 条也不是都白报——里面 30 条是「分类没按字母序」,真正要改条目文字的只有 25 条:12 条描述写超了 100 字上限,剩下是标题、标点、单元格空格这类小毛病,摊在两千多条里,属于正常磨损。

最能说明问题的是那 507 条,也就是占比八成的最大一块。Markdown 表格的分隔行有两种合法写法:|---| 和 |:---|(后者表示文字靠左排,渲染出来更整齐)。这个仓库近年把分隔行统一改成了带冒号的写法,而检查脚本里负责「跳过分隔行」的那一行判断,认的还是老写法。于是整整 47 行分隔行被当成了数据行去检查,每一行都报 5 条错,507 条错误就这么攒出来了。

中间那 62 条同理:仓库后来加了两张结构不同的表——放 MCP(简称,全称 Model Context Protocol,也就是让 AI 助手直接调用外部工具的一套通用接法)服务器的那张有五列(传输方式、安装入口),开头 APILayer 赞助区那张只有三列——而检查脚本只会按五列的规格去量每张表,量不了的就一路报错。

我做了个对照实验:只把 47 行分隔行改回老写法,其余一个字都不动,再跑一遍检查,报错从 624 条掉到 117 条,一下少了 81%。

顺便说一句,这不是检查器坏了。同一天我跑了它自带的单元测试——31 条全过。也就是说,工具本身的逻辑是好的,只是它对接的清单先演进了一步,脚本没跟着更新。

更值得说的:这个红叉,挂了快一年

一个检查常年失败的项目,为什么没人管?我去看了它的运行记录。

结果是:在 GitHub 的自动检查页面上,这个格式检查在仓库主分支上已经找不到一次成功记录。我把能翻到的记录都拉了一遍——838 次由提交触发的运行,失败 838 次,成功 0 次。GitHub 只保留最近约一年的记录,最早一条失败可回溯到 2025 年 11 月 4 日,更早的已经查不到。

对比之下,同一个仓库的单元测试在那段时间里全绿。

按常理,一个仓库的自动检查挂了,提交就该被拦住。但这里没有。我抽查了最近三个被合并的贡献(编号 #8000、#7999、#7998),合并的那一刻,检查结果全是红叉——红叉并没有挡住任何人。

原因不难猜:这两条检查被设成了「参考」,而不是「必须通过」。对维护者来说,红叉早就成了一种背景噪音,大家心照不宣地绕过去。

这就是整件事最有意思的地方:一套为了「用机器代替人工编辑」而写的检查器,最后变成了一个所有人都在忽略的摆设。它没有失效——它还在每天准点运行,还在输出结果——只是输出了快一年,没人再读。

它还值得用吗?值,但要会用

评价这类清单项目,得把「清单」和「清单的维护机器」分开看。

清单本身依然好用。两千多条里真正有问题的只有二十几条,不到 1.5%。按分类翻找、看有没有认证要求、支不支持 HTTPS 和跨域调用,这些列都在,省下的摸索时间是真的。它也是这套玩法的鼻祖——今天满大街的「Awesome 某某」清单,多半参考过它的表格格式和贡献规矩。

但它是「索引」,不是「保证」。清单只负责告诉你「有这个接口」,接口能不能用、要不要付费、限额多少,它一概不管。链接失效由另一个每天定时跑的脚本负责扫,和上面那个格式检查是两回事。

适合谁:想快速找一批候选数据源、做原型、写 Demo 的开发者;做技术选型时想先看全景的人。

不适合谁:想要「拿来就能上线」的稳定数据源的人——黄页只给电话簿,不保证对方一定接电话。用它找入口,用之前一定自己打一次。

顺着这个思路,站内还有几篇同样「把清单和证据分开看」的评测可以对照:想看成批技能的横评,可以翻 实测 12 款大模型能力增强 Skills;想看清单类内容怎么挑,可以翻 2026 年 8 月最热门 AI Skill 精选;关心成本和额度怎么算的,实测 9 款 Token 节省工具 那篇更直接。

结论:放进你的收藏夹,别放进你的依赖清单。它当好一本地图就够了,指路是它的本分,走路还得你自己迈腿。至于那个挂了快一年的红叉——它真正提醒的是另一件事:任何靠机器执行、靠人忽略的检查,最后都会变成没人读的噪音;检查要么能拦住发布,要么迟早沦为装饰。

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

OpenMontage 深度评测:6.89 万 Star 的开源视频流水线,139 个技能 12 条流水线,1357 项测试我全跑了

OpenMontage 深度评测:6.89 万 Star 的开源视频流水线,139 个技能 12 条流水线,1357 项测试我全跑了

用 AI 做视频的人,多半都被同一件事坑过:你把“帮我剪个 60 秒的片子”丢给编码助手,它回你一段像模像样的方案,最后端出来的却是一沓图片配背景音乐——也就是常说的“幻灯片”,不是视频。GitHub 上这个叫 OpenMontage 的项目,号称是“第一个开源的、代理化(agentic,也就是让 AI 自己当导演)的视频制作系统”,已经攒到 6.89 万 Star。我把它拷进隔离沙箱翻了个遍,也把它自带的测试全套跑了一遍,撞见一个别的评测少见的组合:测试绿得挺踏实,它自己却连一个正式版本都没发过。

它不是剪辑软件,是给 AI 写的一整套拍片流程

先把它是什么说清楚。OpenMontage 自己没有“开始渲染”按钮,也没有一个 Python 程序在后台指挥。它的原话是:你的 AI 编码助手就是导演——项目里没有 orchestrator(也就是总调度器)这层代码,真正干活的是一堆写给人看的说明书。

一句话定位:给 AI 助手装一整套拍片的作业规范,从选题一路排到成片,中间每一步都要求它留下证据、并且接受复核。

它的骨架分三层,理解这三层,整个项目就清楚了:

  • 第一层是工具层:仓库里 127 个工具类,说的是“有哪些手艺可用”——生成视频的、配音的、加字幕的、调色的、拆镜头的都在这里。
  • 第二层是流程层:12 条流水线(用 YAML 写的清单),说的是“这次按哪套流程走”。比如动画解说、口播头像、纪录片混剪、长视频批量切短片。
  • 第三层是知识层:139 份技能说明(用 Markdown 写的),说的是“每一步具体怎么做才算专业”。

这三层里,真正装东西的是第三层。README 里那句“700+ 技能与制作知识文件”,我数了一遍是对得上的:skills/ 目录下 157 个 Markdown,加上 .agents/skills/ 下的 578 个,一共 735。所以它不是一个“装了就出片”的工具,更像一本摊开的行业手册,加一套逼 AI 照着手册干活的规矩。

我把它的测试跑了,绿得比预期扎实

评一个“号称能拍片”的项目,最尴尬的地方是:我没法用它拍一部片来证明它行——它要调的是 Veo、Kling 这些按次收费的生成模型,跑一遍就是真金白银。所以我换了两件能核的事:它的代码规模,和它自带的测试。

先看规模。去掉版本历史,整个仓库 2171 个文件,其中 Python 代码 560 个文件、14.6 万行;配套的 TypeScript 有 75 个文件、1.2 万行;Markdown 文档 1099 份。这个体量不像一个周末项目。

然后是测试。它自带的测试分两块,我都跑了:

测的是什么 结果
契约与核心测试(contracts / lib / styles / 回放 / 网络守卫) 1357 条通过,9 条跳过,0 失败,47 秒
工具层测试(每个生成工具的行为) 690 条
网络守卫专项(专门验证“测试不许联网”那道闸门) 7 条:6 条通过,1 条按设计跳过

跑之前我特意确认了一件事:这些测试不允许联网。仓库的测试配置里专门写了一段“安全网”——在系统最底层的网络接口上设卡,任何测试只要试图连一个真实的服务商,就直接报错。它的原话很实在:服务商是按次收费的,测试一旦连上真实接口,就是在每次跑 CI 的时候悄悄花钱。这不是一句口号,我实测确认它真的拦得住:专门去撞它这个闸门的 7 条测试,6 条通过、1 条按设计跳过。

有个细节值得单独说。跑这套测试需要 ffmpeg(一个开源的音视频处理工具),我一开始图省事,把 ffprobe 软链接指到了 ffmpeg 上。结果有 4 条集成脚本报错、1 条契约测试失败——错误信息全是“读数失败”“音频时长不对”。我没急着把它记成“项目有 5 个 bug”,而是去读了源码:那几处报错,恰好都发生在需要 ffprobe 输出 JSON 的地方,也就是我自己那个假链接必然撑不住的地方。换成两个真工具再跑一遍,那 5 处全部转绿。

把这一步写进来,是因为它比“全绿”更说明问题:这份仓库的测试对环境是敏感的,报错时给的信息也是可定位的(它直接说出是哪一步的读数不对),不是那种“某处炸了、你自己猜”的测试。同时这也是我这篇的唯一一处失真——如果我不查明就下笔,就会误报它 5 个不存在的缺陷。

一个 6.89 万 Star 的项目,为什么没发过正式版

它的“靠谱”还有一条更硬的证据。这个项目在“干活之前先设卡”这件事上,做得比一般开源项目狠。举个例子:它不信任 AI 交出来的初稿。渲染之前,它会先算一遍“这段东西会不会看起来像幻灯片”,从六个维度打分——镜头重复、用画面凑数、运动太弱、镜头没有意图、光靠字幕撑场、以及“吹了电影感但撑不起来”。这套打分本身有 800 多行代码和配套测试,不是摆设。

但就是这么个东西,有两个数字并排放在一起,反差大到扎眼:

  • GitHub 上 0 个正式版本。我核过:既没有打过一个版本标签,也没有发过一次 release(发布说明);代码里写的版本号还是 0.1.0。
  • 它已经 6.89 万 Star、8853 个 fork,创建于 2026 年 3 月 29 日,到今天是第 202 天。

一个 6.89 万 Star 级别的项目,连一个 v1.0 都没打过,这在小圈子里不算罕见,但对一个要“替你做完整条产线”的工具来说,是个必须写清楚的前提:你拿到的是主干的滚动快照,不是一个被冻结、被验证过的版本。 升级不会沿着版本号走,而是跟着主干天天变。这对喜欢尝鲜的人是优点,对要把它塞进稳定流程的人是风险。

维护节奏上还有一处,我如实写下来:最近 100 次提交里,有 66 次出自同一个人(作者本人用了两个提交身份,Calesthio 与 calesthio 合起来算);按提交时间分月看,8 月 70 次、9 月只有 1 次、10 月 29 次。9 月那个空档不是“凉了”——10 月又回到高频,说明是个人开发者的节奏波动,而不是项目停摆。但个人集中度高这件事,意味着它的开发速度高度依赖一个人的时间。

和市面上的做法比,它站在哪

把它和几种常见做法摆一起,位置就清楚了:

做法 谁是导演 流程从哪来 对“像幻灯片”这件事的态度
一个提示词出一个片段 模型自己 没有流程 不判断
往任务流里拖节点 你(人工拼) 你自己设计 不判断
OpenMontage AI 助手 仓库里 12 条 YAML 清单 + 139 份说明 渲染前自动打分拦截

差别集中在最后一列。多数“AI 做视频”的出片质量,取决于你提示词写得巧不巧;OpenMontage 的做法是把“像不像视频”变成一个能算、能拦的指标,写进流水线里。这个思路比它的功能列表更值得学。

适合谁用:手上已经有能调工具的编码助手(Claude Code、Cursor、Copilot 这类都行)、愿意按它的分层去读说明书、并且接受“它每个真实出片步骤都在花钱”的人。也适合只想学一套“把创作流程拆成阶段并加质检”的方法论、不打算真跑的人。

不适合谁用:指望装上一个工具、对着它说一句话就拿到成片的人——它的出片能力取决于你给它配了哪些模型的密钥;没配就是一套跑得动的空壳。另外像它这样没发过正式版本的仓库,不要把它当稳定的生产依赖,先在侧线项目里试用。

我的判断

OpenMontage 配得上它的 Star 数,但配的方式和多数人以为的不一样。它的价值不在“又一个 AI 视频工具”,而在两头:一头是那 735 份技能文件——这是把“拍片”这件事拆到可执行颗粒度(也就是细到每一步都能照着做)的一次公开整理,读它比跑它更有收获;另一头是它把“先设卡再动手”落成了代码——不允许测试联网、渲染前拦幻灯片、每一步留决策记录。

它的代价也很清楚:没有正式版本、没有打包好的发行版、出片要你自己接模型密钥、主力开发集中在一人身上。所以我的结论是放进“值得精读、谨慎依赖”这一档——把它当一个设计样本去读,比把它当一个软件去用,收获大得多。

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

相关阅读:

security-audit 深度评测:2.99 万 Star 的 Cloudflare 安全审计技能,65 条测试我全跑了,仓库里没有一行代码找漏洞

security-audit 深度评测:2.99 万 Star 的 Cloudflare 安全审计技能,65 条测试我全跑了,仓库里没有一行代码找漏洞

用过 AI 写代码的人,多半都撞过同一堵墙:让编码助手顺手”看一眼安全”,它扫两眼,回你一段像模像样的话——”这里可能存在 SQL 注入风险,建议改用参数化查询”。听上去没错,可它没说清是哪个接口、谁能触发、真被利用会丢什么。Cloudflare 开源的 security-audit 技能就是冲着这堵墙来的,GitHub 上已经攒到 2.99 万 Star,120 天从零涨到这个数。我在隔离沙箱里把它逐文件翻完,撞见一个别的评测少见的反差:这个技能挂的招牌是”安全审计”,仓库里却没有任何一行代码负责找漏洞。

它不是扫描器,是给 AI 定的审计作业规范

先把它是什么说清楚。市面上的安全工具分两类:一类是扫描器,自己跑起来找漏洞;另一类是规范,教别的 AI 怎么找。security-audit 属于第二类,而且属于得很彻底——整份仓库 15 个 Markdown 文件、18.3 万字节,全是写给人(准确的说是写给模型)看的流程说明书。

一句话定位:给 AI 编码助手(Claude Code、Codex 这类能调工具的助手)装一套六步作业规范,逼它把”我觉得这里有问题”变成”这条证据能溯源、这个结果真跑出来过”。

它的六步是这样走的:侦察(把代码结构和信任边界画出来)→ 按覆盖清单派猎手 → 候选人验证(交给另一个没参与找漏洞的 AI 去证伪)→ 结构化输出 → 独立复核记录 → 出报告。里面有几个反直觉的设计:

  • 找漏洞的 AI 和验证漏洞的 AI 必须是两个,且验证方拿到的任务就是”尽力推翻它”。理由写在仓库首页:同一个 AI 既当运动员又当裁判,等于没验。
  • 搬运沙箱产物的规矩细到吓人:每一步用文件描述符、不许跟随软链接、不许递归拷贝、每个文件有字节上限。这是给”审计目标自己写文件、想借机逃出沙箱”这种场景上的锁。
  • 只认三类结论,判据写在词上,不放水:
结论 什么情况下才给 给不给严重等级
confirmed(已确认) 来源能完整溯源,且有真跑出来的结果 给
needs_validation(待验证) 有一个具体的、卡住的外部事实没拿到 不给
rejected(已证伪) 候选被独立验证方推翻 不给

换句话说,它不承诺”帮你找到漏洞”,它承诺”让 AI 找漏洞的每一步都可被追查”。这两者的差别,就是这份仓库全部的设计动机。

我把它的测试全跑了,65 条一次通过

评测安全审计工具最尴尬的地方是:你没法用它审自己证明它行。所以我改成核两件能核的事——它自己带的测试,和它那两个校验脚本的边界行为。

先看仓库里唯一有代码的部分。整个仓库只有 4 个 .cjs 文件,其中 2 个是校验器,另 2 个是给校验器写的测试:

文件 大小 干什么
validate-findings.cjs 28,806 字节 校验最终结论文件合不合规
validate-coverage-ledger.cjs 33,522 字节 校验覆盖清单的每一步有没有交代
validate-findings.test.cjs 26,384 字节 上一条校验器的测试
validate-coverage-ledger.test.cjs 28,483 字节 覆盖清单校验器的测试

两个校验器加起来 62.3 KB,零第三方依赖——仓库里连一份”依赖清单”(package.json)都没有,只用 Node 自带模块。我在沙箱里跑它自带的测试:65 条断言,65 条通过,0 失败 0 跳过,4.08 秒。拆开看是 34 条管结论校验、31 条管覆盖清单校验。

这个数字需要配一句解释:65 条测试,没有一条在测”能不能找到漏洞”。它们测的全是另一件事——报告格式的守门人够不够狠。我按这个方向自己加了几组边界输入去撞它:

  • 传一个空结论表 [] → 通过,退出码 0(空报告合法,不许硬编一条充数)
  • 传一个对象而不是列表 → 拦下,退出码 1
  • 传一段截断的 JSON → 拦下,退出码 1,只印一句”语法错误”,不吐堆栈
  • 传一个不存在的文件名 → 拦下,退出码 1,同样不吐堆栈

四个例子的意义在于最后那条:失败的时候不把调用方的输入原样回显出来。听起来是小事,做安全的人知道这不是——审计报告里如果混进一串控制字符,能把终端骗过去,所以它连诊断信息都做转义。这条规矩在它的测试里占了整整一类。

覆盖面这一侧它也下了本钱:主规范之外配了 10 个”攻击面分类”文件,从内存安全、AI 大模型的提示注入(也就是往给模型的指令里夹带私货)、网页协议与登录认证,一路到供应链、云部署、桌面端本地进程间通信。15 个 Markdown 里一共 106 个小节标题。这份分类表的价值不在深,在于”摊得开”——它逼模型在动手前先回答”我审的是哪一类目标、该类里有哪些套路”,而不是笼统地”审一下”。

有两处我如实写下来,不替它圆:

第一处是仓库自己承认的短板。README 里有一句原话:在他们的测试里,单跑一轮大约只找到多轮累计漏洞数量的一半。翻译成普通话——这工具跑一次是不够用的,得反复跑、比对几次结果。这句话敢于写在首页,比一堆”行业领先”可信,但也说明它现在还不是”一把过”的成熟工具。

第二处是节奏。最后一条提交停在 2026 年 9 月 14 日,到今天我写这篇时已经 32 天没动;全部历史只有 14 次提交、5 个合并的 PR,作者高度集中在一个人身上(literally-dan / Dan Jones)。对一个 3 万 Star 的项目,这个维护密度偏低——它是”Cloudflare 放出来的一份方法论”,不是”一个每周都在长的基础设施”。这两者的用法完全不同,后面会说到。

和同类比,它的位置在哪

把它和常见做法摆一起,位置就清楚了:

对比对象 谁在找漏洞 要不要独立复核 证据形态
静态扫描器(如代码扫描工具) 工具自己 不需要 规则命中列表
直接问 AI”审一下” 同一个 AI 没有 一段自然语言
security-audit 技能 AI 去做,但按固定六步 强制,且验证方必须独立 结构化记录 + 可溯源证据

差别集中在中间那一列。”直接问 AI”的问题从来不是它不够聪明,而是它说”有风险”时,你分不清那是结论还是它在迎合你。这个技能的做法是:把”下结论”这件事本身立成一道有格式、有复核、有证伪的流程。

适合谁用:手上有一份想认真过一遍安全的中小型代码库,团队里有人能读懂 AI 给出的证据链,并且愿意接受”跑一轮不够、要跑几轮”这个前提。也适合只想学一套审计方法论、不打算直接用它的人。

不适合谁用:指望装上一个技能就自动把漏洞扫出来的人。这仓库里没有一个字节是扫描逻辑,找不到漏洞不是它坏了,是它压根不干这事。另外一个前提是它要求执行环境有硬沙箱——真要动手复现目标代码的行为,得有个能断网、能限内存、只让往指定目录写的隔离环境;没有这个环境,规范自己的要求是:不许跑目标代码,把线索标成”待验证”。这个自我约束是优点,但也意味着实际能挖多深,取决于你手里的沙箱。

我的判断

这是一个人格很完整的安全审计技能,但不是一个人能拿来就用的工具。它的价值在流程:六步怎么分、谁去找谁去验、什么才配叫”已确认”、沙箱里怎么搬文件才不出事——这些规矩是 Cloudflare 从自己的漏洞发现流水线里抽出来的,有真实来源,不是纸上谈兵。2.99 万 Star 和 120 天的涨速,也说明这套方法论踩中了大家的痛点。

但它把力气全花在”规范”上,代价就是”能力”那半边是空的:没有扫描逻辑,65 条测试一条都不碰找漏洞本身,32 天没提交,作者一个人扛。所以我的结论是把它放进”值得精读、谨慎依赖”这一档——读它的流程设计,比跑它找漏洞收获更大。

这背后其实是一条更普遍的规律:AI 时代的很多所谓”技能”,真正稀缺的不是让模型变强,而是给模型的行为立规矩、加复核。这套仓库是这个思路里做得比较扎实的一份样本。

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

相关阅读:

ui-ux-pro-max 深度评测:13.6 万 Star 的设计技能,192 条规则 79 种风格我逐条核过,CLI 却停在 8 月

ui-ux-pro-max 深度评测:13.6 万 Star 的设计技能,192 条规则 79 种风格我逐条核过,CLI 却停在 8 月

用 AI 写前端的人,差不多都撞上过同一堵墙:让 AI 生成一个登录页,它十有八九给你一套蓝紫渐变加大圆角的”安全牌”——不难看,但放到哪个产品上都一样,看不出这是卖保险的还是做潮牌的。

专门治这个毛病的技能里,有个叫 ui-ux-pro-max 的,GitHub 上已经攒到 13.6 万 Star。它自称能提供”设计智能”:你想做什么产品,它给你一套配色、字体搭配和版块结构。我把它搬进隔离沙箱,逐条核了它挂在门面上的数字——192 条决策规则、79 种界面风格——每一条都能对上。但顺着它给的安装命令往下查,我发现一个数字上的矛盾:这个技能的官方安装包每月被装了 7.7 万次,版本号却停在 8 月没动过。

它到底是什么

一句话:它是一个装在 AI 编码助手里的”设计顾问”,负责在你还没动手写样式之前,先告诉你这个产品该长什么样。

它不是一个能自己运行的程序,而是一个技能包(skill)——也就是一份写给 AI 看的说明书,加上一整套查得到的数据库。你问它”我要做一个 SPA 预约网站”,它就翻它的数据库,回你一套具体到色号的设计方案。

它解决的是 AI 生成前端时的一个老毛病:没有审美就以”安全”代替审美。大模型见过的设计稿太多,生成时倾向于挑最不容易出错的那一套,结果所有产品长得都一样。这个技能的做法是,把”哪种产品用哪一种风格”这件事,从 AI 的临场发挥变成一份可查的对照表。

它的核心动作是”给三个旋钮”——你可以决定这套设计要多大胆(从规规矩矩到不对称排版)、动效要多花哨、信息密度要多高。三个数字一转,出来的就不是同一个模板了。

它查得到的东西 数量
决策规则 192 条
界面风格 79 种可搜索(另 9 种标为废弃)
配色方案 192 套
字体搭配 74 组
交互体验准则 119 条
支持的开发框架 22 个

官方那两个招牌数字,我逐条数了一遍

先交代条件:全程在一台隔离沙箱里跑——被测项目拷进它自己的工作目录,宿主机的凭证和文件都看不见,机器内存只有 1.9G。下面的命令和结果都可以照着重来。

先说它的主业——那 192 条规则。它其实是一张表,每一行对应”做某类界面时该怎么选”:推荐什么版式、配色往哪个方向、字体走什么调性、以及最容易被忽略的一栏——”别这么用”。我逐行数过,192 行里,192 行都填了”反模式”这一栏,也就是说每条建议都配了一个明确的坑。

这栏是它和”AI 自由发挥”最大的区别。举个它表里的例子:极简瑞士风(一种讲究留白和网格的排版风格),”不推荐用于”一栏写的是”创意作品集、娱乐类、需要活泼调性的品牌”。换句话说,它不只告诉你该用什么,还告诉你什么时候不该用。

再说那 79 种风格。仓库里有一份”目录总表”,我拿它和实际数据交叉核对:风格表一共 88 行,其中 79 行标记为”可搜索”,9 行标为”废弃”——79 这个数字能对上。风格表每一行还带 29 个字段,从”适合什么产品”到”如何兼顾明暗两种模式”;其中最容易被作者偷懒的”不推荐用于”一栏,88 行我逐行查过,全部填满。

规矩不止写在纸上,还配了自动检查。仓库自带的两个数据校验脚本我都跑了:一个检查 35 个运行时数据表,输出”全部通过”;另一个按”12 个领域表、22 个框架表、加决策规则表”全检一遍,输出同样是”通过”。

真正让我意外的是测试。它在主目录下带了 13 个测试文件。我在沙箱里装好测试工具跑了一遍:

我跑的命令 结果
跑它自带的数据校验(两个脚本) 均输出”通过”,退出码 0
跑它自带的测试套 164 项通过、8249 个子项通过,耗时 20.9 秒
同一个需求跑两遍,比对输出 完全一致(同一输入给同一结果,不随机)
换一个完全不同的需求 风格与配色整组都换了

最后一行值得多说一句。我先用”SPA 预约网站”这个需求跑了一遍,它给的是一套柔和的粉紫色系、配”柔和界面”风格;我又换成”加密货币交易看板”,它立刻切到深色 OLED 风格、整套配色换成深蓝黑。同一个技能,两个需求,出来的方案没有一丝相似——这说明它不是在套模板,是真的在读需求查表。

顺便一个工程细节:它的 Python 脚本只用了系统自带的标准库,没有引入任何第三方依赖。对一个要嵌进别人项目的技能来说,这意味着装上就不会因为依赖打架而坏掉。

数字对得上的另一面:安装量还在涨,包停在两个月前

好评说完,说说我查出来的三个问题。这三个都不是猜测,是能在页面上看到的。

第一个,也是最好笑的一个:门面数字和发布状态打架。

它的官方命令行工具(装在电脑上的一条命令,让你一条指令把技能装到 AI 助手里)在 npm 上的记录是:过去一个月下载 7.7 万次,一共发过 17 个版本,但最新版本 2.15.0 的发布时间是 8 月 13 日。也就是说,两个月来一直有人在装,而这个包一次都没更新过。仓库里对应的记录写着”从 8 月 18 日起发布流程一直失败,npm 令牌被拒,2.15.0 之后就什么都没发出来”。同一条问题在 8 月 24 日就被提出来了,到现在还开着。

第二个,是它附带的示例工程埋的一个安全隐患。

仓库里带了一个可以直接跑的示例项目。它的配置里有一行默认设置,意思是”这个项目里配置的所有工具都自动批准,不用每次问我”。问题在于,这个示例同时把三个工具都设成了”永远拉取最新版”。合起来就是:任何人克隆这个示例,就等于默认授权了一堆会自动更新的外部工具——包括以后往配置里新加的工具。有用户专门提了一条记录(编号 514)说这个默认值不合适,建议至少加一句说明。

第三个,是最现实的一个:它能装的 AI 助手,和它宣传的并不完全一致。

它的命令行工具支持一串指定的助手,我数了一下有 20 个左右。有用户在 Windows 上按文档装了其中一个叫 Zcode 的,命令直接报错”不支持的 AI 类型”,并把支持列表重新打印了一遍。(更不巧的是,因为上面第一个问题,这个报错修复到现在也发不出来。)

翻车点也说全。它虽然叫”技能”,但门槛并不低:它需要你本机有 Python 3,还得看它装的辅助脚本能不能在你的系统上跑起来。它的中文文档是机器翻译味儿的,几个版本说明读下来会有点累。还有那个挂在门面上的 GitHub 版本号,从 8 月中旬就停在原地了——对看版本号判断新旧的读者,这容易误导。

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

想把”AI 生成的前端不像 AI 做的”这件事做好,市面上大概三条路。第一条是”当场提要求”型——在动手前先逼 AI 做几个决定(给谁用、什么调性、要突出什么),比如 Anthropic 官方的 frontend-design,好处是轻,缺点是全凭 AI 那次发挥了。第二条是”事后挑刺”型——让另一个 AI 审一遍生成的结果,挑出问题再改。第三条就是这个技能代表的”先查表再动手”型:把审美沉淀成一份可检索的数据库,让 AI 有据可依。

三条路不冲突,甚至能叠着用——它附带的示例工程就是这么干的。它的独特之处在于把”不该这么用”也做成了数据:88 种风格,每一种都写清不适合什么场景。这是”事后挑刺”给不了的。

适合谁:经常用 AI 生成界面、又受不了”AI 味”的前端;需要一次性产出多套不同调性方案的设计师;想给团队的 AI 工具装一本”审美参考书”的团队。

先别急的两种人:一是只想要”一句话生成一个能用的页面”的——它给你的是设计依据,不是成品页面,你还是得自己动手;二是对工具依赖有洁癖的——它附带的示例工程那个”默认全批准”的配置,你得自己改掉再跑。

我的判断

ui-ux-pro-max 是目前少见的、”把审美做成可查数据”的技能。它挂出来的 192 条规则、79 种风格,我逐行核过,一条没虚;164 项测试全绿、零第三方依赖,一个技能包能把工程纪律做到这份上,是加分的。它真正值钱的不是”帮你选个好看的颜色”,而是那 88 行”不推荐用于”——审美最难的从来不是”什么好看”,而是”什么时候别用这套”。

但它也暴露了一个典型问题:技能本体很扎实,配套工具却在掉链子。一个月 7.7 万次的安装量,配一个两个月没更新的包、一个开着一个月的报错修复——这不是能力问题,是维护节奏问题。放进观察清单没问题,但如果你要把它塞进正式项目,建议先把那个”默认全批准”的示例配置改掉。

相关阅读:Hallmark 深度评测:3 万 Star 的反 AI 味设计技能,31 个成品页面 21 个过不了自家 58 道闸门 · taste-skill 复测:9.2 万 Star 的反 AI 味前端框架

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

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

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 热点深度解读。

相关阅读: