Nat 鍾承恩

觀點 2026 / 06 約 8 分鐘

Agent Harness 是什麼:拆開六個零件,定義自己浮出來

先說結論:大多數 agent 跑不起來,不是模型太笨,而是有人以為「agent = model + prompt」,接著就拿去正式環境。少了的那塊叫 Harness——把非確定性的黑箱模型錨在一個可控、穩定環境裡的外圍結構。

但「外圍結構」說起來還是太抽象。我讀 Tejas Kumar 在 AI Engineer 研討會那場 demo 的最大收穫,不是「你需要 harness」這句話——這誰都說得出——而是他把 harness 拆成六個零件列出來。六個零件一擺出來,你就知道自己蓋的東西缺哪塊,以及每塊為什麼缺不得。

六個零件

一、Tool registry Agent 能讀什麼、寫什麼、跑什麼指令——明確定義才存在。沒有 tool registry 的 agent,就是一個只能輸出文字的 chatbot,連開檔都辦不到。工具不是自動有的,是你明確給的。

二、Model 有的 harness 讓你選模型,有的不讓你選。這個零件只有一件事值得記住:model 只是六分之一。

三、Context 管理 幾乎所有成熟 harness 都會壓縮 context、管理訊息歷史——不然 token 跑一跑就爆掉,或是 context window 超長、推理開始漂移。這個零件不性感,但不蓋就死。

四、Guardrails 例如 max steps:agent 超過幾步沒完成就直接 kill 這個 run。這是限制,也是保護——讓 agent 在失控前停下來,不是繼續燒 token 和時間。Guardrails 不是信任問題,是工程問題:任何迴圈都需要出口條件。

五、Agent loop 這才是「agent 反覆思考、反覆行動」的那個迴圈本身。但這裡有一個關鍵釐清:harness ≠ agent loop。Harness 是 loop 外面那一圈——甚至是「loop 外的 loop」。很多人把兩者混為一談,蓋出來的 agent 於是沒有出口、沒有 verify、沒有 guardrails,就是一個裸跑的迴圈,一旦壞掉沒人攔。

六、Verify step Agent「做完」之後,harness 自己跑 lint、test、或確認某個狀態——確認沒有東西壞掉。這步存在的理由反直覺:你不能信 agent 的自我回報。Tejas 的 demo 裡,agent 大言不慚說它幫你在 Hacker News 按讚成功——verify 下去發現根本沒做到。要看 tool 呼叫的歷史,不是 agent 說它做了什麼。

定義從解剖來

把六個零件擺在一起,Harness 的定義就自己跑出來:讓模型在你環境裡可靠跑起來所需的一切外部結構。Context 管理讓它不超量、guardrails 讓它不失控、verify 讓它不謊報、tool registry 讓它能真的做事。

這也是 IBM 這類公司做 harness engineering 的核心立場:模型是黑箱,你租來的,供應商隨時可以悄悄換掉底層——你控制不了模型本身,所以可靠性只能靠外圍鎖住。好的 harness 讓你連便宜模型都用得穩,而不是靠押注最新最強的那個版本。

確定性是分水嶺

六個零件裡,有一類特別值得單獨提出來:那些你不應該交給模型做的事——登入、注入憑證、處理密鑰。

這類動作要由 harness 在程式碼層確定性執行。不是因為不信任模型,而是因為確定性跟機率性的邊界在這裡很清楚:模型的輸出是機率的,安全敏感操作不能賭。具體做法:每個 agent loop 前先檢查當前 URL,不在登入頁就直接 return(幾乎零成本);在登入頁就由 harness 用程式碼填帳密、送出表單——這份程式碼能拿到任何 secret,而 agent 跟 prompt 完全碰不到。

這個分工也回答了一個常見問題:harness 應該做多少?答案是「只做模型做不到或做不穩的那些事」。模型能推理的留給它推理,harness 不替它規劃——不然你蓋的是一個把模型智慧包住、越來越脆的黑盒子。

改 harness,不改 prompt

最容易踩的坑是這個:agent 不照指示做,本能反應是「prompt 它更兇」。大多數時候這是錯的——該改的是外圍 harness,不是 prompt。

Tejas 用 GPT-3.5(2023 年的爛模型)做完整 demo:全程不改 prompt、不改 system prompt,只逐步把 harness 加上去——guardrails、確定性 verify、登入 handler——結果從「謊報成功」變成真的登入並完成。同樣的模型、同樣的 prompt,行為完全不同。

這才是「外圍結構」的真正意思:你能改的把手在 harness 那一層,不在模型本身。

這層會持續演進

Tejas 的預測值得記下來:2025 是 agent 年,2026 是 harness 年,2027 會是「動態自生 harness」——你給 agent 一個任務,它在動手前先自己生成一個 harness,知道自己哪裡容易幻覺,先把對應 guardrails 搭好再做事。他視為朝 AGI 的下一個合理步驟。

我認為這個預測說中了一件本質:harness 的實作方式會一直演進,但它存在的理由不會消失。只要模型還是黑箱、還是租來的、還是你控制不了它底層行為——你就需要外圍那六個職責,把它錨進現實。

不管未來那一層叫什麼名字,六個零件還在那裡等你填:工具給它用、context 管好、限制它的邊界、確定性做掉危險動作、verify 確認沒壞。你逃不掉,只是可以選要不要清醒地設計它。

連結

  • [[agent-harness-anatomy-five-parts]] — 六個零件的原始筆記
  • [[harness-grounds-model-in-stable-environment]] — 第一性定義:登山扣 / 錨進穩定環境
  • [[harness-reliability-over-rented-blackbox]] — 可靠性是 harness 的整個賽局
  • [[fix-via-harness-not-prompt]] — 改 harness 不改 prompt(現場 demo)
  • [[harness-handles-secrets-deterministically]] — 確定性執行登入與憑證
  • [[dynamic-self-generated-harness-trajectory]] — 2027 動態自生 harness 預測
  • [[thin-harness-fat-skills]] — 薄的設計邊界:只做模型做不到的那些
  • [[harness-is-the-gap-not-the-model]] — 為什麼需要這一層(生產落差)
  • [[tejas-kumar]] — 來源講者(IBM AI developer advocate)
  • [[ibm]] — 企業級 harness engineering 案例