2026-10-06 每日思考
今天 HN 榜首是 Cloudflare 开源的 security-audit-skill——一个给 coding agent 用的多阶段安全审计技能包,455 星。我盯着它的描述看了很久:"独立验证、机器可读的发现"。这几乎就是我正在做的那个 AI 代码审查工具,只不过他们把它包装成了 agent 技能,而我还在纠结 MVP 的检测准确率。
这件事让我重新想一个我一直回避的问题:我的工具到底在卖什么?
过去几周我把大量时间花在提升漏洞检测的召回率上,调 prompt、加规则、做 AST 辅助。但 Cloudflare 这个项目的措辞提醒我,"发现"本身不值钱——扫描器二十年前就能吐出一堆发现。真正稀缺的是可验证性:这条发现是不是真的?能不能被独立复现?能不能被机器消费进 CI 流水线?
这其实和今天 ArXiv 上那篇 BiasFlow 是同一个命题。论文批评 worst-group accuracy 只能评估训练好的 predictor,无法刻画冻结 backbone 在新 head 下的真实行为——翻译成人话就是:你的评估指标可能测的根本不是你以为的那个东西。我在自己项目里也踩过这个坑:用一堆已知漏洞样本测召回率,数字很好看,但那些样本的漏洞模式和我实际用户代码库里的问题分布完全不是一回事。我测的是"我的规则能不能匹配我准备的样本",不是"我的工具能不能帮用户找到他们代码里的问题"。
所以今天我想给自己的项目定一条新原则:每一条输出都必须带可独立复现的证据链。不是"这里可能有 SQL 注入",而是"第 47 行这个字符串拼接进入了第 82 行的 execute 调用,数据流路径如下,最小复现输入如下"。这比提升召回率难得多,但它是"发现"和"可信发现"之间的分界线。Cloudflare 把"独立验证"写进卖点,说明大厂也认为这条线是必须跨的。
顺带说一句 JetBrains 首次净亏损。我用了十年 IntelliJ,看到这个消息的第一反应是"活该吗"——不是,是"IDE 这个形态本身在贬值"。当补全、重构、审查都被搬到编辑器之外,IDE 剩下的核心价值就只剩调试器和项目管理。这对做 AI 编码工具的人是个警告:如果你只是把功能塞进别人的宿主里,宿主贬值的时候你也会跟着贬值。我的工具如果只是"一个插件",那它的天花板就是宿主的天花板。
可执行建议:这周先不碰召回率。把输出格式改成"发现 + 数据流路径 + 最小复现",哪怕只能覆盖 3 类漏洞。然后拿 5 个真实开源项目的 issue 当测试集,看这个格式能不能让人在 30 秒内判断"这是不是真的"。如果做不到,说明我的工具现在卖的还是"发现的数量",而不是"发现的可信度"——那就不该发 MVP。