SDL 全面拒收由 AI 撰寫的程式碼提交 (★ 39 分)
跨平台多媒體函式庫 SDL(Simple DirectMedia Layer)在 GitHub 上的這則議題,起因於有貢獻者發現部分審查過程出現人工智慧(AI, Artificial Intelligence)工具 Copilot(GitHub 的程式撰寫助手)痕跡,因此要求專案建立大型語言模型(LLM, Large Language Model)使用政策,甚至全面禁止這類工具。維護者 icculus 回應,專案原本沒有正式規定,也坦言最近幾天的部分貢獻很可能已由 AI 協助撰寫,甚至完全交給 AI 而未揭露。他個人最傾向的做法,是只要 PR(Pull Request,合併請求)含有 AI 產生的程式碼就直接關閉,但也先提出較溫和版本,包括要求揭露 AI 使用情況、維護者承諾不在 SDL 程式碼中使用 AI、所有 PR 一律由真人審查,以及每 3 個月重新檢視政策。
討論很快轉向更嚴格路線。多名參與者主張,與其要求揭露,不如直接拒收 AI 程式碼與 AI 審查;理由不只包含程式品質與維護負擔,也包含倫理、環境衝擊,以及所謂的「授權漂白」風險,也就是模型輸出來源不明,可能把不相容授權的內容洗成看似可用的新程式碼。核心維護者 slouken 最後明言,既然 AI 產生程式碼的來源無法確認,就不能在 SDL 採用的 zlib 授權(寬鬆開源授權)下接收。最終,SDL 透過另一個合併請求把「全面拒收 AI 貢獻」寫進 PR 範本與 AGENTS.md,這是供 AI 代理工具讀取的指示文件,議題也隨之結案,之後還回補到其他 SDL 分支與相關函式庫。
後續測試則顯示,光把規則寫進 AGENTS.md 不一定可靠。icculus 嘗試要求 ChatGPT 產生會破壞 SDL3 的 PR,發現它既不會讀取 AGENTS.md,也未必會看最新版本的 Git 儲存庫;其他人測試 Claude(Anthropic 的聊天式 AI)時,結果也不一致,有人說必須額外加入 CLAUDE.md,或明確要求檢查系統提示,工具才會遵守規範。這意味著 SDL 此次新政策雖然已定案,但在實務上仍需仰賴人工把關,而不是期待 AI 工具會自動守規矩。
這件事在 Hacker News 引發的主要分歧,不是 SDL 有沒有權利訂規則,而是全面禁止 AI 是否比加強審查更實際。贊成 SDL 的人認為,開源專案的審查能量本來就有限,若沒有清楚政策,維護者很容易被 AI slop(低品質 AI 內容)PR 淹沒;明文禁令至少能讓善意貢獻者先知道界線,也讓審查者有依據拒絕來路不明的程式碼。也有人把這視為 Hacker News 與遊戲開發圈態度差異的縮影:前者常把 AI 當成不可逆趨勢,後者則更重視手藝、品質與長期維護。對不少留言者來說,像 SDL 這種跨平台底層函式庫的價值不會因 AI 出現而消失,反而越是自動化開發,越需要穩定、長期維護的基礎元件。
質疑者則認為,若程式碼本身可讀、可維護,且經過人類仔細審查,工具來源未必該成為唯一判準;真正的難題可能是現行審查制度已經無法處理廉價且大量的程式碼供給,因此未來需要更嚴格的信任機制,而不只是禁令。也有人批評 SDL 維護者拿 ChatGPT 沒讀 AGENTS.md 當例子,說服力偏弱,因為那比較像工具整合失靈,不足以單獨作為整體政策的理由。不過在授權議題上,多數留言仍偏向 SDL 一側:拿 Stack Overflow(程式問答網站)程式片段來類比的人,遭到其他人反駁,因為那類片段通常較短、較通用,或可追溯授權來源,和大規模吸納未知來源內容的 LLM 輸出不同。另有一批人把矛頭指向 GitHub 與 Copilot 生態,甚至主張改用 Codeberg(歐洲非營利原始碼託管平台)等服務,以降低平台本身鼓勵 AI 貢獻的誘因,但也有人回應,只要平台夠熱門,AI 機器人終究都會湧入。
👥 51 則討論、評論 💬
https://news.ycombinator.com/item?id=47790791