说实话,现在的科技圈,不聊点 AI、不整点大模型,好像都不好意思说自己在搞开发。

Claude Code、ChatGPT 这些工具,确实让不少程序员觉得自己“无敌”了,敲几下键盘,大段代码就自动生成。但就在这几天,知名开源媒体服务器项目 Jellyfin,直接给这股“AI 热潮”泼了一盆冷水。

他们发布了一份全新的 LLM/"AI" 开发政策。注意标题里那个带着引号的 "AI",这讽刺味儿,隔着屏幕都能闻到。

开源社区的“垃圾围城”

为什么 Jellyfin 要这么干?

这事儿得从他们项目的“初心”说起。Jellyfin 从诞生的第一天起,就把“代码质量”奉为圭臬——要易读、要简单、要简洁。

他们之前接手的那个代码库,怎么说呢,简直就是个灾难现场:极其脆弱、乱得像一盘意大利面(spaghettified)、过度复杂。为了修好这个烂摊子,团队一直靠人工死磕。但这两年,情况变了。

项目组发现,社区里用 AI 生成代码的贡献者呈“悬崖式”增长。这听起来是好事?并不是。

随之而来的,是大量的批评和担忧。因为很多人提交的所谓“贡献”,根本不是自己写的,而是 AI 一键生成的“垃圾代码”。

这帮维护者坐不住了,直接摊牌:我们要的是高质量的代码,不是 AI 吐出来的电子垃圾。

第一刀:禁止 AI 代写“人话”

Jellyfin 的政策非常直接,第一刀就砍向了“沟通”。他们明确规定:任何直接沟通,严禁使用 LLM 输出内容。

不管是提 Issue(问题)、发评论,还是提 Pull Request(PR)的描述、论坛发言,统统不行。简单说,就是你发出来的东西,必须是你自己脑子想出来的话,是你自己的解释。

如果你直接把 ChatGPT 生成的东西复制粘贴过去?

AI配图

结果只有一个:直接关闭或删除。

LLM output is expressly prohibited for any direct communication... Do not send me something an LLM wrote, if I wanted to read LLM outputs, I would ask an LLM.这话虽然不客气,但说实话,我举双手赞成。我是来看你的想法的,不是来跟 AI 聊天的。

当然,政策也没把路堵死。如果你英语不好,可以用 AI 翻译,但必须明确标注“我是用 LLM 翻译的”,并且最好附上原文。

第二刀:别搞“感觉式编程”

对于代码贡献,Jellyfin 的态度更硬核。

核心原则就一句话:纯“感觉式编程”会被拒绝,你必须为你提交的代码负责。

什么叫“感觉式编程”?就是你大概有个想法,然后给 AI 发个模糊的指令,比如“帮我优化一下性能”,然后不管三七二十一直接把 AI 生成的代码提交上去。这在 Jellyfin 是绝对禁止的“懒惰开发”。

他们列了几条非常具体的红线:

AI配图

  1. 别乱改无关的东西如果你的 PR 说要修 A,结果顺带改了 B 和 C,或者改了一堆无关的功能,直接拒。这通常是提示词写得太烂导致的。
  2. 代码得像样空行乱加空格、无用的注释满天飞、代码逻辑像浆糊……这些会被视为“纯 AI 输出”,拒!提交前,把你的烂摊子收拾干净
  3. 你得懂你在干嘛这是最关键的一点。你必须在 PR 里解释改了什么、为什么改。如果你自己都解释不清这代码是咋跑起来的,那我们也不感兴趣。
  4. 必须测试代码得能跑通,还得专门测试你改的那个功能。有意思的是,评论区里有个观点特别扎心:

I'm of the opinion if people can tell you are using an LLM you are using it wrong.

如果别人一眼就能看出你在用 AI,那你这 AI 用得也太烂了。

真正的反转:AI 不是原罪

读到这里,你可能会觉得 Jellyfin 是个顽固的“反 AI”组织。

其实不然。他们并不反对用 AI 辅助开发。相反,他们认为 AI 是个很棒的工具,能帮经验丰富的开发者做很多事。

他们真正反对的,是 “放弃思考”

The golden rule is this: do not just let an LLM loose on the codebase with a vague vibe prompt and then commit the results as-is.不要把 AI 放在代码库里乱跑,然后提交结果。这是懒惰,这只会产生低质量的贡献。

你可以用 AI 来帮你写片段、帮你查文档,甚至帮你润色,但最后的把关人必须是你

如果你把 Reviewer 的意见直接丢回给 AI,让它去改,然后再把 AI 的改法贴回来?

不好意思,这也不行。我们要的是的反馈,的思考,不是 AI 的复读机。

谁在破坏开源生态?

为什么 Jellyfin 反应这么大?看看评论区的一位开发者的吐槽就明白了:

I've noticed it's flooded with LLM generated PRs... A lot of the LLM generated PRs are a mishmash of 2-8 different issues all jumbled into a single PR.

Issue 追踪器已经被 AI 生成的 PR 淹没了。这些 PR 往往是把好几个不同的问题乱七八糟地揉在一起。还有人一针见血地指出了背后的动机:

I suspect the vast number of individuals in developing countries... are not going to pay much attention to this policy. It’s become a numbers game of automation blasting "contributions" at projects... hoping you sneak one in for your resume/portfolio.这简直成了一场数字游戏。很多人根本不懂项目,甚至不懂编程语言,就是用自动化脚本疯狂刷 PR,企图混进去一个,好写在简历上。

这种“简历填充式”的贡献,对项目来说,不是帮忙,是灾难。

最后的赢家是谁?

Jellyfin 这波操作,看似激进,实则是在为“工匠精神”守门。

他们甚至对第三方项目也立了规矩:主要用 AI 开发的项目,必须明确标注。把选择权交给用户。

而且,他们也不想搞“猎巫行动”。只要你遵守规则、尊重许可证、不窃取代码,他们不会拿着放大镜去一行行查你的代码是不是 AI 写的。> > We, the moderators, are not going to play "LLM police"... This is tedious and a waste of our time and effort.

这话说得挺实在:维护者很忙,没空玩侦探游戏。

但底线很清楚:别把开源社区当垃圾场。

我个人觉得,Jellyfin 的这份政策,可能会成为未来很多开源项目的范本。AI 确实强,但工具再强,也强不过一个会思考的大脑。当我们在谈论 AI 辅助编程时,我们谈论的应该是“如虎添翼”,而不是“让老虎替你跑”。

如果你连代码改了什么都不知道,那你最好还是别提交了。

毕竟,你的名字是签在代码上的,不是签在提示词里的。

参考链接:
https://jellyfin.org/docs/general/contributing/llm-policies/