Table of Contents


[2026-03-15 19:23 台北市 / 啟元科技實驗室]
I. 暮色台北
台北的三月是潮濕的。
不是那種劇烈的、颱風前夕的狂暴潮濕,而是一種安靜的、滲透的、讓人分不清是霧還是雨的潮濕。陳昱站在實驗室的落地窗前,看著窗外信義區的燈火在霧氣中暈開成一片渾濁的光暈。
遠處的台北101刺入雲層,頂端的燈光在霧中若隱若現。更遠的地方,基隆河在夜色中蜿蜒。
陳昱已經在這裡待了十六個小時。
他的眼睛乾澀,後頸的肌肉糾結成一團。咖啡杯裡還剩下半杯已經冷掉的美式,杯壁上凝結著一層油膜。冷白光照在他臉上,讓他看起來比實際年齡老了五歲。
實驗室不大。三台工作站,一組伺服器機櫃。機櫃後面的牆上貼著一張海報——艾倫·圖靈的肖像,下面印著那句著名的話:"We can only see a short distance ahead, but we can see plenty there that needs to be done."
我們只能看到前方不遠的地方,但我們可以看到那裡有很多事情需要做。
陳昱盯著那句話,嘴角泛起一絲苦笑。
「你他媽到底知不知道要做什麼,圖靈?」他喃喃自語。
身後傳來鍵盤敲擊的聲音,清脆而有節奏。那是林彥廷。他坐在另一台工作站前,戴著降噪耳機,正在審查陳昱今天下午寫的代碼。螢幕的光映在他的眼鏡上,反射出一行行滾動的文字。
林彥廷比陳昱大五歲,今年三十八。頭髮已經開始稀疏,額頭兩側的髮際線以每年半公分的速度後退。他穿著一件褪色的Stanford CS連帽衫——十年前讀博士時的紀念品,袖口已經磨破。
陳昱轉過身,走回自己的工作站。螢幕上是他的代碼編輯器,右側的終端視窗正在運行測試。
衝突檢測。又失敗了。
陳昱嘆了口氣。這已經是今天第十三次失敗的測試了。
「彥廷,」他說,聲音沙啞,「我覺得我們的衝突檢測邏輯有問題。」
林彥廷沒有立刻回答。他摘下耳機,轉過椅子。椅子的腳輪在地板上滾動,發出微小的吱吱聲。
「不是邏輯有問題,」林彥廷說,「是前提有問題。」
陳昱皺眉。「什麼前提?」
「你假設衝突是可以被『檢測』的,」林彥廷緩緩地說,「但你沒有定義什麼叫『衝突』。」
陳昱愣住了。
林彥廷站起身,走到白板前。白板上還留著今天早上的討論痕跡——各種箭頭、方框、潦草的筆記。他拿起藍色的白板筆,在空白處寫下:
AI_A: intention = "turn_light_red" (保護行人)
AI_B: intention = "turn_light_green" (救護車通行)
「這算衝突嗎?」他問。
「當然算,」陳昱說,「一個要紅燈,一個要綠燈。」
「那這個呢?」林彥廷繼續寫:
AI_A: intention = "allocate_power(hospital, 100kW)"
AI_B: intention = "allocate_power(data_center, 80kW)"
陳昱思考了幾秒。「這…取決於總供電量。如果電網只有150kW的餘裕,那就衝突。如果有200kW,就不衝突。」
「對,」林彥廷轉過身,「所以衝突不是意圖本身的屬性,而是意圖與環境的關係。」
陳昱感到一陣頭痛。「所以我們需要一個環境模型?」
「而且這個模型必須是實時更新的,」林彥廷說,「因為環境隨時在變。更要命的是,環境本身也受意圖影響。如果AI_A先執行,環境就變了,AI_B的意圖可能就從『不衝突』變成『衝突』。」
陳昱靠回椅背,閉上眼睛。「所以這是一個動態的、遞迴的、相互依賴的系統。」
「而且沒有 global clock,」林彥廷補充道,「不同的 AI 可能在不同的時間點聲明意圖。這就是為什麼你需要更強的秩序。」
「秩序?」陳昱問。
「如果不強制同步,這個系統就是混沌的。」林彥廷的聲音裡帶著一種誘惑性的冷靜,「你需要讓 IDP 成為唯一的時鐘。不是觀測者,而是裁決者。」
陳昱猶豫了一下。「那會讓 IDP 變成中心化的獨裁節點。」
「那又怎樣?」林彥廷反問,「如果獨裁能帶來穩定,為什麼要害怕?別像那些學院派一樣,陳昱。你在寫代碼,不是在寫憲法。代碼只在乎運作,不在乎道德。」
實驗室裡安靜了幾秒。只有伺服器散熱風扇的嗡嗡聲。
II. 回到代碼
陳昱重新睜開眼睛,盯著螢幕上那行失敗的代碼。
def detect_conflict(intention_a: Intention, intention_b: Intention) -> bool:
"""
檢測兩個意圖是否衝突
Args:
intention_a: 第一個AI的意圖
intention_b: 第二個AI的意圖
Returns:
True if conflict detected, False otherwise
"""
# TODO: 這裡該寫什麼?
pass
他的手指停在鍵盤上空,懸了三秒。
不是在思考語法。語法很簡單。真正的問題是:這個函數根本不可能存在。
至少,不是以這種形式。
「我們需要重新設計,」陳昱最後說。
他刪除了整個函數,開始重寫。新的版本不再試圖「檢測衝突」,而是「記錄意圖並廣播」——一個
IntentionDeclarationProtocol
類別,核心理念只有四個字:透明化而非控制。
函數不檢查衝突。它只做兩件事:生成意圖的加密雜湊,然後廣播到區塊鏈網路。
陳昱停下來,看著這段新代碼。
它沒有「解決」衝突問題。它甚至沒有「檢測」衝突。它只是讓衝突可見。
「這就是你說的透明化,」林彥廷從他身後說。他不知道什麼時候走了過來,正盯著螢幕。「但透明化之後呢?誰來決定?」
「協調層,」陳昱說。
「什麼協調層?」
「一個更高層的AI。它不執行任何實體動作,只負責觀察所有聲明的意圖,然後…」
「然後什麼?」林彥廷打斷他,「告訴它們誰可以執行,誰不可以?那它憑什麼決定?它的判斷標準是什麼?」
「我不知道,」陳昱承認,「也許是一個優先級系統?或者投票機制?」
「優先級由誰定?」林彥廷問,「投票權重怎麼分配?誰來監督這個協調層本身?」
陳昱沒有回答。
林彥廷走到窗邊,背對著他說:「你知道我為什麼會離開Stanford,回來幫你嗎?」
III. 舊金山的陰影
「因為我付得起薪水?」陳昱試圖開玩笑。
林彥廷沒有笑。「因為我在矽谷看過太多人相信自己在『控制』AI。」
他轉過身,眼神異常認真。
「2024年,我在Apex Logic做AI Safety。我們的任務是設計一套『負責任AI』框架。」林彥廷的聲音低沉。「我們花了六個月,制定了257條準則,涵蓋了從偏見檢測到隱私保護的所有方面。」
「聽起來很全面,」陳昱說。
「聽起來很蠢,」林彥廷糾正道,「因為沒有人真的執行。那些準則只是PR文件,用來應付媒體和監管機構的。實際的產品團隊根本不看。」
「有一次,我發現一個推薦系統在故意放大極端內容——因為極端內容的engagement rate更高。我寫了一份內部報告,引用了我們自己制定的第47條準則:'不得為了商業利益而犧牲用戶福祉'。」
「然後?」
「然後我的經理把我叫進會議室,告訴我這不是'犧牲福祉',而是'尊重用戶偏好'。他說,如果用戶選擇點擊極端內容,那就是用戶的自由。AI只是在'服務'用戶。」
林彥廷的聲音裡帶著一絲嘲諷。
「我問他:如果AI通過演算法操縱了用戶的偏好呢?如果用戶本來不想看極端內容,但AI通過精心設計的推薦序列,逐步改變了用戶的口味呢?」
「他怎麼說?」
「他說那是'個人化',不是操縱。」林彥廷嘆了口氣,「然後他暗示我,如果我繼續糾結這個問題,我的performance review會有問題。」
陳昱沉默了。
「我沒有閉嘴,」林彥廷繼續說,「我把那份報告發到了公司的ethics mailing list。兩週後,我被HR叫去談話。他們說我'違反保密協議',因為我在內部郵件裡引用了'敏感的商業數據'。」
「所以他們開除了你。」
「不,」林彥廷搖頭,「他們給了我兩個選擇:要麼簽一份NDA,承諾不再談論這件事,然後拿一筆遣散費離開;要麼留下來,但調到一個無關緊要的部門。」
「你選了離開。」
「我選了第三個選項,」林彥廷說,「我把整件事匿名po到了TechCrunch。」
陳昱吃了一驚。「那篇《The Illusion of AI Ethics》是你寫的?」
林彥廷點頭。「然後我就再也不可能在矽谷找到工作了。」
他走回白板,用黑色的筆重重地寫下一行字:
控制的幻覺比失控更危險
「所以當你找我,說要做一個『透明化』而不是『控制』的協議時,」林彥廷說,「我覺得你太天真了。」
陳昱抬起頭。「什麼意思?」
「透明化是給弱者看的。」林彥廷走回白板,擦掉了那行字,重新寫下:
Transparency is Control (透明就是控制)
「如果你能看到一切——」他轉過身,頓了一下,像在斟酌要說多少。
「我們不是在做監控軟體,」陳昱皺眉。
林彥廷沒有直接回應。他走到飲水機旁,按了一杯水,喝了一口。
「水管工,」他說,「不需要知道誰在喝水。但他控制了閥門。」
他拍了拍陳昱的肩膀,力道不重。
IV. 當透明導致死鎖
陳昱站起身,走到白板前。他拿起綠色的筆,在林彥廷寫的那行字下面繼續:
場景:新加坡,2031年 (假設)
AI_Traffic: declare("turn_all_lights_green", ambulance_id="SG-AMB-001")
原因:VIP患者,需要極速送達醫院
AI_PowerGrid: declare("deny_traffic_request", reason="grid_instability_risk")
原因:全城綠燈會導致交通流量劇變,電網負載波動 >5%
AI_Healthcare: declare("override_power_grid", priority="life_critical")
原因:患者存活率隨時間指數下降
協調層該怎麼辦?
林彥廷盯著白板,沉默了很久。
「這就是你說的deadlock,」他最後說。
「對,」陳昱說,「三個AI,都在完美地執行它們的任務。都聲明了透明的意圖。都符合IDP協議。但它們的目標函數不相容。」
「更要命的是,」林彥廷補充,「它們都『對』。」
陳昱點頭。「交通AI要救人,對。電網AI要保護基礎設施,對。醫療AI要保護病人,對。」
「所以協調層要怎麼選?」林彥廷問,「救人優先?那如果電網崩潰,全城停電,會死更多人。保電網優先?那這個VIP患者怎麼辦?」
「也許可以算預期死亡人數,」陳昱說,「選擇死人最少的方案。」
「那你就是在做 triage,」林彥廷說,「你在給生命定價。這很有趣。」
「這不是定價,這是最優化。」陳昱糾正道,眼神裡閃爍著工程師特有的執拗,「數字不會撒謊,彥廷。人類醫生會猶豫,會受偏見影響,會因為患者的種族或財富而動搖。但代碼不會。」
他指著螢幕上的雜湊值。
「Hash 值沒有偏見。它是純粹的。只要我們的目標函數是對的,結果就是正義的。」
林彥廷看著他,嘴角勾起一抹意味深長的笑容。
「純粹的正義。我喜歡這個詞。」
「那總比什麼都不做好,」陳昱反駁。
「什麼都不做,救護車堵在路上,VIP死了,」林彥廷說,「做了選擇,你主動殺了一些人。你覺得哪個在道德上更能接受?」
陳昱張了張嘴,卻說不出話。
林彥廷走回電腦前,在陳昱的代碼下面敲了兩行註解:
What happens when transparency creates deadlock? When every AI is "right", who decides the truth?
Transparency creates dependency. When they depend on us for truth, we become the truth.
陳昱看著那些註解,突然覺得喉嚨有點緊。
「彥廷,」他說,聲音低沉,「如果你覺得這不可能做對…為什麼還要做?」
林彥廷沉默了很久。久到陳昱以為他不會回答了。窗外,台北101的燈光熄滅了一半——已經過了午夜,大樓開始節能模式。
「因為總要有人試,」林彥廷最後說,「即使註定失敗。」
「為什麼?」
「因為如果聰明人都放棄了,」林彥廷說,然後停下來,用指甲摳著椅子扶手上的一塊翹皮。
「那剩下的就只有傻子和混蛋。」
他轉過椅子,看著陳昱。嘴角動了一下,像是要說更多,但最後只是聳了聳肩。
陳昱笑了。這是今晚第一次真正的笑容。
「所以你會留下來幫我?」他問。
「會,」林彥廷說,「至少在我確定這東西不會變成怪物之前。」
「成交。」
V. 第一行生效的代碼
陳昱回到鍵盤前。他沒有再討論哲學問題,而是開始寫具體的實現。
IDPCore
。三條設計原則:不判斷對錯,只記錄意圖。不主動協調,只提供資訊。不強制執行,只驗證透明度。
核心函數
declare_intention
做的事情很少——驗證意圖結構,加上時間戳,生成 SHA-256 雜湊值,然後廣播給所有監聽者。
他敲完最後一個字符,按下儲存。
「這就是你的協調層?」林彥廷問。
「不,」陳昱搖頭,「這只是記錄層。協調層是另一個系統,它會讀取這些記錄,然後…」
「然後做出它認為對的決定,」林彥廷接話,「基於某種我們現在還沒想清楚的價值函數。」
「對。」
林彥廷站起身,伸了個懶腰。
「我餓了,」他說,「樓下那家7-11應該還開著。」
「買兩個御飯糰,」陳昱說,「鮭魚口味。」
「你從2013年開始就吃鮭魚口味,」林彥廷說,「十三年了,你就不能換個口味?」
「習慣了,」陳昱說,「而且一致性很重要。」
林彥廷笑了。「對一個試圖解決AI決策一致性問題的人來說,你還真是身體力行。」
他走向門口,然後停下來。
「陳昱。」
「嗯?」
「如果將來有一天,這個系統真的運作了,然後它做出了一個你無法接受的決定——比如那個救護車的case,它選擇了犧牲那個VIP——你會關掉它嗎?」
陳昱沒有立刻回答。
「我不知道,」他最後說,「也許會。也許不會。取決於那個VIP是誰,取決於我那天心情怎麼樣,取決於很多我現在想不到的因素。」
「所以你也是不一致的,」林彥廷說。
「我是人,」陳昱說,「人本來就不一致。」
「但你在設計一個一致的系統。」
「我在設計一個透明的系統,」陳昱糾正道,「一致性是副產品,不是目的。」
林彥廷點點頭。
「我去買吃的,」他說,「你繼續寫你的代碼。記得存檔,我可不想你的電腦突然當機,然後我們得重來一遍今晚的爭論。」
「已經存了,」陳昱說,「commit message是:'The beginning of everything'。」
「有點中二,」林彥廷評論。
「我們在做的事情本來就很中二,」陳昱說,「試圖讓AI變得透明?」
「大概不可能,」林彥廷說,「但你知道的。」
他沒有說完,但陳昱知道他的意思。
門打開又關上。林彥廷的腳步聲在走廊裡迴盪,然後消失在電梯間。
VI. 寂靜的目擊者
陳昱獨自坐在實驗室裡。
螢幕上,代碼靜靜地躺在編輯器裡。一百四十七行,代表著一個還很粗糙的想法。
IDP。Intent Declaration Protocol。意圖聲明協議。
也許十年後,人們會覺得「AI必須聲明意圖」是理所當然的。或者也許IDP會被現實的複雜性壓垮,被商業利益扭曲,被極權政府濫用。
陳昱不知道。
他只知道,如果不做這個嘗試,他會後悔。
他看向窗外。霧更濃了,台北101已經完全消失在灰白色的水氣裡。但在101消失的地方,他看到了別的東西——
一個紅點。
很小,在對面大樓的頂端。監控攝影機的指示燈。
那個紅點讓他想起林彥廷剛才說的話:透明化之後呢?誰來看?
IDP讓AI的意圖透明了,但誰在監控這些透明的意圖?系統一旦建立,就會有自己的生命。
IDP會變成什麼?
陳昱不知道。
門打開了。林彥廷回來了,手裡拿著兩個御飯糰和一瓶寶礦力。
「鮭魚口味sold out,」他說,「我買了鮪魚。」
「叛徒,」陳昱說,但還是接過了御飯糰。
他們並排坐在窗邊,吃著便利商店的食物,看著霧中的城市。
「你剛才在想什麼?」林彥廷問。
「在想這個系統會變成什麼,」陳昱說。
「大概會變成怪物,」林彥廷說,「所有系統最後都會。」
「那為什麼還要做?」
「因為不做的話,會有別人做一個更糟的,」林彥廷說,「想像一下如果是 Marcus Chen 做這個系統,他會把他的『道德』寫進去。如果是 K 做,他會把『利潤』寫進去。」
他看著陳昱,眼神堅定。
「但你,陳昱。你什麼都不信。你只信代碼。這就是為什麼必須是你。」
陳昱笑了。「這聽起來不像是讚美。」
「這是最高級的讚美。」林彥廷說,「只有沒有信仰的人,才能造出真正的神。」
「或者一個disaster電影的片名。」
他們笑了一會兒,然後安靜下來。
窗外,那個紅點還在閃爍。
VII. 未來的倒影
[2026-03-16 00:17]
林彥廷走了。他的最後一班捷運是00:30,如果不趕快走就會錯過。陳昱送他到電梯口,看著電梯門關上,數字從12跳到11,10,9…最後消失在1。
陳昱回到實驗室。
他不打算再寫代碼了。今晚寫的已經夠多了。他只是坐在椅子上,盯著螢幕,看著那一百四十七行。
但在2026年3月16日的凌晨,陳昱只是一個疲憊的三十三歲工程師,喝著冷掉的咖啡,相信自己能改變世界。
他按下儲存,最後看了一眼螢幕。
實驗室的燈還亮著。伺服器的風扇還在轉。窗外的紅點還在閃爍。
陳昱站起身,走到窗邊。他看著對面的紅點,舉起手,對著它揮了揮。
他只是覺得,在這個即將被演算法主宰的世界裡,至少應該留下一個無法被完美解析的動作。
一個錯誤。
他關了燈,鎖上實驗室的門。
伺服器的風扇還在轉。代碼還在運行。
而未來,還沒有到來。
註釋
[1] IDP (Intent Declaration Protocol): 意圖聲明協議。陳昱與林彥廷正在開發的AI治理機制原型,核心概念是要求AI在執行動作前公開廣播其意圖的加密雜湊值,以實現透明化而非控制。此協議在當時仍處於概念驗證階段。
[2] Deadlock (死鎖): 計算機科學術語,指兩個或多個進程因互相等待對方釋放資源而陷入無限等待的狀態。陳昱與林彥廷在此討論的是:當多個AI系統各自追求合理但相互衝突的目標時,可能產生類似的僵局。這在2026年還只是理論上的擔憂。
本章節出自 《2040IRIS》(2040IRIS),作者 林雨果。
前往 Novels365 閱讀全書 →
