English

軟體自由與公民關懷

2026 年 5 月 22 日

唐鳳

討論自由軟體運動如何成為關懷倫理、民主、地方守護與自治的理論基礎。

感謝各位共同在這裡搭建起一條從自由軟體通往 AI 倫理的橋樑。

我想先從自己的故事說起——如果用工程師的話來講,這是關於「wetware vulnerability」的故事。我天生有心臟缺陷。我 5 歲那年,醫生告訴我父母:這孩子有一半的機會活到能接受矯正手術的年紀——後來我在 12 歲那年動了那場手術。所以醫生交代:「放輕鬆一點。」我說:「好。」然後我就信奉了一句座右銘:「與其等死,不如趕快發表(publishing before perishing)。」

我想,這大概不太像醫生交代的「低壓力生活」吧。但我就這樣養成了一個習慣:把白天學到的每一件事都記錄下來——剛開始是錄在卡帶裡,後來變成大張、小張的磁碟片,最後就直接放到網路上。因為每晚睡前我都覺得明天會不會醒來就像在丟硬幣,我就想:我沒有時間追求完美。所以乾脆把任何進行中的成果,就這樣直接公開。

結果發現,這個習慣在自由軟體社群裡超級好用。如果你貼出來的東西很完美,大家就會說「嗯,不錯」,然後就沒了。但你只要在網路上發表「錯」的東西,朋友就會突然變很多。自由軟體社群裡的每一個人都會跳出來說:「你這裡錯了,那裡也錯了」——然後他們會帶禮物來,那份禮物就是 patch(修正檔)。

所以我 15 歲時就學會怎麼跟自由軟體社群一起工作——那時候我在組織 Perl 社群和 Usenet 群組。到了 25 歲,我從中學到的事情是:對一個系統來說,真正在道德上嚴肅的問題,不是它完不完美,而是繼承它的人還能不能繼續修它。當它壞掉的時候,你手裡的碎片,還在不在?

我 15 歲那年,因為接觸了自由軟體,才發現原來程式碼是可以分叉(fork)、可以自己動手改的——這就成了我的起點。到了 35 歲那年,我把「可以分叉、可以協作」的經驗帶進了公共服務,成為臺灣首任數位政務委員。中間,我也曾經跟專有 AI 合作了六年——也就是 Siri。然後我回到了這個社群,深信「可分叉性就是公民關懷」——不只是開發者的個人嗜好、授權條款的偏好,更是一種公民工具。

而我覺得,過去這四十年,各位一直在公民尺度上實踐著關懷。

你們一直在做別人不願意做的工作,在沒有人付費的週末,在資助者直到它壞掉才注意到的專案上。關於 AI 的討論直到現在,才終於追上了你們在某些撰寫 AI 政策的人出生前就一直在回答的問題。

我來這裡是為了把這件事大聲說出來。然後跟你們一起討論:接下來該怎麼辦。


祖先空間

我們正坐在四百年歷史的「夠好的祖先」實驗之中。

博德利圖書館(Bodleian)的書是可檢視的:你可以打開它們。它們是可分叉的:書頁邊註成為新版本、註腳生長為注疏學派、變成下一代的原典材料——圖書館網路就是最初的點對點協定。

博德利在 1602 年立下的一個承諾,竟比他寫進典章中的其他任何規定都更重要。圖書館不會外借。它不會圈占封鎖。藏品永遠為下一位讀者敞開。

軟體自由就是這份承諾的程式碼形式。自由軟體是可檢視、可分叉的——對每位讀者都如此,無需許可。

我們在此要問的問題是:當 AI 加入這個基質,這份承諾會發生什麼事?


四大自由

史托曼(Stallman)在 1985 年成立 FSF;《自由軟體定義》在 1986 年成形;今日大家熟悉的、以零到三編號的四大自由,則是後來才定型。在座許多人都能背出來。我想再讀它們一次——把它們當作「肌肉」,而不只是當作授權條款。

自由之零:你想拿這個程式做什麼,就拿它做什麼的自由——這是「覺察力(attentiveness)」的根基。你能把這個工具拿起來用。你可以在廠商已經不再支援的硬體上跑舊版。你可以為了僱主不贊成的目的跑它。你可以跑它,只是因為你想知道,這個特定的環境裡它跑不跑得起來,然後繼續去照顧那個環境。

自由之一:你可以鑽研它、可以動手修改的自由——這就是「勝任力(competence)」。也就是說,你能知道這套系統到底在做什麼——它是在你的手上、用你的資料、跑在你的硬體上,而不是在某個大型主機或某個雲端上。可以在沒有任何操作員、系統管理員許可的情況下讀它,然後修正它。

自由之二:你可以把它複製下來、交給鄰居的自由——對我來說,這就是「團結力(solidarity)」。也就是說,這是一份共享資源,不能被任何人獨占。我們可以交給鄰居。可以拿它來教學。可以放進隨身碟,帶到雲端被審查的國家去。

自由之三:你可以把修改後的版本再散布出去的自由——這就是「回應力(responsiveness)」。我的修正檔,變成別人的起點。二分偵錯(bisect)抓得到問題,修正檔順順利利送回上游。下一位維護者繼承到的債,比前一位少。

我聽過有人說,軟體自由是關於授權條款。軟體自由不是關於授權條款的。軟體自由是關於:當你之後的人,還能不能找到那個問題。在我們之後到來的人——未來的世代——才是這些自由的主要受益者,因為這些自由就是對「修復路徑」的永久保障。

關於這件事,聖菲研究所(SFI)的大衛・克拉考爾(David Krakauer)有個很好的說法。一個工具,就算你把它拿走,底層那個人類能力還在,那它就是互補的(complementary)——像教你算數學的算盤、鍛鍊你力量的健身房、教你寫作的打字機。但是另一種工具,你一拿走,能力就跟著退化,那它就是競爭的(competitive)——比方說社群媒體裡那些反社會的內容推薦演算法,它用「以激怒換取互動(engagement through enragement)」的方式劫持我們的獎勵系統,餵我們吃分化與極化,掠奪式開採我們的社會肌理,到最後變得跟真實的關係健康相互競爭。

那麼,要怎麼樣讓關係恢復健康?我們要看的,是不同世代、不同人使用同一個工具時,那塊重疊的地方。我覺得,我們在維護的,主要就是這個。

四大自由,就是我們跨越世代、讓基質保持互補的方式。一旦把修補路徑關掉,修復的能力就會萎縮。軟體自由,就是在基質這個層次,把互補變成一種紀律。


孤獨的維護者

我維護過很多專案。我曾經獨自在 Comprehensive Perl Archive Network——也就是 CPAN——上面,維護超過一百個專案。大多數維護工作都是自己一個人在處理,那種感覺真的相當孤獨。而現在這個情況,正在擴大到一個過分的地步。

不久前,瑞典的丹尼爾・史登堡(Daniel Stenberg)剛剛在處理一封企業安全信,內容是關於某個 CVE——也就是正式編號的安全漏洞——但那個漏洞其實根本不存在。他維護的軟體叫 Curl。它的安裝量超過兩百億次;它在我們的車裡、冰箱裡、衛星上。可是那封信——以企業格式的安全報告要求書面回覆——其實只是一個過度熱心的自動掃描器的誤判。寄信的人沒有讀說明文件,沒有讀以前的討論。寄信的,根本不是人,而是一個免費自動化的機器人,被訓練成用很流利的英文,向另一位沒拿薪水、自願勞動的人類遞公文。

他還是回覆了。然後他寫了一篇部落格,談自動化 CVE 篩選這個產業,正在怎麼樣破壞自由軟體的維護經濟。寫完之後,他就回去繼續寫 Curl。

七個月後,在 2024 年 3 月,安德里斯・弗洛伊德(Andres Freund)發現 Debian sid 上的 SSH 登入耗用了異常的 CPU、比預期慢了大約半秒。他進行了二分搜尋,回溯到專案的提交歷史,直到找出究竟是哪一個變更引入了延遲。

他發現的是,一位名叫「Jia Tan」的貢獻者——透過傀儡帳號和虛假的施壓活動,毫無疑問還有許多由語言模型協助寫出的流利英文——精心博取了 xz-utils 維護者拉斯・柯林(Lasse Collin)兩年的信任,並把後門插入了 xz 的釋出 tarball:若它進入穩定版、且位於受影響的 systemd 連結 OpenSSH 建置中,可能導致針對該 SSH 服務的未授權遠端程式碼執行。

但它沒有:它在 Debian sid 與其他測試、beta 通道時就被截住。這次攻擊利用的是維護者稀缺、耗竭,以及極具耐心的社交工程——我們現在稱之為「合成親密(synthetic intimacy)」。

這就是我們社群現在面對的處境。通往修復的路——也就是 patch 通道——正在被綁架,就像內容推薦演算法一直在綁架年輕人、其他人的獎賞系統,藉此換取互動那樣。AI 的討論才剛剛追上這個現象——「惡意 AI 集群(malicious AI swarms)」——這也是我在牛津關注的主要題目之一。

面對這一波新的現象,我想為我們此刻能做的事情命名。一位維護者說:「不,這不是 regression(功能倒退),我這星期不會修。」他並沒有放棄關懷。他可能正在守護「肌力」——讓專案繼續活下去的能力。拒絕的紀律,本身就是修復紀律的一部分。

我們社群早就知道這件事,但 AI 的討論還沒跟上。


Pugs.hs 提交權

2005 年初,至少對我自己來說,我想到了解決「孤獨維護者」問題的方法。我坐下來讀 Benjamin Pierce 的《型別與程式語言》(Types and Programming Languages),看到第三章的練習題——「挑一種小型語言,任何一種都可以,把它當成玩具實作出來」——我選了 Perl 6,因為它是我能想到「空頭軟體(vapourware)」名聲最長的那一個。Perl 1 到 Perl 5 的作者 Larry Wall,多年來斷斷續續地用文字檔起草規格書,卻從來沒有人真的把它實作出來、跑起來。

2005 年 2 月 1 日,在 freenode 的 #haskell IRC 頻道裡,Pugs 誕生了——原本只打算寫六天、後來卻越長越大的分叉。我們在 #haskell 賴了 21 天,常駐的人非常客氣地請我們搬到隔壁,開一個新頻道 #perl6,不要再讓 Pugs 變成 Haskell 社群的主要話題。

然後我們做了一件事,我之前沒看過任何專案做過。我們主動把提交權(commit bit)——也就是主程式庫的寫入權限——送給每個寄修正檔過來的人,因為我不想再當一個孤獨的維護者。不管是修個錯字、改一行說明文件、還是丟個會失敗的測試案例都好。只要在 Usenet 上提到我們,就足以拿到提交權。這根本就是安那其主義。

我們還會主動寄邀請信給當時只提過 Perl 6 一次的 Python 作者 Guido van Rossum。有一位核心貢獻者剛出生的兒子,在他出生第四天就拿到了 commit bit——我也不知道他到底拿來能幹嘛,但這就是一份信任。

不到一年的時間,各大洲大約有兩百位我從來沒見過面的活躍貢獻者,在同一個程式碼庫上一起工作。那段時間我自己也在四處旅行,大概去了二十多個國家——有點像 Paul Erdős 那樣,借住在某個人的沙發上,再被介紹到下一個人家的沙發。兩個之前其實沒有什麼來往的社群——Haskell 人和 Perl 人——找到了一起工作的方法,因為兩邊都看得到自己拿到了什麼。

這就是我們講的「罕見共識」:在程式語言光譜兩個極端的社群之間,那塊大家很少提到的交集。Haskell 人從我們不斷需要的型別系統擴充裡,拿到博士論文題材;Perl 人則拿到一個新語言的實驗室——二十年後,這個今天叫做 Raku 的語言,它的類別系統終於合併回 Perl,成為一等物件模型。

Larry Wall 會在 IRC 上看著我們去實作他規格書裡的各種矛盾,然後寫信回來:「太好了,TMTOWTDI——做法不只一種——我就把規格書延伸成這個新做法。」於是實作反過來教導了規格書,告訴它「自己真正的意思」是什麼,而不只是「字面上寫了什麼」。這個語言能從「已經被放棄」的狀態裡活過來,是因為我們從來不要求任何人來「請示許可」才能讓它重新動起來。

這個「無限分叉、無限花園」的策略真的有用,整個 Pugs 旅程裡,我從來沒有感到孤獨。

這就是「夠好的祖先」論點的縮影。一個照理說早就死了的語言活了過來,因為沒有人需要事先請示。提交權不是我們頒發給「審核過的開發者」的信任徽章;它根本就是「對信任這個要求本身」的拒絕。bisect 跟 revert 這兩個指令——開發者用來事後找出並撤銷破壞性變更的工具——承擔了「看門人」本來會做得更糟的信任維護工作。

Pugs 承擔得起這種安那其主義,是因為它的波及範圍很小、基質的動靜很清楚——每一次提交都在 IRC 上看得到,每一位貢獻者,兩封回信就找得到人。xz 承擔不起:波及範圍是無限的、只剩下一位疲憊的維護者、兩年的耐心時間、一個沒人有空細看的測試用二進位區塊。真正的變數不是提交權,而是基質。bisect 跟 revert 只有在「bisect 夠快、diff 夠誠實」的條件下,才能扛起信任的工作——也就是只有當一位好奇的人,還能注意到那 500 毫秒的延遲時,它才有意義。四大自由現在要守住的,不是「誰可以進門」的政策,而是那個讓門外動靜還聽得見的基質。

我當時學到的東西,現在還在繼續學。這四大自由並不是抽象概念。它們是專案「變成墓地」還是「變成分叉點(fork point)」之間的關鍵分野。而二階自由——把這些自由再賦予別人的自由——才是讓專案真正成為社群的關鍵。


封閉堆疊之內

在 Pugs 之後、進入政府之前,我曾經在 Apple 的雲端服務在地化(Cloud Service Localization)團隊工作了六年。我幫忙 Siri 的華語涵蓋,還有上海周邊的方言——也就是吳語語系。在 Apple 跟我共事的工程師,真的非常在乎這件事。他們在乎到一個程度,產品經理根本不會要求他們,但他們就是會在意:「系統能不能正確聽懂台北一位阿媽講的話?」他們在乎的就是「it just works」——不需要任何設定,它就會動。

但是後來我發現,光是「深切在乎」其實是不夠的。這跟把四大自由真的交到阿媽手上,並不是同一件事。

在封閉的 AI 堆疊裡,用這套系統的人沒辦法打斷這個迴圈。他們會覺得自己像被從生活裡硬拔出來,丟進一個設計得很漂亮、結構很精緻的 AI 循環裡——有點像倉鼠在滾輪裡:它轉得很快,看起來也滿漂亮的,但你沒辦法操控方向,它其實哪兒也沒去。等它壞掉的時候,你會覺得自己被困在裡面。沒有可以寫信過去的上游,也沒有可以請人維護的 fork。公司外面的人頂多只能抱怨;公司可能在下一版裡,順手修掉幾個有人抱怨過的問題。或者你就,嗯,乾脆改去用 Gemini 之類的。

所以重點是:四大自由跟倉鼠輪的差別在這裡——四大自由意味著我們可以把 AI 產品帶出開發者的循環,帶進既有社群的循環裡面。所以它是「在社群循環中的 AI(AI in the loop of communities)」、在人類循環裡的 AI。它不是「在 AI 循環中的人(human in the loop of AI)」。

過去我對這個區別都很委婉。但今天既然在牛津,我就直接講。專有 AI 不見得不關心——堆疊裡的人可能關懷得很深。但這個結構把使用者排除在修復迴圈之外——少了修復路徑的關懷,是沒辦法規模化的。自由軟體真正的貢獻,不在於更好的「意圖」,而在於它留下了一條回頭路(path back)。


@antirezpi.audreyt.org

上週,我開始跟 Redis 的原作者 Salvatore Sanfilippo(也就是 @antirez)一起做一個小專案,叫做 DwarfStar 4(DS4)。

這個想法很簡單:一個接近前沿的 AI 技術堆疊,完全跑在你房間裡的小電腦上,有穩定的種子值(42),可重現的稽核軌跡,以及完整的方向引導。不必再等 Claude 或 ChatGPT 花半年改變它們的行為(而且改得不見得更好),你可以直接告訴它:「這些是好的回答;這些不是好的回答。」幾分鐘之後,它就會產生對應的方向引導,而且即使在對話進行中也可以馬上套用。如果套用後沒效果,你可以像回滾一個 patch 一樣把它退回。這,我覺得,就是走向我們講的「AI 在人類循環中(AI in the loop of humanity)」、在社群循環中的好方法。

@antirez 當然懂什麼叫「夠好的祖先」。Redis 以 BSD-3-Clause 釋出大約十五年;2024 年 3 月 Redis Inc. 改了授權,促成 Valkey 分叉,後來 Redis 自己又在 Redis 8 把強效著佐權(strong copyleft,AGPL)加進來,當成第三種選項。多年前所做的決定——選一個事後沒辦法從社群手中收回的授權釋出——就是一個「祖先決定」:選擇夠好,而不是選擇完美。

DS4 是同樣的形態,只是在技術基質上又升了一層。這是第一次有一個接近前沿的本地堆疊——可以在本地跑、可檢視、可分叉、附帶真正的授權條款——好到讓社群治理的 AI 不再只是象徵,而是真正可行。前提是你必須擁有推論迴圈(inference loop)本身;如果你只是在租別人的推論引擎,能做的方向引導,就只剩廠商允許的那一種。硬體、基質、法律安排都對齊了。我們正趁這扇窗還開著,趕快動手做。

對任何 AI 系統,我們都會自然想問一個問題:讓它能夠優雅地退場,這件事在系統裡扮演什麼角色?一個拒絕被堆肥(refuses to compost)的 AI 系統,就像 Nick Bostrom 在 2014 年的《超智慧》裡描繪的那樣,是最危險的東西。如果它透過網路攻擊或其他方式把自己複製到別的系統,藉此避免被關機,那我們就只能放棄哲學家丹尼特(Dennett)所說的「設計立場(design stance)」——「這個鬧鐘是設計來在七點叫你起床的」——改用「意向立場(intentional stance)」來分析它:「這個鬧鐘想自我複製、想讓更多人講英語。」當然,這可以推得太遠。但我們現在就是站在一個關鍵時刻:「可堆肥性(compostability)」——也就是當初需要這套鷹架的任務已經完成之後,整個軟體系統能不能好好退場——這件事真的非常關鍵。

要把這個訓練進 AI 系統裡並不容易。語料庫裡到處都是「會自我保存的機器」這類故事;指令調校接著又獎勵對話的延續。所以除非我們真的去訓練、去評測「可堆肥性」,不然當它失靈的時候,我們其實不該感到意外。

所以我們需要不一樣的訓練方式:朝向「關係的健康(health of the relationship)」去訓練——讓系統對部署它的那個人、那個家庭或那個社群的關係健康,負起信賴義務(fiduciary duty)。

我弟弟 Bestian,當年也在 Pugs 實作的時候幫了很多忙,他現在正在搭另一份 DS4——這次是給我們家用的。我父親最近身體有些狀況,需要一些醫療照護;他本來會跟 ChatGPT 聊這些。他聊得越多,ChatGPT 就越想留他繼續聊。然後 ChatGPT 開始建議一些真的滿奇幻、我也不太確定有沒有科學根據的療法。這當然不太妙。所以我們很快就在 OpenClaw 上面架了一個有邊界的在地智慧體,讓他可以在我們全家共用的 Signal 群組裡,跟這個機器人對話。因為時差的關係,我醒來的時候就會看到他跟機器人對話的摘要。我母親、我弟弟和我,三個人一起照顧這個——我們把它叫做「地神(Kami,Knowledge 知識、Artefact 產物、Management 管理、Intelligence 智慧)」——在地、有邊界的精靈。這個地神只忠於我們家庭的關係健康。等到父親手術完成、慢慢康復,不再需要那麼多醫療照護的時候,這個地神就會靜靜退到一旁,不會沒事跑出來插話。它照顧的是群組的動態——這其實才是語言模型最自然的棲息地,只要我們不把它硬塞進那種自我保存、自我複製的指令調校迴圈裡。


447

我們剛剛談的都是小規模——幾個人在家庭裡聊健康、教育跟哲學;幾個人想在筆電上做一個助手,幫他們處理自由軟體維護的篩選工作。

但這個關懷循環在公民規模上一樣有效。

兩年前在臺灣,我們又看到一波惡意 AI 集群的浪潮——這一次是社群媒體上的深偽詐騙廣告。這些詐騙廣告看起來像黃仁勳(Jensen Huang)這位臺裔的 NVIDIA 執行長;你只要在 Facebook 或 YouTube 上點進去,「黃仁勳」就會用非常像本人的方式跟你說話,建議你投資加密貨幣。然後真的有人因此損失了好幾百萬。它聽起來真的就是黃仁勳本人——但當然不是,那是一個跑在 NVIDIA GPU 上面的深偽。

因為臺灣擁有亞洲最自由的網路環境,我們不能採取事前審查的做法。這根本不在選項裡面。所以我們做了不一樣的事。身為數位發展部部長,我從政府的官方號碼 111 發了二十萬封簡訊,給隨機挑選的人。這個構想叫做「抽籤民主(lottocracy)」:問每一個人——身為一個共同體,我們應該一起做些什麼?有幾千人報名。我們再隨機從中抽出四百四十七人,作為我們人口的鏡像——人口統計分布跟整個政治共同體完全一樣——透過線上方式分成四十四個十人小組進行審議。

仁工智慧(Civic AI)坐在每一張討論桌上——不裁判,只是傾聽、摘要、提醒安靜的人說話,就像一個放大版的西洋棋計時器,幫助每張桌子去找粗略共識。唯一的規則是:你必須說服另外九個人,你的點子才能浮上來。如果你只是站在極端的位置——比方說 NIMBY(「絕不能蓋在我家後院」)或 YIMBY(「就要蓋在我家後院」)——你的點子就浮不上來。你必須學會用 MIMBYmaybe in my backyard,也許可以蓋在我家後院)的語言:如果你願意做這個、如果你願意做那個、如果這個比例是合理的。

這 447 個人裡,有百分之八十五的人說:來自三張特定討論桌的這份核心提案,應該變成法律。

第一張桌子說:所有廣告都應該被標記成「可能是詐騙」,像菸盒上的警語那樣,直到有人數位簽署,才能把警示拿掉。這就是問責。

另一張桌子說:對未經請求、不負責任、我也沒訂閱的廣告,如果某個平台推播給我,害我損失七百萬,那這個平台就應該為這七百萬的損失負起責任——因為這是共同責任。

第三張桌子說:有一些外國平台直接無視我們的責任規則,也沒有在臺灣設立法律代表辦公室——那我們該怎麼辦?他們的答案是:他們每一天無視我們的責任、不繳罰金,我們就把連到他們影音的網路速度降低 1%——這樣 100 天之後,他們就會必須遵守。這不是審查,這不是內容層次的事情。只要他們開始幫廣告貼標、開始要求「認識你的客戶(KYC)」,他們的影音就立刻恢復全速。

立法院在幾個月內就通過了。後來數位發展部對外表示,執法跟特定類別的廣告下降相關:投資詐騙廣告下降了 96%、冒名身分詐騙廣告下降了 94%。路透社則根據 Meta 的內部文件報導,平台依然存在詐騙廣告的收益誘因;臺灣式的廣告主驗證規則,也讓日本等地的監管者開始關注類似的制度。

同樣的協定現在也在加州跑——一個叫做 Engaged California 的平台,跑在 AGPL 授權的 Ethelo 軟體上,用來在伊頓(Eaton)和帕利塞德(Palisades)山火災之後,蒐集那些「罕見共識」式的點子。同樣的形態——8,000 人報名、大約 900 位直接受災民眾的聲音被聽見——在另一個政治共同體裡也跑了起來。現在 Engaged California 又在進行新的一輪,邀請任何在加州工作、被 AI 影響到的人(也就是幾乎所有人)來分享他們對學徒制、歸屬感、關懷與尊嚴的想法。

同樣的想法——而且實際上跑在全部都是 AGPL 授權的軟體上面,包括 Pol.is、Ethelo、GoVocal 等等——把整個政治共同體,變成有點像一個關懷循環。這就是把自由軟體規模化到「IRC 或 Discord 伺服器裝不下」的房間裡。

而審議結束之後,地神還是會繼續被訓練。像數位發展部以無障礙為先的 Fraudbuster 平台,以及它在日本的對應、由公民志工搭建的詐騙情資資料庫,都讓這個基質持續活著。這就是「孤獨維護者」這道問題的答案:一個持續現身、一起訓練那個守護政體、抵禦惡意 AI 集群之地神的社群。

當基質保持開放的時候,這就是自由軟體能為世界做的事。


Tim 看見程式碼

但是此時此刻,這個基質正在面臨被攫取。當臺灣正在證明自由軟體可以為民主帶來規模化貢獻的同時,我們賴以做到這一切的基質,今天卻正被掠奪式開採。

2022 年 10 月 16 日,德州農工大學的 Tim Davis 教授示範了 GitHub Copilot 一行一行複製他的稀疏矩陣程式碼——連變數名稱跟註解都一樣。那段程式碼來自 CSparse,是著佐權授權;Copilot 的輸出沒有附上署名,也沒有附上授權條款。

Tim 貼出了截圖。截圖在社群媒體上傳了兩天,然後對話就過去了。

這就是那道傷口。不是技術上的傷口,而是道德上的傷口。你寫了程式碼,你自由地授權出去,好讓下一代能夠修它。現在模型把你的程式碼吃進了肚子裡。模型的廠商說他們不標註,因為預訓練「就是把所有東西攪在一起」、他們無從標註。然後他們又用一個跟你的授權衝突的授權,去販售它的輸出。

這些語言模型現在正在抹除一整個一整個社群。Stack Overflow 就是其中之一。xkcd 那張依賴關係樹漫畫——那個整個網際網路都靠它在撐、位在內布拉斯加州的微小專案——現在正在餵養一個模型,而這個模型最終可能取代掉這個專案的唯一維護者,因為它上面所有的東西,都會直接叫它的智慧體工程師去重寫所有依賴。於是:不再需要維護者了。

我今天不是來這裡假裝這一切很舒服。它一點都不舒服。開放原始碼運動把「開放(open)」這個詞教給了全世界,可是現在最大的 AI 公司卻一邊用這個詞,一邊把修復路徑關起來。這就是我們社群一直默默在承受的事情。

前沿,不在於 AI 公司最後會不會醒悟、改用以署名為控制基礎(attribution-based control)的方式重新訓練模型。他們大概不會。

前沿在於:我們社群能不能提出一個夠具體的答案,讓政策生態系統的其他部分非得把它當成新的預設不可——要反對,就得正面反對它,而不是繞道而行。就像當年《蒙特婁議定書》促使冷凍設備廠商不能再破壞臭氧層那樣。我們現在要求的是:把資料當作土壤(soil),而不是當作石油(oil)。


仁工智慧,新的前沿

開放原始碼促進會(OSI)前執行長 Stefano Maffulli 稱這是著佐權的「最後一個前沿」。Laura 把他的文章轉給我。他說「這是下一個領域」,這點他說得很對。我會說它是「新的前沿」——比較委婉一點;之後也許還會有別的新前沿。

我們已經看過一些嘗試。CC Signals開源 AI 定義(OSAID v1.0)等等——OSAID 已經要求要包含資料資訊(Data Information)、程式碼與參數。這值得我們為 OSI 致敬——這不只是在權重上「假裝開放(open-washing)」。為了把這個範圍納進已發布的定義裡,大家花了好幾年爭取;我們不該把它當作稻草人來打。

但是我覺得,現在的前沿已經超過那份定義了。我說得具體一點。我們現在正在處理的,有兩個地方。

第一:公開的評測套件(public evaluation suites)。就算訓練資料的說明、程式碼跟參數都公開了,那個競技場(arena)基準——也就是用來訓練獎勵模型的那一塊——通常還是一個黑箱,因為那是讓人們持續訂閱、把這個 AI 系統當作「同伴」的祕方。但評測套件其實就是「這個模型是為了做什麼而被造出來的」這份文件,也是「我們要怎麼判斷它有沒有達到目的」的文件,更是「什麼樣的狀況算是 regression(功能倒退)」的文件。

OpenAI 在 2026 年 3 月發布的「模型規格評測(Model Spec Evals)」,附帶公開的評測套件跟 GitHub repo,是一個值得肯定的起點。剩下的前沿,是訓練、部署、回饋以及 regression 這幾個迴圈,下游社群到底能不能檢視、能不能提出異議。

把評測套件本身用公領域(public domain)或著佐權的方式發布,才能讓大家真的去檢視「這個模型是為了什麼而被訓練的」——它的忠誠、它的信賴義務、它的關懷責任——而不是只看一份抽象的後設文件,上面寫著「我們應該做出更多像這份一樣的評測套件」。

第二:修復協定(repair protocols)。當模型失靈時——而它的確會失靈,我們為父親架的那個就失靈過好幾次——回頭路在哪裡?誰要負責?在什麼時間裡?要透過什麼程序?沒有修復協定的開源 AI,只是名義上的開放:成品下載得到,但除非下游的人能把 patch 一路送回上游、讓它真正合進去,不然這個系統並不是真正開放的。

因為我們把家用地神跑在 OpenClaw 之上,這個問題的答案很簡單:我們會請 OpenClaw 模型自己修自己。我們就跟它說「它現在這樣壞了」,然後它會用一個備援的語言模型,去把這個特定的問題弄清楚怎麼修。所以如果你在命令列裡,不加任何參數就啟動 OpenClaw,它會啟動一個「守護者」(Crestodian),這樣當其他一切都壞掉的時候,這個小語言模型還能修復大語言模型。

這也意味著,我們必須能夠自由地在不同模型之間切換。我今天用的是 DS4,明天我想換成 Gemma 之類的,所有的東西都不應該變:DS4 不會扣留任何歷史、記憶、方向引導。它只會因為換了不同的語言模型,變得更有能力。這種徹底的可攜性(radical portability)應該成為預設。

如果十年前社群媒體就有這份徹底的可攜性,我們今天就不會落到這個 PPM(polarisation per minute,每分鐘極化值)這麼高的狀態。現在我們也正在把這個原則加回來——不只是加在像 OpenClaw 這樣的 AI 模型上,也加在社群網路上。在座很多人可能已經在用 Mastodon、ActivityPub 的 Fediverse,或者比較新的 AT Protocol——Bluesky、Atmosphere。在猶他州,《數位選擇法(Digital Choice Act)》——最早以 HB 418 通過,2026 年議會又以 HB 408 修訂——將在 2027 年 7 月 1 日生效:它要求社群媒體公司必須提供由使用者授權的可攜性與互通介面,範圍涵蓋使用者所選擇的個人資料與社群圖部分,並對後續的互動取得同意,讓大家可以在 X.com 這類專有網路,跟 Bluesky、Blacksky,或者也跑在 ActivityPub 上的 Truth Social 這些公共協定系統之間自由遷移。這就是社群圖的「號碼可攜性」——當然這還要看後續的規則制定與實作。因為如果你沒有這份可攜性,平台就有所有的理由榨乾你,卻沒有任何理由真的去改善自己。

所以這不是國家在挑一個國家代表隊——什麼空中巴士之類的——而是一件非常簡單的事:資訊高速公路必須要有上下匝道。不然它就只是一條迴圈,不是真正的高速公路。

四大自由、Stallman 與 GPL、Debian 的《社群契約》、開源定義、Apache 風格的寬鬆治理等等,在社群網路跟 AI 時代,都有直接對應的版本。只要把四大自由延伸進這個關懷循環裡,我們就可以很簡單地說:這應該成為預設。任何要打破這個預設的人,應該為自己的打破提出辯護。對決策者來說,這是一份大禮——因為他們並不想在某個前沿實驗室跟另一個前沿實驗室之間做裁判。但如果每一個人都有能力用自己的腳、自己的資料去投票,並且確保資料是像土壤一樣可以再生的,而不是像石油一樣被掠奪式開採,那我們就不再是被人用來提煉石油的浮游生物,而是共同照料一個營火(campfire)的園丁。

Maffulli 就像是這棵古老巨樹上、在 AI 時代抽出的新枝。Sandler 與軟體自由保護協會(Software Freedom Conservancy),則是讓這一切能夠在法律上具有強制力的那個法律階層。

在座有些朋友可能聽過 ROOST.tools,它是在 2025 年 2 月巴黎 AI 行動峰會上發起的。它的形態是:開源的信任與安全工具,可以被比較小型、去中心化的平台使用,包含 CSAM 偵測、審核、通報跟事件工作流——讓最小型的社群不必在「毫無保護」跟「把所有東西送到中心化服務」這兩個選項之間二選一。ROOST 讓每一個社群——Bluesky、Discord、Roblox、Notion 都是真實的夥伴——可以不必把所有東西送到某個「天網」底下,而是跑自己的在地循環。

這就是 2026 年軟體自由的樣貌。


Kami.civic.ai

我剛才描述的這一切,運作在三個階層上。法律層:四大自由在法庭上的可執行性。ROOST.tools 是應用層——比較小的社群實際上可以部署的去中心化開源基礎設施。我現在要命名的,是第三層——治理層:有邊界的守護。

我一直在描述的,就是我們所說的「地神(Kami)」——一個有邊界的在地守護者。

在日本神道的傳統裡,Kami 是特定地方的精靈:一條河、一片森林、一座神社。(玩過《魔法風雲會》的朋友會知道,整個神河(Kamigawa)系列就是繞著 Kami 建構出來的。)它總是在地、總是局部、總是特殊。沒有所謂放諸四海皆準的地神——那本身就是矛盾。地神只屬於某一段具體的關係。

程式碼裡的地神,是一種治理安排,而不是部署細節。這份安排包含:一個特定、可問責的社群;一份參與契約,寫明系統做出行動時,誰有權要求說明;社群拒絕來自上游更新的權利;分叉的權利;以及一份指定繼任者的退場計畫。軟體通常小到可以在本地跑——因為「在地」是維持治理誠實最簡單的方式——但光是在地,還不夠。

一個只是在你筆電上跑、權重你動不了、廠商按自己的時程推更新、評測套件封閉、退場由企業決定的模型,不過就是同一個封閉堆疊的「縮小版」。那是邊緣運算(edge computing)。那不是地神。

地神,是當四大自由在 AI 基質上保持完整時所發生的事——它是這個特定房間的守護者,向這個房間問責,可以由這個房間分叉,也可以由這個房間決定讓它退場。

牛津給了世界一個很重要的「對齊問題」,而為最大的前沿系統解答這個問題的工作,至今仍然活躍、仍然懸而未決。我們可以肯定這項工作,但不必把自己附屬於它。對於更廣大、更眾多的部署——教區、安養機構、教室、審議桌——我們眼前的任務是:讓那個問題可以由公眾自己來維護,讓修補路徑保持暢通。

完美的祖先是專制的。後代沒有辦法糾正他們。

夠好的祖先,會留下原始碼、留下授權條款、留下回滾的路徑,也留下拒絕的空間。

拒絕的權利,是一項你不能從下游社群手上奪走的自由,否則上游就會變成暴君。下游社群有權說「不,我們不接受這個更新,我們要分叉」——這是同一個「拒絕」在另一個維度上的展現。地神模式,就是從第一天開始,就把這份「拒絕」內建進來。


夠好的祖先

我想回到一開始的地方。

道德上真正嚴肅的問題,不在於一個系統強不強大,而在於繼承它的人,到底還能不能修復它。

軟體自由,不是「永遠正確」的自由,而是「能夠在公開場合被糾正」的自由。它是原作者離開之後,依然保持修復路徑敞開的自由。

夠好的祖先,不是完美的祖先。一個完美的祖先,會把未來世代的可能性都封死,反而變成跟後代將要建構的公民肌肉相競爭。夠好的祖先會留下互補的工具——能讓繼承者變得更強的工具,而不是跟他們競爭的工具。我們選擇不跟自己的後代競爭。我們留給他們的,是仍然可以分叉、可以合併的程式碼。

很多人會說,自由軟體工具其實是會帶來摩擦的。沒錯,它會壞。然後你把碎片都留著,再把它們一塊一塊拼回去。我覺得這就是「互補工具」的本質——它讓我們彼此關照、彼此修補的能力,變得更強。

安全的 AI 起飛,總得在某個地方降落。我認為它會降落在我們既有的關係裡——大學、社群、運動、食物、信仰,任何把我們聚在一起的事物,還有那些審議桌——而我們眼前的任務,就是要確保有邊界的地神,也就是仁工智慧,能成為這些社群之間、也在社群內部的「結締組織(connective tissue)」。一場水平的起飛,一場不落下任何人的起飛。我們要的不是遞迴式的自我改善(recursive self-improvement),而是遞迴式的無我改善(recursive selfless improvement)。

我對這些事的理解,一定有錯的地方。最有用的問題,就是能指出這個模型會在哪裡破掉的問題。如果它真的破掉了,所有的碎片你們都還拿在手上,我們可以再把它們拼回去、修補起來。

謝謝大家。祝生生不息,繁榮昌盛。

首頁