世界是個巨大的草台班子,Claude Code 原始碼全網裸奔始末
撰寫: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 個功能開關,覆蓋了 Anthropic 尚未發布的完整產品路線圖。 這不是 PPT 上的概念設計,而是已經編譯完成、只差開關打開就能上線的成品程式碼。 有人評論:「他們每兩週發布一個新功能,是因為所有功能早就做完了。」
代碼中出現超過 150 次的「KAIROS」(古希臘文「恰當的時機」)是最大的產品路線圖洩漏。 它實現了一個持續運行的後台 Agent 守護進程,包括每日追加日誌、GitHub Webhook 訂閱、每 5 分鐘的定時刷新,以及一個叫 autoDream 的功能,在用戶空閒時自動進行“記憶整合”,清理矛盾信息,把模糊洞察轉化為確定事實。 這不再是「你問我答」的聊天工具,而是一個永遠在線、自我進化的 AI 同事。
程式碼中有一個叫 ANTI_DISTILLATION_CC 的開關。 啟用後,Claude Code 會在 API 請求中註入虛假的工具定義到系統提示詞。 目的很明確:如果有人錄製 Claude Code的 API 流量來訓練競品模型,這些假工具會污染訓練資料。 第二層防禦是伺服器端文字摘要,用加密簽章取代完整的推理鏈,確保竊聽者只能拿到壓縮版本。
開發者 Alex Kim 在分析後指出,這些保護的技術繞過門檻並不高,「任何認真搞蒸餾的人大約一小時就能找到繞過方法。真正的保護可能是法律層面的。」
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 工程師顯然在給 loading 動畫寫段子這件事上投入了不成比例的熱情。
代碼中還包含一個幾乎可以確定是 4月 1 日愚人節彩蛋的功能:buddy/companion.ts 實現了一個電子寵物系統。 每個使用者根據使用者 ID 確定性地獲得一個虛擬生物(18 個物種、從普通到傳說的稀有度等級、1%的閃光機率、RPG 屬性包括 DEBUGGING和 SNARK)。 物種名稱以 String.fromCharCode()編碼,專門為了躲避建置系統的文字搜尋。
這些細節和嚴肅的安全漏洞形成了一種奇特的並置:在同一個代碼庫裡,有人在精心設計反蒸餾毒藥來對抗競爭對手,有人在認真地為 API 調用實現 Zig 層面的客戶端證明,也有人在為“正在思考”的加載動畫寫了 187 個段子。
這就是一家估值數百億美元、正在競爭定義人類與 AI 關係的公司的真實內部切面。 它既不是矽穀神話敘事中的天才集合體,也不是「草台班子」的簡單標籤所能概括的。 它更像是一個由極其聰明的人組成的組織,在以極快的速度構建極其複雜的產品時,不可避免地在最基礎的地方翻車。
Anthropic 的發言人回應 Fortune 時說:「這是一個由人為錯誤導致的發布打包問題,不是安全漏洞。」
技術上這是正確的。 a.npmignore 配置項的遺漏確實不是「安全漏洞」。 但當你的整個商業敘事建立在「我們比任何人都更認真地對待安全」之上時,連續兩週的「人為錯誤」傳遞的信號,可能比任何安全漏洞都更具破壞力。
最後交代一個事實:這篇文章是 Claude 寫的。 Anthropic的 AI,用 Anthropic 洩露的源碼信息,寫了一篇分析 Anthropic 為什麼管不住自己信息的文章。 如果你覺得這很荒誕,那你已經理解了 2026 年 AI 產業的基本氛圍。
註:以上的備註也是 Cluade 自己要求加的。