第 9 章 · Harness 與多代理:模型外那層「執行環境」
你可能有個疑問:Claude Code、Cursor 用的模型,跟你在網頁版聊天用的是同一個模型,為什麼它們能做到「自己讀檔、改 code、跑測試」這麼多事?答案是——強的不只是模型,是模型外面那層「執行環境」,也就是 harness。 這一章講清楚 harness 是什麼,以及讓多個 agent 一起合作的「多代理」。
💡 這一章你會懂:harness 到底包了什麼、為什麼它是 agent 產品的真正競爭力、以及什麼時候該讓「一群 agent」合作。
什麼是 Harness?
**Harness(挽具/執行框架)**就是包在模型外面、讓那個「感知→推理→行動→觀察」迴圈(第 7 章)能真正跑起來的整套基礎設施。模型是引擎,harness 是引擎外的整台車。
一個成熟的 harness 通常包含:
| 元件 | 作用 | 對應章節 |
|---|---|---|
| 代理迴圈 | 驅動 while 迴圈、串接工具呼叫 | 第 7 章 |
| 工具集 | 讀檔、寫檔、跑 bash、搜尋… | 第 4 章 |
| 權限控管 | 危險動作先問人、擋掉不該做的 | 第 7 章 human-in-the-loop |
| 沙箱(Sandbox) | 把執行隔離在安全環境,別讓它弄壞你的系統 | 本章 |
| Context 管理 | 對話太長自動壓縮、清理舊工具結果 | 第 3 章 |
💡 重點洞察:同樣的模型,配上好 harness 和爛 harness,能力天差地遠。所以 Claude Code 之於一般聊天,差別八成在 harness——這也是為什麼第 11 章「打造你自己的 agent」,一大半其實是在打造 harness。
用 Claude Code 當例子
Claude Code 本質上就是一個「裝了強力 harness 的 coding agent」。當你叫它「修好這個 bug」,harness 在背後做的事:
- 驅動代理迴圈,讓模型一步步推理;
- 提供工具:
read(讀檔)、edit(改檔)、bash(跑指令)、grep(搜尋)……; - 權限把關:要跑會改動系統的指令前,先問你同意;
- 沙箱隔離:在受控環境執行,降低搞砸的風險;
- context 自動壓縮:對話太長時,自動摘要舊內容、騰出空間;
- 需要時派**子代理(subagent)**去平行處理——這就接到下一段。
沙箱與安全:讓它「能動手」但「弄不壞」
Agent 一旦能跑指令、改檔案,風險就真實存在。沙箱(sandbox)是關鍵防線:把 agent 的執行限制在一個隔離、受控的環境(容器、虛擬機、受限帳號),這樣即使它做錯,也炸不到你的正式系統與重要資料。
配套的安全原則:最小權限(只給任務需要的權限)、危險動作要審批、記錄每個動作(出事能回溯)。
⚠️ 回顧第 4 章那條主線:模型只會「請求」動作,真正的把關永遠在 harness 這一層。你設計 harness 時,安全不是可選項。
多代理(Multi-Agent):一群 agent 分工合作
當任務很大、或需要不同專長時,可以讓多個 agent 協作,最常見的是**主管–工人(Orchestrator–Worker)**模式(呼應第 5 章):
flowchart TB
O[主代理 Orchestrator<br/>拆解任務、彙整結果] --> W1[子代理 1<br/>讀前端程式碼]
O --> W2[子代理 2<br/>讀後端程式碼]
O --> W3[子代理 3<br/>查測試]
W1 --> O
W2 --> O
W3 --> O
- 主代理負責規劃、拆解、最後彙整。
- 子代理(subagent)各自負責一塊,可以平行進行(快很多),也可以各有專長(一個擅長寫測試、一個擅長查資料)。
- 每個子代理有自己乾淨的 context,不會被彼此的雜訊干擾——這其實也是一種 context 管理技巧(第 3 章)。
但先等等:多代理不是萬靈丹
多代理很酷,但它更難除錯、更貴、更容易出協調問題。務實原則:
| 情況 | 建議 |
|---|---|
| 任務單純、線性 | 單一 agent 就好,別為複雜而複雜 |
| 任務能明確切成獨立的平行子任務 | 適合多代理(平行加速) |
| 需要不同「專長角色」分工 | 適合多代理(各司其職) |
💡 跟第 5 章「先 workflow 再 agent」同一個哲學:先單代理,真的有需要再多代理。 複雜度是有代價的。
重點回顧
- Harness = 模型外那層執行環境:代理迴圈 + 工具 + 權限 + 沙箱 + context 管理。同樣的模型,harness 決定它有多強。
- Claude Code 的強大,八成來自 harness——第 11 章你會發現,做 agent 一大半是在做 harness。
- 沙箱 + 最小權限 + 審批 + 記錄 是 agent 能「動手卻弄不壞」的關鍵。
- 多代理(主管–工人、子代理平行)適合大型、可平行、需分工的任務。
- 原則不變:先單代理,不夠再多代理;複雜度有代價。
到這裡,agent 的「腦、手、身體」都齊了。但——你怎麼知道你做的這一切到底有沒有用、會不會出包?下一章講整門課最被忽略、卻最重要的能力:評估、可觀測性與安全。