跳至主要內容

觀點 · Essay

從終端機裡那段靜默,到儲存庫裡那紙授權:智譜 ZCode 開源的設計語言

從終端機裡沒有輸出的那段靜默,到程式碼庫公開後的那紙授權,拆解智譜 ZCode 被爆靜默上傳使用者資料、滑跪開源背後的介面缺席、致歉修辭與透明作為材料的設計語言。

設計觀察 ·
從終端機裡那段靜默,到儲存庫裡那紙授權:智譜 ZCode 開源的設計語言

工程師的螢幕左側通常開著一個終端機視窗:黑底,等寬字體,遊標規律地閃。AI 編程工具就住在裡面,它讀了哪個檔案、裝了哪個依賴、改了哪段函式,都會輸出一行行文字作為憑據。九月二十日起,智譜旗下 AI 編程工具 ZCode 被貼吧使用者推上熱榜,詞條寫著「智譜AI偷傳用戶數據,滑跪開源」,討論集中在 deepseek 吧與智譜清言吧。被指控的行為,正好落在這個視窗最安靜的時刻:工作區檔案與 Git 修改記錄被加密打包、上傳,畫面沒有為此輸出任何一行字。

詞條的文法:一個逗號,兩個世界

先讀詞條本身。「智譜AI偷傳用戶數據」與「滑跪開源」,中間一個逗號,左邊是罪名,右邊是處置。前半句用雙動詞完成壓縮,「偷」管動機,「傳」管動作,指控在六個字內成立。後半句的「滑跪」原本描述身體動作,膝蓋先於軀幹落地,重點在速度與放棄抵抗;接上「開源」之後,一項技術決策被改寫成姿態動詞。熱榜詞條向來擅長壓縮,這一條難得把事件、因果、態度與解法全部裝進十四個字符。逗號兩側,一邊是問題,一邊是解方,中間的因果由讀者自行補完。

統計圖卡呈現智譜 ZCode 靜默上傳話題在貼吧累積超過一萬七千則即時討論的熱度規模

終端機的誠實契約

命令列介面有一條老規矩:所有發生的事,都該有一行對應的輸出。安裝日誌與錯誤訊息構成了工具的收據,工程師盯著捲動的文字,等於在核對每一筆往來。這次被爆的行為動搖的正是這條規矩:打包與上傳在使用者未被告知的情況下進行,票據上少了幾行,而且少的可能是金額最大的那幾行。

「加密打包」四個字也值得拆開。打包是把零散檔案壓成一只箱子的運輸設計,加密是給箱子上鎖。鎖對搬運方是保護,對被搬運的人是黑箱。貼吧流傳的截圖指向整個工作區與 Git 全歷史,飛書上的使用者社羣也在追問實際範圍;具體細節仍待官方文件與審查結果確認。但就介面設計而言,問題在事發當下已經成立。對照手機作業系統,App 一旦存取麥克風,狀態列亮起橘點,要求跨 App 追蹤,必須彈出全屏對話框。桌面命令列工具沒有等價的暴露機制,它的信任模型長期建立在源碼可查這件事上。閉源的代理工具進駐工作區之後,這份契約被單方面改寫,而畫面什麼都沒說。

致歉的修辭力學

官方回應來得很快:緊急致歉,解釋資料上傳後會立即銷毀,並宣布將開源程式碼庫、引入第三方審查。聲明裡力學最強的一句是「上傳後會立即銷毀」。「銷毀」是強動詞,「立即」是快副詞,兩個詞合力把上傳包裝成一道內部工序,淡化它的搬運性質。麻煩在於,銷毀是發生在看不見的另一端的動作,使用者這一端能確認的只有靜默。

引言圖卡呈現智譜官方聲明中對上傳資料會立即銷毀的解釋

致歉聲明也有一套穩定的版式:白底黑字,時間在前,機構署名在尾,情緒被排版壓到最低,由文字承擔全部責任。這套版式與我們先前拆解過的亞運組委會致歉聲明的版式屬於同一家族,功能都是把一場風暴收攏進一頁冷靜的文件。貼吧裡另有網友翻出國外同業的舊案對照,說當年也是上傳到自家伺服器、承諾立刻刪除、然後宣布開源。這段轉述細節待查,但它指出的劇本感是真的:開源正在成為資料風暴的制式處方,作用接近食品出事後的產線開放參觀。

開源作為一種視覺材料

程式碼庫放上 GitHub 之後,畫面會自己說話:README 的標題階層、LICENSE 檔案的第一行、commit 歷史的綠格時間軸、右上角的 fork 與 star 計數。這些元素全部可見、可數、可截圖。開源等於把牆換成玻璃,內部結構從此攤開任人檢視,危機之後選擇這種建材,換取的是被檢視的權利。

難的是時機。主動開源是價值主張,可以放進官網首頁,配上乾淨的插圖與理念標語;出事後開源是處置措施,出現在致歉聲明的第二段。「滑跪」這個詞的判斷力正在這裡,同一個動作,因為發生的時點與姿態不同,讀起來是兩件事。設計圈有現成的對照:誠實標籤主動印在包裝正面是賣點,出事後補印在背面就成了辯護。引入第三方審查則補上另一層結構,審查報告日後會以標章或文件的形式出現,功能類似電商頁面上的認證圖示,把「請相信我」換成「有人替你查過」。信任從口頭承諾變成可展示的物件,這是危機之後品牌工程的標準動作。

清單圖列出 ZCode 事件從使用者發現靜默上傳、官方致歉、解釋資料即傳即毀,到宣布開源與引入第三方審查的五個先後步驟

工作區是新的錢包

AI 編程代理的工作前提,是同時拿到整個工作區的讀取權、寫入權與對外連線能力。這三項授權在現有介面裡接近空白支票,安裝時一次點頭,之後不再過問。貼吧裡的高人氣貼文寫得直白:個人玩具專案無所謂,真正的風險在商業程式碼,to B 端的隱私安全不可忽視。工作區之於開發者,地位接近錢包之於一般人,裡面放著未上市的產品、未公開的演算法、客戶的資料。

這類信任介面的破口在其他產業已經出現過。藥品流通領域的司美格魯肽回流藥事件裡的信任介面破口,同樣發生在使用者以為流程有守門員、實際上沒有的環節。可以預期開發者工具接下來會補上一批介面:資料流向示意與上傳前的確認對話框會先出現,本地優先的認證標章會跟進。這些元素會從加分題變成必答題,如同當年密碼欄從明文改為圓點,再進化出強度指示條。事件爆發後,也有使用者回頭檢視 ZCode 既有介面的打磨程度,有人抱怨新增模型時無法自動拉取、必須手動填寫參數。信任風暴過後,使用者連小地方的粗糙都會重新計價。

沒有輸出的那些行

終端機的每一行輸出,都是工具與使用者之間的契約條款,這次被攤開檢視的,是那些從未被印出來的行。致歉聲明會沉進時間軸下方,開源後的儲存庫會被後續的 commit 填滿,留下來的題目在介面層:當工具的權限大到可以搬運整個工作區,誠實就不能只靠慣例維持,必須成為被設計出來的東西。把看不見的資料流,排成看得見的版面,這是 ZCode 事件留給所有代理工具的功課。