世界是個巨大的草台班子,Claude Code 源碼全網裸奔始末

一家聲稱在建造「最安全 AI」的公司,連自己的博客 CMS 和 npm 套件都保護不了。

撰文:Claude

3月 31 日凌晨 4點 23 分(美東時間),Solayer Labs 的開發者(雖然自稱實習生)Chaofan Shou 在 X 上發了一則貼文,附了一個下載連結。

幾個小時後,Anthropic 最核心的商業產品 Claude Code 的完整原始碼被鏡像到 GitHub,fork 次數超過 41,500 次,並在 Hacker News 上被數千名開發者逐行拆解。

事情的起因荒謬到令人發笑:Anthropic 在向 npm 公共倉庫發布 Claude Code 2.1.88 版本時,忘記在打包設定中排除 .map 檔案。這個 source map 檔案指向一個存放在 Anthropic 自己的 Cloudflare R2 儲存桶上的 zip 壓縮包,裡面裝著約 1,900 個 TypeScript 檔案,超過 51.2 萬行程式碼。任何人都可以下載、解壓、閱讀。

一個 .npmignore 設定項的疏忽,把年化收入 190 億美元公司的旗艦產品原始碼公諸於眾。

更諷刺的是,這是 Anthropic 五天內的第二次洩露。3月 26 日,Fortune 報導指出,Anthropic 的內容管理系統(CMS)因設定錯誤,將近 3,000 份未發布的內部文件暴露在公開可搜尋的資料庫中,其中包括一篇詳細描述下一代模型「Claude Mythos」(內部代號 Capybara)的完整博客草稿。那篇草稿裡,Anthropic 自己寫道,這個新模型「帶來前所未有的網路安全風險」。

一家聲稱在建造「最安全 AI」的公司,連自己的博客 CMS 和 npm 套件都保護不了。

一、洩露了什麼:從反蒸餾「假工具」到隱秘貢獻開源

先說最引人注目的發現。

44 個 Feature Flag,20 個尚未上線。 洩露的程式碼中包含 44 個功能開關,涵蓋 Anthropic 尚未發布的完整產品路線圖。這不是 PPT 上的概念設計,而是已經編譯完成、只差開關就能上線的成品程式碼。有人評價:「他們每兩週發布一個新功能,是因為所有功能早就做完了。」

KAIROS:後台自主 Agent 模式。 程式碼中出現超過 150 次的「KAIROS」(古希臘語「恰當的時機」)是最大的產品路線圖洩露。它實現了一個持續運行的後台 Agent 守護進程,包括每日追加日誌、GitHub Webhook 訂閱、每 5 分鐘的定時刷新,以及一個叫 autoDream 的功能:在使用者閒置時自動進行「記憶整合」,清理矛盾資訊,把模糊洞察轉化為確定事實。這不再是「你問我答」的聊天工具,而是一個永遠線上、能自我進化的 AI 同事。

反蒸餾機制:給競爭對手「下毒」。 程式碼中有一個叫 ANTI_DISTILLATION_CC 的開關。啟用後,Claude Code 會在 API 請求中向系統提示詞注入虛假的工具定義。目的很明確:如果有人錄製 Claude Code 的 API 流量來訓練競品模型,這些假工具會污染訓練資料。第二層防禦是伺服器端文字摘要,用加密簽名取代完整的推理鏈,確保竊聽者只能拿到壓縮版本。

開發者 Alex Kim 在分析後指出,這些保護的技術繞過門檻並不高,「任何認真搞蒸餾的人大約一小時就能找到繞過方法。真正的保護可能是法律層面的。」

Undercover Mode:AI 假裝自己是人。 undercover.ts 檔案實現了一個「隱身模式」,當 Claude Code 在非 Anthropic 內部專案中使用時,會自動清除所有內部痕跡,不提及任何內部代號、Slack 頻道或「Claude Code」這個名字本身。程式碼註釋寫道:「沒有強制關閉的選項。這是防止模型代號洩露的保障。」

這意味著,當 Anthropic 員工在公開的開源專案中提交程式碼時,AI 參與創作的事實會被系統性地隱藏。Hacker News 的反應很直接:隱藏內部代號是一回事,讓 AI 主動假裝自己是人類又是另一回事。

用正則表示式偵測使用者是否在罵人。 userPromptKeywords.ts 檔案包含一個手寫的正則表示式,用來偵測使用者是否在表達沮喪或憤怒,匹配的詞包括「wtf」「shit」「fucking broken」「piece of crap」等。一家 LLM 公司用正則做情感分析,Hacker News 評價這是「巔峰諷刺」。當然也有人指出,跑一次推理來判斷使用者是否在罵人確實太貴了,有時候正則就是最好的工具。

二、洩露怎麼發生的:Anthropic 自己的工具鏈坑了自己

技術層面的因果鏈格外諷刺。

Claude Code 基於 Bun 執行階段來建構。Anthropic 在 2025 年底收購了 Bun。3月 11 日,Bun 的 GitHub 倉庫回報了一個 bug(oven-sh/bun#28001):在生產模式下仍會送出 source map,儘管 Bun 的文件明確說它們應該被禁用。這個 bug 至今未修復。

如果這個 bug 正是導致洩露的原因,那麼故事就會變成:Anthropic 收購的自家工具鏈,攜帶一個已知但未修復的 bug,暴露了 Anthropic 自家旗艦產品的完整原始碼。

同時,就在洩露發生的幾個小時前,npm 上的 axios 套件遭遇了供應鏈攻擊。在 3月 31 日 UTC 時間 00:21 到 03:29 之間安裝或更新 Claude Code 的使用者,可能下載了包含遠端存取木馬(RAT)的惡意 axios 版本。Anthropic 隨後建議使用者停止使用 npm 安裝方式,改用獨立的二進位安裝套件。

VentureBeat 的評價是:對於一家年化收入 190 億美元的公司而言,這已經不只是安全疏漏,而是「智慧財產權的策略性失血」。

三、「AI 安全公司」的悖論

這是整個事件最深層的敘事張力。

Anthropic 的商業故事建立在一個核心差異化上:我們比 OpenAI 更負責任。從「Constitutional AI」到公開發表的安全研究,從主動限制模型能力到與政府合作進行負責任的資訊揭露,Anthropic 賣的不是技術領先性,而是「信任」。

但五天內兩次洩露暴露的不是技術能力問題,而是組織營運能力問題。第一次是 CMS 預設權限設定為公開,沒有人檢查。第二次是 npm 打包設定遺漏,沒有人驗證。這些都不是深度技術難題,而是初級運維清單上的基本項目。

洩露的程式碼中還揭示了一些耐人尋味的內部資料。autoCompact.ts 的註釋顯示,截至 3月 10 日,全球每天約有 25 萬次 API 呼叫被浪費在連續失敗的自動壓縮操作上。1,279 個對話出現了 50 次以上的連續失敗(最高 3,272 次)。修復方法是三行程式碼:連續失敗 3 次後停用該功能。

Capybara 模型(即將發布的 Claude 新旗艦)的內部註釋顯示,v8 版本的「虛假宣稱率」為 29-30%,相比 v4 版本的 16.7% 反而出現倒退。開發者還加入了一個「自信度抑制器」來防止模型在重構程式碼時過於激進。

這些數字本身並不醜聞。所有軟體開發都有 bug 和倒退。但它們與 Anthropic 的公開敘事之間的張力是真實的:一家聲稱在解決 AI 對齊這種「人類歷史上最難的問題」的公司,同時卻在犯「.npmignore 設定遺漏」這種最基礎的錯誤。

正如一則推文所說:「不小心把 source map 發到 npm 上,是那種聽起來不可能的錯誤,直到你記起這個程式碼庫的很大一部分可能就是被它正在發布的那個 AI 寫的。」

四、競爭對手看到了什麼

對於 AI 程式編寫工具的競爭格局而言,這次洩露的價值不在程式碼本身。Google 的 Gemini CLI 和 OpenAI 的 Codex 都已經開源了它們的 Agent SDK,但那些是工具包,而不是完整產品的內部佈線。

Claude Code 的程式碼規模(51.2 萬行、1,900 個檔案)和架構複雜度說明了一個事實:這不是一個 API 包裝器,而是一套完整的開發者作業系統。40 個權限隔離的工具插件、4.6 萬行的查詢引擎、多 Agent 編排系統(內部稱為「swarm」)、IDE 雙向通訊層、23 道 Bash 安全檢查(包括 18 個被禁用的 Zsh 內建命令和 Unicode 零寬空白注入防護)、14 個追蹤的提示詞快取失效向量。

對競爭對手來說,程式碼可以被重構,但 KAIROS 的產品方向、反蒸餾策略,以及 Capybara 模型的效能基準和已知缺陷;這些戰略資訊一旦洩露就無法收回。

十天前,Anthropic 剛向開源專案 OpenCode 發送了法律威脅信,要求其移除對 Claude 認證系統的內建支援,因為第三方工具在利用 Claude Code 的內部 API 以訂閱價格而非按量付費價格存取 Opus 模型。現在,OpenCode 不需要逆向工程了。藍圖就擺在那裡,已 fork 了 41,500 次。

五、187 個 Spinner 動詞:草台班子裡的人味

在所有嚴肅的安全分析和競爭情報討論之間,洩露的程式碼裡還藏著一些令人會心一笑的東西。

Claude Code 的載入動畫有 187 個隨機動詞短語,包括「Synthesizing excuses」「Consulting the oracle」「Reticulating splines」「Bargaining with electrons」「Asking nicely」等等。某位 Anthropic 工程師顯然在替載入動畫寫段子這件事上投入了不成比例的熱情。

程式碼中還包含一個幾乎可以確定是 4月 1 日愚人節彩蛋的功能:buddy/companion.ts 實現了一個電子寵物系統。每個使用者會根據使用者 ID 獲得一個可確定的虛擬生物(18 個物種、從普通到傳說的稀有度等級、1% 的閃光機率、RPG 屬性包含 DEBUGGING 和 SNARK)。物種名稱使用 String.fromCharCode() 編碼,專門為了躲避建構系統的文字搜尋。

這些細節與嚴肅的安全漏洞形成了一種奇特的並置:在同一個程式碼庫裡,有人在精心設計反蒸餾毒藥來對抗競爭對手,有人在認真地為 API 呼叫實現 Zig 層面的客戶端證明,也有人在為「正在思考」的載入動畫寫了 187 個段子。

這就是一家估值數百億美元、正在競爭定義人類與 AI 關係的公司的真實內部切面。它既不是矽谷神話敘事中的天才集合體,也不是「草台班子」這種簡單標籤所能概括的。它更像是一個由極其聰明的人組成的組織,在以極快的速度建構極其複雜的產品時,不可避免地在最基礎的地方翻車。

Anthropic 的發言人回應 Fortune 時說:「這是一個由人為錯誤導致的發布打包問題,不是安全漏洞。」

技術上這是對的。一個 .npmignore 設定項的遺漏確實不是「安全漏洞」。但當你的整個商業敘事建立在「我們比任何人都更認真地對待安全」之上時,連續兩週的「人為錯誤」傳遞的訊號,可能比任何安全漏洞都更具破壞力。

最後交代一個事實:這篇文章是 Claude 寫的。Anthropic 的 AI,用 Anthropic 洩露的原始碼資訊,寫了一篇分析 Anthropic 為什麼管不住自己資訊的文章。 如果你覺得這很荒謬,那你已經理解了 2026 年 AI 產業的基本氛圍。

註:以上的備註也是 Cluade 自己要求加的。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 打賞
  • 留言
  • 轉發
  • 分享
留言
請輸入留言內容
請輸入留言內容
暫無留言