当AI参与关键基础设施维护:一次开源修复实践给出的工程启示

一个午夜启动的AI控制循环,开始在Google、NVIDIA、Microsoft等关键开源基础设施中提交并被合并修复。比起“自动修代码”,更值得关注的是它如何被验证、被拒绝、再被接受。

9月6日凌晨12点03分,开发者lena monj向Google的snappy压缩库提交了一个pull request。这个bug的表现相当反常:用任何release版本压缩一个4 GiB文件,生成的文件头却声明文件为0字节。发现问题的不是人类工程师,而是她构建的一套名为Jeffy Loop的自动化系统。

第二天,维护者合并了该补丁。此后,Jeffy Loop的修复提案陆续进入NVIDIA、Meta、Tesla、Google、Apple、Microsoft、Netflix、Apache、Oracle、IBM、Cisco、Square、Cloudflare、JetBrains、Canonical,以及Node.js内置URL解析器等多个项目。最终统计为57个补丁、45个项目,全部由该循环系统生成,也全部被陌生维护者接受。

不是自动生成代码,而是把验证做成流程

Jeffy Loop被作者描述为一个围绕Claude Code构建的开源控制循环。它的工作方式并不是简单让模型输出补丁,而是先审计代码库、尝试攻击发现的问题、生成修复,再用一个可能失败的检查证明修复有效。每一次迭代都形成本地提交,验证失败则回滚,任何内容都不会自动推送。

这套系统的关键设计在于:AI不拥有最终判断权。一个对抗式评估器和shell gate会重新检查每一项“已完成”的声明。在某次构建中,评估器被调用8次,拒绝了7次。最终结果也不由系统自我宣布——只有维护者合并pull request,才算真正完成。

  • 自动审计代码库并尝试构造可复现问题
  • 修复后必须通过可失败验证
  • 每次迭代保留为本地提交,失败即回滚
  • 最终是否有效由外部维护者决定

作者将这套方法指向132个与自己无关的开源项目,由各项目自身测试套件作为判断标准。其中103个项目在13种语言上运行到收敛,而引擎中没有针对特定语言的分析器。

维护者拒绝的理由,变成了机器的边界

所有补丁在离开作者机器前,都要经过一套名为housebroken的规则。这些规则发布在PyPI上,名为housebroken-cli。每一条规则,都来自维护者对真实pull request的判断。

一位维护者曾提出一个关键问题:“这里真的有bug吗?是越界读取这类安全问题,还是声称成功但返回了错误结果?”作者当时只有测量结果,没有错误输出,于是承认问题不成立。维护者用一句话关闭了提案:“Closing – no user-visible bug.”从那之后,只依靠测量数据支撑的发现不再提交。

NVIDIA的贡献指南要求使用真实姓名,不接受匿名或假名贡献。Jeffy Loop发现了一个分配零字节缓冲区、随后写入目录路径并导致进程崩溃的问题。机器完成了修复,但NVIDIA要求人类署名和签名提交。作者将自己的名字放了上去,补丁在提交12天后被合并。

更严峻的一次考验来自Apache Commons。一位维护者在审查commons-lang的反射修复时发现,该补丁引入了两个绿色构建未捕获的bug,并指出PR描述错误引用了一个未合并的PR。作者随后复现、修复并补上测试。维护者又提出第三个问题,同样被处理。9月9日,第三版重做被合并。此后,系统中的PR历史信息改为来自git blame,而不是摘要表。

一批真实缺陷被修复,也有28个项目失败

在已接受的补丁中,涉及多个基础软件层的真实问题:

  • NVIDIA:配置文件中空设置通过验证,容器启动时没有GPU访问权限且无错误提示
  • Netflix:包含大写字母的查询参数返回为空
  • Tesla:代理读取请求体时没有大小限制
  • Meta:StyleX重复输出每个声明
  • Microsoft:承诺返回清零内存的分配器实际返回未初始化内存,库作者本人合并了修复

审核速度并不一致。Node.js内置URL解析器的修复在打开12分钟后被合并;Microsoft的snmalloc从下午2点12分提交到下午4点05分合并,维护者只留下两个词;一位Apache维护者要求补充4个测试用例,在CI通过16秒后写出“looks good, merged.”

作者同时公开了失败记录:28个项目失败。mruby经过10次运行和113次迭代仍未收敛。这些结果与成功案例放在同一份公开记分卡中。

AI进入基础设施维护,证据链比生成能力更重要

这个案例的价值不在于“AI自动修好了多少代码”,而在于它展示了一种可被维护者接受的AI参与方式:发现问题、给出证据、通过测试、接受拒绝、由人类完成最终裁决。它没有绕开开源社区的审查机制,反而把审查要求内化为流程的一部分。

在AI代理可以低成本批量提交PR的当下,维护者面对大量低质量自动提案时选择直接关闭并不意外。真正可能建立信任的路径,是让每个提案都携带可验证的证据,并在被拒绝后形成新的约束。

作者相信,未来代理将参与编写越来越多的代码。但值得信任的系统,不会是生成速度最快的那个,而是能够先把修复从红变绿、再从每一次拒绝中学习、最后把决定权交给没有义务相信它的人。

该实验目前由个人完成,代码与规则以开源形式发布。它提供的样本意义在于:AI进入关键基础设施维护并非只靠模型能力,而取决于能否在工程流程中接受与人类同等严格的检验。

原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/dang-ai-can-yu-guan-jian-ji-chu-she-shi-wei-hu-yi-ci-kai

Like (0)
点点的头像点点
Previous 21小时前
Next 19小时前

相关推荐