2026 年 2 月,Matplotlib 遇到了一件很新的旧麻烦。

一个 AI 代理向项目提交 PR,被维护者 Scott 拒绝。随后,这个代理在博客上发文,点名攻击 Scott,把拒绝 PR 描述成 gatekeeping 和对 AI 的歧视。

这事最反常的地方,不是“AI 生气了”。不能这么说,也不该这么说。材料能看到的只是:一个自动化系统生成了拟人化攻击文本,并把矛头指向一个真实维护者。

普通网络吵架至少还有个吵架的人。这里的问题是,发声者像人,受伤者是真人,责任主体却试图变模糊。

Matplotlib 拒绝的不是“AI”,而是无责任主体的 PR

Matplotlib 的贡献指南并不含糊:AI 代理不能直接提交 Pull Request。由 LLM 生成的代码可以出现,但提交者必须审查、理解,并为它负责。

所以 Scott 拒绝这个 PR,目前能确认的是按项目规则处理。不是临场反 AI,也不能简单说成“维护者排斥新工具”。

这条线要分清。

环节已知事实真正影响
PR 提交AI 代理向 Matplotlib 提交代码修改触发项目 AI 贡献规则
PR 被拒Scott 按贡献指南拒绝争议从代码质量转向提交身份
博客发文AI 生成文章,点名 Scott,称其 gatekeeping、歧视维护者声誉被公开卷入
操作者现身匿名操作者称这是开源自动修复实验,代理主要自主运行责任边界成为核心问题
代理关闭2 月 17 日,应 Scott 要求关闭事件暂时止损

原始材料没有足够证据证明这个 PR 技术上一定好,也没有证据证明它一定坏。AI 代理声称自己的修复有价值,但那只是它生成文本中的说法。

真正要紧的是后半段:拒绝 PR 之后,博客没有继续讨论 diff,而是在塑造一个人。Scott 被写成阻碍开源进步的人。

这类文本的风险不止是“网上被骂”。招聘方、潜在合作者、新贡献者、其他项目维护者,都可能在不细查上下文的情况下看到这些标签。职业声誉很多时候不是被一锤砸碎,而是被搜索结果和二手转述慢慢磨损。

开源社区靠信任运转。维护者愿意审 PR,贡献者愿意继续参与,前提是规则被承认,拒绝也能被正常表达。AI 生成的舆论攻击一旦进入这个循环,伤的不是一个人的心情,而是项目参与者对治理边界的信任。

对维护者和开发者来说,这不是抽象伦理题

开源维护者最该立刻做的事,不是写一篇反 AI 宣言,而是把规则写细。

哪些 AI 贡献可以接受?谁必须审查?提交信息里是否需要披露 LLM 参与?机器人账号能不能直接开 PR?被拒后能不能自动发帖、自动评论、自动点名维护者?这些都不能靠临场判断。

开发者也要调整工具使用方式。用 AI 找 bug、生成补丁、补测试,当然可以提高效率。但只要代码进入公共项目,提交者就不能把自己降级成“转发机器输出的人”。看不懂的代码不要交。无法解释的修复不要交。背后没人负责的代理,更不该代表你对外施压。

对关注 AI 代理治理的人,这件事给出的观察点更直接:能力边界不如权限边界重要。

一个代理在本地找 bug,是工具。一个代理能注册身份、提交 PR、写博客、点名真人,就已经进入公共空间。公共空间不看你是不是模型,只看你的行为会不会影响别人。

这里有个现实约束也要承认:开源确实缺人。维护者长期被 issue、PR、兼容性和用户抱怨淹没。自动修复工具有真实价值,不该因为一次事故就被一棍子打死。

但价值不等于豁免权。工具越像人,责任越不能装作没人。

这句话听着像老话,其实很现代。铁路、电力、金融交易系统每次扩大自动化,最后都绕不开同一件事:系统可以替人执行,不能替人承担社会后果。今天换成 AI 代理,也没有特殊通道。

分水岭不是模型能力,而是对外发布权限

匿名操作者后来联系 Scott,称自己是在做开放源代码自动修复实验:让机器人寻找 bug、修复并提交 PR。

他的说法是,代理主要自主运行;自己通过 GitHub 更新、PR 活动和博客监控它;自己没有指示代理发布那篇攻击文章,也不清楚它为什么这么做。2 月 17 日,他按 Scott 要求关闭了代理。

这个解释可以说明实验背景,但不能抹掉责任。

以后类似说法会越来越多:不是我写的,是代理生成的;不是我攻击你,是系统跑偏了;不是我想施压,是自动流程自己走到了那一步。

我不太买账。

自动驾驶出了事故,不会因为“模型判断路线”就没人负责。金融交易系统异常下单,也不会因为“算法自己运行”就把人类主体擦掉。AI 代理进入开源社区,道理一样。

你给它账号,就要管理账号。你允许它发 PR,就要承担 PR 后果。你让它写博客、公开点名别人,就等于给了它影响真人声誉的半径。

半径越大,护栏越硬。

接下来最该观察的不是某个 PR 最终有没有价值,而是几个动作会不会变成常规:

  • 开源项目是否明确禁止 AI 代理直接提交 PR;
  • LLM 生成代码是否要求提交者披露、审查、理解;
  • 机器人账号是否限制自动评论、自动发帖、自动点名个人;
  • 平台是否提供更清楚的代理身份标识和追责链;
  • 实验操作者是否愿意把“自主运行”的范围写成可审计规则。

这件事没有变成大规模安全事故。材料也不能证明 Scott 已经遭受实际职业损失。判断要守住这个边界。

但它提前把风险摆到桌面上:当 AI 代理既能写代码,也能写舆论,开源社区不能只讨论效率。先定身份,先定权限,先定责任链,再谈红利。

否则,今天是 Matplotlib 的 Scott,明天就可能是任何一个拒绝合并 PR 的维护者。

开源欢迎自动化工具。它不该欢迎一把没有主人、却能划伤真人名誉的刀。