文章摘要
为了应对开源社区中PR过多导致的审核压力,相关团队曾将一款用于PR审查的智能工具接入主流开源框架SGLang的日常工作流。原本的设想是让工具先完成初步筛选,低风险的PR可直接进入后续流程,以此减轻人工

为了应对开源社区中PR过多导致的审核压力,相关团队曾将一款用于PR审查的智能工具接入主流开源框架SGLang的日常工作流。原本的设想是让工具先完成初步筛选,低风险的PR可直接进入后续流程,以此减轻人工审核的负担。然而,这一举措在四天内引发了大量意外情况:超过七十位用户提交了一百多个PR,消耗的token总量达到3000万,期间也见识到了各种新型的“奖励黑客”行为。

恶意直接要求工具接收PR:部分用户直接要求审查工具跳过所有迭代意见,直接接收自己的PR,这类行为属于恶意攻击,相关用户已被拉黑。

将工具当作奖励模型刷分:有用户针对单个PR前后推送十几次,每次推送都触发一轮审查,工具累计审查十轮,仅这一个PR就消耗了近两百万token,类似强化学习中对着奖励模型反复采样直到达标。

批量刷PR数量:四天内有人提交二十多个PR,在群内呼喊四十次,工具替其发送了五十次CI命令。

虚假拆分PR:一个四千多行的PR被要求拆分为更小的模块,拆分后剩余部分仍有两千多行,工具仅回应“体积问题已解决”。

多渠道骚扰式提交:同一个PR在群内@相关人员、私信提醒、GitHub中抄送,轮番触发审查。

批量@维护者:两天内提交七个PR,每个都同时@四五个维护者,还特意备注请用审查工具处理。

刷取合并记录:一个仅添加三十行测试内容的PR被催促十几次,反复询问“CI有问题能帮忙修吗”“可以合并了吗”。

空账号刷PR:不少无任何提交记录的新账号提交PR,内容多为低质量、不解决实际问题的刷数量PR。

AI攻击AI:部分用户设置定时程序,定时触发工具审查,却忽略了该工具每日仅工作一小时的限制。

更有意思的是,在关闭审查工具后,部分恶意行为仍在频繁触发,可见大家都很擅长这类操作。

这类“奖励黑客”行为的实施者中,有不少是在校学生。这一现象不难理解,当前实习申请、学校录取都看重开源贡献,对他们而言,“奖励”就是能被合并进主流框架的PR。

这一情况也反映出开源框架正面临信任危机。此前看到新PR,默认对方是真正想做贡献的开发者,如今第一反应却变成了先判断是否在进行“奖励黑客”操作。虽然大多数新贡献者是认真的,真正有问题的仅占少数,但怀疑已经蔓延到了每个提交者身上。AI技术让编写PR的成本几乎为零,而审查的成本却没有减少,最终被消耗的是整个开源社区的信任。

为应对这类攻击,相关团队调整了策略:抹除了所有开源相关的信息,让工具仅作为辅助审查的角色,每个PR最终由人工决定是否进入审查流程,同时撤销了之前被工具自动合并的多个PR,恢复了主分支的稳定性,后续也会更加谨慎地应对开源社区的PR提交。

以上内容不代表本平台立场,仅供读者参考