Claude Code from Source — 書籍封面

Anthropic 如何打造最廣泛使用的 AI 程式碼代理

當 Claude Code 發佈到 npm 時,原始碼映射也一併隨附。我們讀遍了每一個檔案。本書將其中的架構、設計決策與可遷移的模式提煉為 18 個章節,讓你能從中學習並應用到自己的系統。

開始閱讀

你將學到什麼

代理迴圈

一個 async generator 如何驅動整個系統——串流模型輸出、執行工具、從錯誤中恢復,以及透過 4 層機制壓縮上下文。

大規模工具執行

從模型請求到工具結果的 14 步管線。權限解析、推測性執行、依安全分類進行的併發批次處理。

多代理協作

子代理如何共享提示快取前綴以降低 95% 成本。分叉代理、協調者模式、具有信箱訊息傳遞的群集團隊。

無資料庫的記憶系統

基於檔案的記憶系統搭配 LLM 驅動的回憶機制。四種記憶類型、過期警告,以及一個優於嵌入搜尋的 Sonnet 側查詢。

效能工程

透過平行 I/O 在 240ms 內啟動。槽位保留機制在 99% 的請求中節省上下文。位圖預過濾器用於模糊搜尋。每一毫秒都被精確管理。

擴充性與安全性

兩階段技能載入(啟動時載入元資料,呼叫時載入內容)。27 個生命週期鉤子,啟動時凍結設定快照以防止注入攻擊。

探索架構

六個核心抽象構成了 Claude Code 的基礎。拖曳節點重新排列,懸停查看細節,點擊閱讀對應章節。

本書適合誰

正在建構代理系統的工程師。每一章的結尾都有「實踐應用」——5 個可遷移的模式,附帶具體的調適建議。借用架構,避開錯誤。

評估架構的技術主管。跟著敘事走,不需要讀完每一段程式碼。理解決策背後的原因,而非僅了解建構了什麼。

對正式環境 AI 工具運作方式感到好奇的人。Claude Code 被數十萬開發者使用。這就是它底層的運作方式。

目錄

本書如何製作

原始碼從 npm 的原始碼映射中提取——隨 Claude Code 一起發佈的 .js.map 檔案包含了一個 sourcesContent 欄位,內含完整的原始 TypeScript。近兩千個檔案構成了完整的架構。

36 個 AI 代理分四個階段分析並撰寫了整本書:

探索 6 個平行代理讀遍原始碼樹中的每一個檔案
分析 12 個代理撰寫了 494KB 的原始技術文件
撰寫 15 個代理從零開始將所有內容重寫為敘事章節
審閱與修訂 3 位審閱者產出 900 行回饋意見;3 個代理套用了所有修正

整個過程——從原始碼提取到最終修訂完成——大約花了 6 小時。最終的審核確保沒有任何逐字複製的原始碼殘留——每一個程式碼區塊都使用不同的變數名稱重寫為虛擬碼。

讓一切運作的 10 個模式

即使你什麼都不讀,也請看看這些定義了 Claude Code 的架構策略。

1
AsyncGenerator 作為代理迴圈 — 產出 Messages、具型別的 Terminal 返回值、自然的背壓與取消機制
2
推測性工具執行 — 在模型串流期間,於回應完成前就啟動唯讀工具
3
併發安全批次處理 — 依安全性分區工具,平行執行讀取,序列化寫入
4
分叉代理實現快取共享 — 平行子代理共享位元組完全相同的提示前綴,節省約 95% 的輸入 token
5
4 層上下文壓縮 — snip、microcompact、collapse、autocompact——每一層都比上一層更輕量
6
基於檔案的記憶搭配 LLM 回憶 — Sonnet 側查詢選取相關記憶,而非關鍵字比對
7
兩階段技能載入 — 啟動時僅載入前置資料,呼叫時才載入完整內容
8
黏性閂鎖確保快取穩定性 — 一旦發送 beta 標頭,在整個工作階段中不再取消
9
槽位保留 — 預設 8K 輸出上限,觸及時提升至 64K(在 99% 的請求中節省上下文)
10
鉤子設定快照 — 在啟動時凍結,防止執行期注入攻擊

純教育用途。本書不包含 Claude Code 的任何原始碼——每一個程式碼區塊都是為了說明架構模式而撰寫的原創虛擬碼。目標是幫助工程師理解正式環境 AI 代理的建構方式,而非重製專有軟體。「NO'REILLY」封面純屬戲仿/迷因,僅供說明之用——與 O'Reilly Media 無任何關聯。