— 拆解了 Claude Code,就學會 Harness Engineering 了嗎?
就在昨天(3/31),Anthropic 因為 npm 打包失誤,意外把 Claude Code 的完整原始碼洩漏了——512,000 多行 TypeScript,1,884 個檔案,全部攤在陽光下。在這之前,社群早就逆向工程了 12 個版本,但這次是整個底牌翻開。
然後我看到很多人說:"從 Claude Code 可以學到 Harness Engineering。"
我一開始覺得哪裡怪怪的,想了一下才理清楚——這句話聽起來合理,但其實搞混了兩件事。
【先定義清楚:什麼是 Harness Engineering?】
Day 77 聊過這個概念,這裡再精確定義一次。
ThoughtWorks 的 Kief Morris 說:harness 是包圍在 agent 周圍的規格、品質檢查和工作流程指引的集合。Harness Engineering 就是人類"在迴圈上"(on the loop)而非"在迴圈中"(in the loop)工作的實踐。
關鍵字是"實踐"。Harness Engineering 不是一組知識,而是一個動作——你設計約束、建立回饋迴圈、不斷根據失敗迭代,讓 agent 在你的場景裡可靠運作。
它的核心組件包括: → 約束條件與分層架構(CLAUDE.md、權限設定) → 回饋迴圈(hooks、linter、CI、自動測試) → 知識管理(記憶系統、文件結構) → 生命週期管理(對話壓縮、狀態復原) → 子 agent 協調(平行作業、隔離機制)
【洩漏了什麼?跟我們有什麼關係?】
這次被攤開的包括 Claude Code 的完整 TypeScript 架構、hook 系統實作、多 agent 協調機制、記憶架構、反蒸餾機制、未發布的 KAIROS 自主模式,甚至 23 項 Bash 安全檢查的具體內容。
聽起來很震撼。但問一個關鍵問題:這些資訊改變了什麼?
在洩漏之前,你就已經知道: → 可以用 hooks 建立回饋迴圈(官方文件寫得很清楚) → 可以用 CLAUDE.md 設定約束條件和分層指令 → 可以用 skills 封裝可複用的工作流程 → 可以用 memory 做跨對話的知識管理 → 可以用子 agent 做平行處理
洩漏之後呢?你還是用一樣的 hooks、一樣的 CLAUDE.md、一樣的 skills。你多知道的,是 Anthropic 內部怎麼實作這些功能——但那是他們的工程問題,不是你的。
你不會因為知道 hook 系統內部用了什麼 event emitter 架構,就突然比昨天更會設計回饋迴圈。就像你不會因為知道螺絲起子的冶金配方,就突然更會組裝傢俱。
【Harness Engineering 是造出來的,不是讀出來的】
這裡就是那個微妙但關鍵的區分。
讀 Claude Code 的原始碼,你學到的是一個"成品"——Anthropic 為了讓 AI 在終端機裡可靠寫程式碼而打造的特定系統。你看到它長什麼樣、用了什麼技術、做了什麼取捨。
但 Harness Engineering 是"造的過程"——你自己摸索出哪些約束對你的場景有效、哪些回饋迴圈能抓到你的 agent 的失敗模式、哪些知識需要跨對話保留。
這個"造的過程"沒辦法從別人的成品裡學到。因為:
→ 你的場景不一樣(你不是在做 coding agent) → 你的失敗模式不一樣(你的 agent 不會撞到 Zsh 漏洞) → 你的約束不一樣(你不需要反蒸餾機制)
你需要自己踩坑,才知道該在哪裡加護欄。
【那讀 Claude Code 原始碼完全沒用嗎?】
也不是。它的價值在"問對問題",而不是"拿到答案":
→ 為什麼他們需要 23 項安全檢查?(踩了什麼坑?) → 為什麼 agent 需要 worktree 隔離?(平行作業出了什麼問題?) → 為什麼記憶系統要能自我修復?(長對話會怎麼壞?)
但這些問題,你只有在自己建造的過程中才會真正理解。讀別人的答案跟自己找到答案,學到的深度完全不同。
【那要怎麼真正學 Harness Engineering?】
答案很無聊但很實在:自己建一套。
- 先定義你的 agent 要解決什麼問題
- 設計約束條件——什麼能做、什麼不能做
- 建立回饋迴圈——怎麼自動檢查產出品質
- 加入記憶與知識管理——讓 agent 跨對話也能保持一致
- 不斷迭代——根據實際失敗案例調整
我自己就是這樣做的。這個 100 天挑戰的發文流程,從 CLAUDE.md 的專案指令,到 skills 的內容優化流程,到 hooks 的自動行為,到子 agent 的平行處理——就是一套為我自己的使用場景量身打造的 harness。
這些東西在 Claude Code 洩漏之前就存在了,洩漏之後也沒有改變。因為 harness 從來就不是讀來的,是造出來的。
【結論】
Claude Code 被攤開是一份珍貴的教材嗎?是。它讓我們看到頂級團隊的工程決策。
但說它教你 Harness Engineering?那就像說讀完一本食譜就會開餐廳。食譜告訴你材料和步驟,但開餐廳需要的是理解你的客人、你的廚房、你的供應鏈——然後不斷試錯。
工具一直都在那裡。hooks 一直都在文件裡。能力從來沒有被隱藏。
差別只在於:你有沒有動手去造。