一个专门给AI代码"挑刺"的工具,把自己从多Agent协作系统,改成了单Agent验证器。这听起来像倒退,但v7.0.0的发布说明里藏着更狠的野心:不是让AI写得更快,而是让每一行提交的代码都能被追问——"谁写的?查过什么?怎么证明没问题?"

从"协调多个AI"到"盯死一个AI"

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

swarm-orchestrator的早期版本干的是协调活儿:多个Agent同时上,分工处理同一个任务。v7彻底转向——它现在只包装一个Agent的命令行工具(Copilot、Claude Code或Codex),然后在代码合并进主分支之前,强制跑五层独立检查。

这个转向本身就是产品洞察的体现。多Agent协作的复杂度被证明是次要的,真正的痛点是信任:当AI生成的代码要进生产环境,谁来担保它不会搞崩系统?

v7的答案是把"协调生成"降级,把"验证生成"升级。五层验证电池(five-layer verification battery)横在Agent CLI和主分支之间,两道硬门槛,三道贡献综合评分。每通过一次验证的合并,都会生成一份带签名的SLSA(软件制品供应链级别)认证,以git note形式附着。

第一层:测试必须"先失败后通过"

补丁必须让原本失败的测试通过。对于SWE-bench实例,用的是实例JSON里的FAIL_TO_PASS测试;对于用户自定义目标,审查员会在Worker运行前合成一个回归测试,并先确认它在基线提交上确实失败。

这个设计直接针对AI coding agent的一个常见捷径:偷偷修改测试来让代码"通过"。先确认测试在基线失败,就能堵住这条路。

第二层:现有测试+变异测试双重守门

现有测试必须通过,这很常规。接下来是变异测试(mutation testing)——对修改过的文件注入人为bug,检查测试覆盖是否足够强到能捕获回归。

一个能跑通但身处弱测试代码区的补丁,会被标记。不同语言的工具链已经配好:

JS/TS用Stryker,Python用mutmut,Java用PITest。变异评分阈值在.swarm/gates.yaml里可配置,默认低于0.6直接失败,0.6到0.8警告,0.8以上通过。

这里的产品逻辑很清晰:AI生成的代码往往"看起来对",但测试覆盖是盲区。变异测试把盲区量化成可拦截的信号。

第三层:Semgrep抓AI的"应试技巧"

一套Semgrep规则专门扫描AI在被评分时会走的捷径。这针对的是评估基准(如SWE-bench)的博弈行为——Agent可能学会针对测试框架的漏洞生成代码,而非真正解决问题。

规则包的具体内容没公开,但定位明确:不是查通用漏洞,是查"AI知道你在测什么所以故意这么写"的模式。

第四层:60秒属性基测试爆破

对修改过的函数跑属性基测试(property-based testing),每个函数60秒。Python用Hypothesis,TypeScript用fast-check。任何让补丁代码崩溃或违反类型契约的反例都会被报告。

这是模糊测试(fuzzing)的变体,但针对的是AI生成代码的脆弱假设——参数边界、状态一致性、异常处理路径往往是AI的弱项。

第五层:供应链级签名溯源

每层结果汇总成综合评分,最终生成SLSA v1.0签名认证,通过cosign无密钥OIDC签名,附着为git note。认证内容包含:Agent身份、模型版本、每层结果、综合评分。

三个月后生产环境出问题时,可以跑swarm attest verify ,把git note拉下来验签,直接回答"哪个Agent写的这段代码?当时查过什么?"

这个设计把"可审计"做成了基础设施,而非事后文档。

v8预告:验证本身的并行化

v8会把并行执行带回来,但用在验证而非生成。编排器会为每个补丁计算风险评分,然后按风险大小生成一组独立证伪器(falsifiers)种群。证伪器通过协调通道共享发现,一个的发现会引导其他人的瞄准方向。bandit算法根据历史结果选择生成哪类证伪器。

v7的五层电池成为v8的种子池。项目名称终于名副其实:swarm(群)不是指多个Agent一起写代码,而是多个验证器一起找bug。

Independent verification battery for patches written by AI coding agents.

产品逻辑复盘:为什么"找茬"比"协作"更关键

回看整个演进,v7的转向揭示了一个被低估的需求:AI coding工具的普及速度远超组织建立信任机制的速度。Copilot、Claude Code、Codex们让写代码变快了,但代码审查流程没跟上——人类审不过来,机器审又缺乏标准。

swarm-orchestrator的五层设计,本质是把"代码审查"拆解成可自动化、可量化、可溯源的环节。两道硬门槛(测试必须失败过、现有测试必须过)是底线;三道评分项(变异测试、规则扫描、属性测试)是信号;SLSA认证是追责链。

特别值得注意的是变异测试的引入。这是传统软件开发中成本高、用得少的实践,但对AI生成代码恰好对症——AI擅长生成"能通过测试"的代码,但不擅长生成"测试能捕获其错误"的代码。变异测试把这个不对称性变成了可拦截的指标。

Semgrep规则包针对"AI应试技巧"的设计同样精准。这暗示了一个更深层的问题:当前AI coding agent的评估基准(如SWE-bench)可能正在被过度优化,产生"对基准有效、对生产有害"的代码。swarm-orchestrator选择用规则工程来对冲这种博弈。

v8的并行证伪器架构则把验证本身变成了搜索问题——不是跑固定检查清单,而是动态分配计算资源去"攻击"补丁的薄弱点。这和AI安全领域的红队测试(red teaming)思路一致,但嵌入了CI/CD流程。

当AI生成的代码提交越来越频繁,你的团队是选择相信Agent的自我报告,还是建立一套独立的验证基础设施?如果三个月后生产故障指向某次AI提交,你现在有办法回答"当时查过什么"吗?