Node.js TSC 成員Matteo Collina已向Node.js核心提交了一份長達19,000行的pull request,該程式碼主要由AI編寫,儘管作者表示他親自審查了所有變更。現在有一份請願書要求完全禁止機器編寫的程式碼進入該專案.
誠實說?好.
什麼發生了
Fedor Indutny,一位長期為Node.js貢獻的人員,開始了一項禁止使用AI編寫的程式的請願活動,目的是禁止AI編寫的程式進入Node.js核心。這是由於一個約有19,000行的VFS拉取請求所引發的,其中絕大多數是由AI編寫的。
花點時間思考一下這個數字。將19,000行程式碼加入地球最關鍵的其中一個運行時。這是無形中為許多互聯網提供動力的基礎設施。
沒有人能夠審查這些
這是核心問題:當機器能比人類更快地產生拉取請求時,代碼審查就無法擴展。
一個經驗豐富的維護者可能在一個會話中仔細審查幾百行代碼。如果他們充滿咖啡因和憤怒,或許能達到一千行。19,000行代碼不是一個PR。它是一個人質情況。 🫠
→ AI可以無限快地生成代碼
→ 人類仍然以人類的速度進行審核
→ 瓶頸不在產生 — 在於理解
如果你將這些量卸載到志願維護者身上,你並不是在幫助,你是在將你的勞動轉移給他人,而在像 Node.js 這樣的項目中,一個晦澀的錯誤不是失敗,它是一個供應鏈危機.
法律混亂,沒人敢說
現在,來到有趣的部分。許多開源專案會要求你簽署一項稱為「貢獻者授權協議」的文件。簡單來說,你是在聲明:「這是我的作品,我有權限貢獻它,我正在給專案授權使用它。」
CLAs從未設計用於AI生成的程式碼。 誰擁有在百萬級儲存庫上訓練的模型的輸出?你如何保證你能夠貢獻一些來自整個互聯網的機器學習模型所獲得的信息?
→ 如果你沒有編寫它,你能為它簽署一個CLA嗎?
→ 如果模型吐出受版權保護的代碼,誰應該負責?
→ 如果沒有人知道,它是否應該用於關鍵基礎設施?
這些問題不僅僅是理論上的。它們是當前的法律模糊之處。而且 Node.js 核心 大概是找到答案的最糟糕的地方.
這不是反對人工智能
我時常使用人工智能工具。它們在原型設計、探索想法、凌晨兩點獨自做橡皮鴨測試時非常棒。我並不是來說 Copilot 是邪魔的。
然而,將人工智慧應用於輔助思考與將其應用於對關鍵開源專案掃射的代碼大炮之間存在區別。請求書並非說「人工智慧是壞的。」它是在說「我們的審查流程、我們的法律框架以及我們的治理模式並非為此而建。」🎯
這似乎很合理。或許唯一合理的立場就在目前.
這將何去何從
Node.js 不會是唯一會有這場爭論的專案。每個主要的開源基金會都將面臨相同的问题:當貢獻的速度快於我們驗證的速度時,我們該怎麼辦?
有些專案將完全禁止 AI 生成的程式碼。有些則會要求公開。有些會嘗試建立工具來偵測它。這些解決方案都不是完美的。
然而,不採取行動,讓長達19,000行的機器生成PR排隊等待義工維護者的審核,是傷害最大的選擇。這會讓維持這些事物運作的人筋疲力盡。而且它引入了風險,這種風險還沒有人完全理解。
Node.js社區正在劃定界線。我認為他們有權劃定這條界線。💪
開源專案是否需要貢獻者披露程式碼是AI生成的 — 或者在核心中完全禁止它?










