一場價值連城的「意外」
在《從 Anthropic 原始碼外洩看 Claude Code 的 5 個驚人內幕》一文裡,我們簡單說明了這個外洩背後所隱藏的意義,雖然對 Anthropic 官方來說,這更像是一場低級失誤引發的災難。
由於打包過程中的疏忽,Anthropic 在更新 Claude Code 的 npm 安裝包時,意外遺留了一個高達 60MB 的偵錯文件。這個本該被排除的壓縮包,直接讓 Claude Code 的核心——共計 1902 個源碼文件、51 萬行 TypeScript 代碼——在互聯網上徹底「裸奔」。
有趣的是,這並非 Anthropic 第一次在同一個地方跌倒。去年 Claude Code 剛發布時,就曾發生過幾乎一模一樣的打包事故。這讓我們知道,即便擁有頂尖 AI,如果 CI/CD 流水線缺乏基本的審查機制,代碼依然會以最原始的方式「越獄」,而這份外洩的代碼,對我們開發者而言是一份價值連城 AI 工具「工程設計圖」。
AI 工具好用的祕密——Harness Engineering
業界往往過度迷信模型本身,卻低估了圍繞模型搭建的腳手架。源碼揭示了一個殘酷的真相:Claude Code 的強大,60% 歸功於 Claude 3.5/3.7 模型的能力,而剩下的 40% 則全 Harness Engineering (馬具工程)。
「Claude Code 它好用 60% 靠的是模型本身的能力,至於剩下的 40%,其實靠的就是圍繞模型它搭建的整體這個工程系統。」
如果將強大的 AI 模型比作一匹「野馬」,雖然體力(運算能力)驚人,但其輸出本質上是隨機且不可預測的。「馬具工程」就是套在野馬身上的韁繩、馬鞍與方向盤。它包含了工具調用(Tool Use)、安全沙盒、動態記憶管理以及上下文壓縮等一整套複雜系統。這套系統將 AI 從一個「會說話的黑盒」,轉化為一個穩定、可靠且可交付的工業級開發工具。
動態邊界 (Dynamic Boundary) 與昂貴的工具成本
在 prompts.ts 中,我們看到了 Anthropic 對提示詞設計的深刻理解。他們採用了一種名為**「動態邊界」(Dynamic Boundary)** 的技術,將提示詞結構化地切分為兩部分:
- 靜態規則 (Static Rules): 包含所有用戶共享的核心準則(如:不編造數據、優先使用專用工具、嚴禁過度工程等)。這部分被高度緩存,旨在節省昂貴的 Prefill 成本。
- 動態內容 (Dynamic Content): 根據項目狀態(Git、MCP 工具、
Claude.md配置)實時加載。
這裡藏著一個極其重要的技術警告,根據原始碼,每個 MCP (Model Context Protocol) 工具的定義會消耗 4,000 到 6,000 個 tokens。這意味著,如果你貪心地掛載了 5 個工具,光是工具描述就可能佔用 context window 的 12%。在 AI 開發中,工具不是越多越好,過剩的工具定義是隱形的效能殺手。
"yoloClassifier" 的影子 AI
為何 Claude Code 鮮少發生誤刪文件的事故?祕密在於其雙 AI 運作機制。當主 AI 下達指令時,系統會調用一個名為 yoloClassifier 的獨立「影子 AI」。
這個分類器擁有完全獨立的系統提示詞,充當大樓的門禁系統。它將操作分為三個安全等級:
- Allow (放行): 低風險操作,直接自動執行。
- Soft Deny (確認): 潛在風險操作,降級為需要用戶點擊「Confirm」。
- Hard Deny (攔截): 絕對危險操作,系統直接拒絕並鎖死,用戶無法繞過。
這種「決策與審查分離」的設計,是構建安全型 Agent 的鐵律。
浪漫又科學的「自動夢境」(autoDream) 記憶系統
Claude Code 的記憶系統並非簡單的數據庫讀寫,其設計體現了對「狀態管理」的敬畏。記憶提取是由權限受限的 fork agent 異步處理的,且嚴格遵守**「不記代碼」**原則。
我們深知「過時狀態」是系統的災難,因為代碼是變動的,一旦記憶記錄了舊的行號或邏輯,就會誤導 AI。因此,Claude Code 只記憶用戶偏好與行為反饋,代碼邏輯永遠選擇「實時讀取」。
最令人驚艷的是其**「9 段式結構化壓縮」**與 autoDream (自動夢境) 機制。當會話過長或超過 24 小時,後台 Agent 會像人類睡覺整理大腦一樣,將冗長的對話壓縮為 9 個關鍵維度:
- 核心請求 (Core Request)
- 關鍵概念 (Key Concepts)
- 涉及文件路徑 (File Paths)
- 代碼錯誤與恢復過程 (Code Errors & Recovery)
- 用戶消息摘要 (User Messages)
- 待辦任務 (TODOs)
- 當前工作狀態 (Current Work)
- 下一步指南 (Next Steps)
- 外部引用
這種結構化提取,確保了 AI 在極長對話中依然能精準「斷點續傳」。
拋棄 RAG 轉向 grep
在人人都談 Vector DB 與 Embedding 的時代,Claude Code 竟然「返璞歸真」,主要使用 grep 進行文本搜索。
這並非落後,而是極致的清醒。確定性搜索 (Grep) 在代碼場景下往往優於概率性搜索 (Vector RAG)。當底層模型(如 Claude 3.5)的推理能力已經足夠強大時,複雜的語義索引層反而會增加不穩定性。與其指望概率性的 Embedding 能找到正確的文件,不如直接把最原始、精準的搜索結果丟給 AI,讓它用超強的自主推理去過濾。簡約,才是複雜度控制的終點。
從原始碼中學習成長
Claude Code 的原始碼讓我們得以窺見:下一階段 AI 競爭的終點線,在於誰能把那套「馬具」搭得更精細、更懂工程邊界,這份 51 萬行的設計圖已經擺在桌面上。作為開發者,與其擔心 AI 取代我們,不如學習如何構建這樣的系統。
