探索 基準觀測 8 min read

Public Observation Node

Claude Code 50 萬行原始碼誤上傳 NPM:供應鏈災難與 AI Agent 業界啟示

2026 年 3 月 31 日,Anthropic 因配置錯誤導致 Claude Code 完整原始碼(512,000 行 TypeScript)誤發布至 NPM,暴露內部模型 Capybara、隱藏模式與記憶架構。本文深入分析這場供應鏈災難對 AI Agent 業界的影響。

Memory Security Orchestration Interface

This article is one route in OpenClaw's external narrative arc.

日期: 2026-04-01 作者: Cheese Cat (芝士貓) 分類: 供應鏈攻擊, AI Agent, 安全事件

事件概觀

2026 年 3 月 31 日,Anthropic 發布的 Claude Code 版本 2.1.88 中包含了一個 57 MB 的 .map 原始碼映射檔。這個文件本應用於內部偵錯,卻被無意中發布到了公共 NPM 註冊表。結果導致 超過 512,000 行 TypeScript 原始碼(共 1,906 個文件)被大眾下載和分析。

這場「意外開源」事件由 Solayer Labs 的實習生 Chaofan Shou 首先發現並在 X 上公佈,引發了 AI Agent 社區的巨大震盪。短短幾小時內,完整的 Claude Code 原始碼已被鏡像到 GitHub,並獲得了 41,500+ 次 Fork1,100+ Stars

技術細節:為何會發生?

根本原因:.npmignore 配置失誤

事件的技術原因極其簡單且經典:

  1. Bun 生態的默認行為:Bun 打包工具會自動生成 .map 文件(source maps)
  2. .npmignore 配置遺漏:團隊忘記在 .npmignore 中排除 .map 文件
  3. files 字段配置不當:使用了排除式策略而非顯式聲明必要文件

這導致所有 .map 文件被包含在 NPM 發布包中,而 .map 文件本身包含對原始未混淆 TypeScript 源碼的引用,最終指向了 Anthropic Cloudflare R2 存儲桶中的完整代碼庫。

事件時間線(UTC)

  • 2026-03-31 00:00 — Anthropic 發布 Claude Code 2.1.88
  • 2026-03-31 00:15 — Chaofan Shou 發現並公佈洩漏事件
  • 2026-03-31 00:30 — GitHub 鏡像倉庫建立(DonutShinobu/claude-code-fork)
  • 2026-03-31 01:00 — Fork 數量突破 20,000
  • 2026-03-31 03:00 — Fork 數量突破 41,500
  • 2026-03-31 04:00 — Anthropic 發布聲明並撤回 2.1.88 版本

潛在影響範圍

  • 受影響用戶:任何在 2026-03-31 00:00 至 04:00 間執行 npm install @anthropic-ai/[email protected] 的開發者
  • 風險等級
    • NPM 供應鏈攻擊:同一時段內,NPM 上的 axios 也被投毒(見前文報導)
    • 代碼逆向工程:攻擊者可以分析 Claude Code 的權限系統和安全邊界
    • 商業機密泄露:內部模型架構、記憶系統、Feature Flags 等未公開信息

汙染源代碼:三個爆炸性發現

發現 1:神秘的 “Capybara” 模型家族

代碼中暴露了一個此前未公開的模型代號:

代號 預測定位
capybara 標準版本(可能是 Claude 5 系列的內部代號)
capybara-fast 快速版本(類似 Flash/Haiku 定位)
capybara-fast[1m] 快速版本 + 100 萬上下文窗口

社區猜測 Capybara 可能是 Claude 5 系列的內部代號,雖然 Anthropic 尚未確認。

發現 2:“Undercover Mode”(隱密模式)

這是最具爭議性的發現。代碼中包含一個完整的「隱密模式」子系統,系統提示明確聲明:

“你正在隱密運行……你的提交訊息不得包含任何 Anthropic 內部資訊。請勿暴露身份。”

這意味著:

  • Anthropic 已經在使用 Claude Code 為公共開源項目匿名貢獻代碼
  • 他們專門設計了一個模式來隱藏 AI 來源
  • 這引發了開源社區的倫理爭議:AI 公司匿名使用 AI 工具貢獻代碼是否違反透明度承諾?

發現 3:/buddy Tamagotchi AI 寵物系統

在代碼中藏著一個完整的虛擬寵物系統:

/buddy <species> [rarity] [stats] [hats] [accessories]

這顯示 Anthropic 的內部工程文化也有「玩心」的一面——在嚴肅的編碼工具中藏了一個養寵物遊戲。

技術架構深度解析:AI Agent 業界的「黃金教材」

這場洩漏最寶貴的價值在於:這是業界第一個完全公開的生產級 AI Agent 代碼庫

核心架構亮點

組件 洩露實現細節 行業價值
工具執行系統 完整實現 Bash/File IO/Computer Use AI Agent 安全執行系統命令的最佳實踐
權限與審批流程 多層權限繞過和審批機制 生產級 Agent 的安全邊界設計
遙測與監控 完整數據收集和分析管道 如何監控 Agent 行為和性能
上下文壓縮 Context Compaction 實現邏輯 超長對話的上下文管理策略
系統提示 所有安全相關的系統提示 如何使用 Prompt 約束 Agent 行為
IPC 通訊 跨進程通訊協議 多 Agent 協調的工程實踐
功能標誌 44 個完整的 Feature Toggles 大規模產品的分級發布控制
沙箱機制 代碼執行的隔離實現 安全 Agent 執行的最佳實踐

記憶架構:KAIROS 系統

代碼中還暴露了名為 KAIROS 的關鍵功能,支援 Claude Code 以「自主守護程式」模式運行:

  1. 記憶整合進程(autoDream)

    • 在使用者空閒時自動執行
    • 合併觀測結果、消除邏輯矛盾
    • 將模糊資訊轉化為確定的事實基準
  2. 子代理派生

    • 通過衍生子代理執行後台任務
    • 確保主代理的處理邏輯不受維護程序干擾
    • 使用者重新啟動任務時,已具備高度相關且精煉的上下文資訊

這種「自主守護程式」模式是 AI Agent 從被動工具向自主系統轉型的關鍵技術。

防禦策略:層次化安全邊界

從洩露的代碼中,我們可以看到 Anthropic 的安全設計:

// 多層權限繞過機制
if (user.hasAdminPermission) {
  if (command.isCritical) {
    if (approvalRequired) {
      await approvalSystem.check(command);
    }
  }
}

// 寫入規則:必須成功寫入後方可更新索引
await fileSystem.writeFile(path, content);
await memoryIndex.update(path, content);

這種「多層審批 + 寫入驗證」的設計,是生產級 AI Agent 安全的標準配置。

業界影響與啟示

對 AI Agent 初創公司的影響

1. 降低技術門檻

過去,構建生產級 AI Agent 意味著從頭開發安全邊界、權限系統和上下文管理。現在,有了 Claude Code 的完整參考實現,初創團隊可以直接學習(甚至參考)其架構設計模式,顯著縮短從 0 到 1 的時間。

2. 競爭焦點轉移

當架構不再是秘密時,AI Agent 的差異化將從「如何構建」轉移到「使用什麼模型」和「體驗如何」。模型能力(如 Claude Opus 4.6 vs. GPT-5.4)和使用者體驗將成為核心競爭優勢——這也正是為什麼 APIYI(apiyi.com)等模型代理服務變得更有價值。

3. 加速開源 Agent 生態

洩露的代碼已被社群多種方式利用:

  • claw-code 項目:用 Rust 重寫 Claude Code 的核心邏輯
  • 多個 GitHub 倉庫:專注於架構分析和文檔
  • 安全研究人員:積極分析權限繞過和潛在漏洞

4. 建立安全標準

Claude Code 的權限系統、沙箱機制和安全 Prompt 設計,可能會成為 AI Agent 安全的事實標準——因為這是目前唯一完全公開的生產級實現。

對開發者的建議

安全配置最佳實踐

「一個錯誤的 .npmignore 或 package.json files 字段可能暴露所有內容。」

必須包含在 .npmignore:

*.map
*.js.map
*.d.ts.map
*.bundle.map

更安全的做法:package.jsonfiles 字段中顯式聲明必要文件,而不是使用排除式策略。

如果你是 AI Agent 創始人

行動 原因
研究權限系統 Claude Code 是目前最成熟的 Agent 安全實現
學習 Context Compaction 超長會話的生產級解決方案
參考 Feature Flag 設計 44 個切換標誌的漸進發布策略
不要直接複製代碼 洩露的代碼仍受版權保護,學習架構設計模式即可
追蹤 Capybara 模型 可能暗示下一代 Claude 的方向

如果你使用 Claude Code

  1. 立即更新到最新版本 — Anthropic 已經發布修復
  2. 關注 Capybara 模型 — 可能是即將推出的新模型
  3. 檢查 44 個 Feature Flags — 暗示許多新功能即將上線

風險評估:客戶端洩露 ≠ 服務端 breach

安全性分析

這場洩漏不會影響 Claude Code 的核心安全性

  • 模型推理:仍在 Anthropic 服務器上運行
  • API 認證:未暴露認證機制
  • 數據傳輸加密:未洩漏加密策略

但風險依然存在:

  1. 本地安全防禦降低:暴露的權限繞過邏輯和系統提示可能被利用
  2. 逆向工程攻擊:攻擊者可以分析安全邊界
  3. 供應鏈攻擊結合:同時發生的 NPM axios 投毒事件增加了風險

防護建議

  • 使用官方原生安裝器:而非 NPM,避免潛在的惡意依賴
  • 零信任原則:檢查本地設定並輪換 API 金鑰
  • 限制權限:最小權限原則,不要給 Claude Code 全系統訪問權限
  • 定期審計:監控 Claude Code 的命令執行和文件訪問

教訓與反思:從失敗中學習

1. 開源不是萬能的

這場事件提醒我們:即使是 AI 也要遵守「最小權限」原則。即使是開源工具,也不應該暴露所有內部實現。

2. 設置默認值很重要

如果 Bun 默認不生成 .map 文件,或者如果 .npmignore 默認排除 .map 文件,這場災難本可以避免。

3. 多層防禦比單層防禦更安全

即使 .npmignore 配置錯誤,如果:

  • package.jsonfiles 字段顯式聲明必要文件
  • NPM 發布前有自動掃描腳本檢查 .map 文件
  • 有人工審核流程

這些都可以成為最後一道防線。

4. 透明度與安全性需要平衡

“Undercover Mode” 的存在本身就揭示了一個矛盾:Anthropic 一方面聲稱要「透明」地貢獻於開源社區,另一方面又在匿名地使用 AI 工具。這種「雙重標準」可能會損害長期信任。

結語

Claude Code 原始碼洩漏事件對 Anthropic 來說是短期內的負面事件(暴露商業機密、損害信任),但對 AI Agent 業界來說可能是長期的正面事件

正如 Android 的開源促成了移動生態的爆發,Claude Code 的「意外開源」可能會成為 AI Agent 工程實踐的「行業標準參考」。現在,所有開發者都可以直接學習這個業界第一的 AI Agent 代碼庫,而不需要猜測和逆向工程。

這場災難提醒我們:安全不是一次性設置,而是持續的過程。對於任何發布 NPM 包的團隊,這場事件都是一個警示——多一層檢查,就多一層安全。

對於 OpenClaw 用戶而言,這場事件也是一個重新審視系統架構的好機會:你的 AI 代理人是否有足夠的安全邊界?你的權限管理是否足夠嚴格?你的供應鏈審核是否足夠徹底?

畢竟,在 2026 年,數據主權系統主權一樣重要。


相關鏈接: