Agent Harness 是什麼?把模型變成可控工作流程的執行層

Agent Harness 是包在模型外層的執行控制層,負責工具契約、任務狀態、Context 與記憶載入、權限與 Sandbox、驗證、觀測、成本上限、錯誤回退與人工接管。模型可以更換,但這些責任仍要被系統明確承擔。
如果模型回答的是「下一步可以做什麼」,Harness 要回答的是「這一步能不能做、用什麼工具做、做完如何驗證、失敗後如何停下或恢復」。因此,Agent Harness 不是更大的模型,也不是把幾個 API 接起來的 Prompt,而是把意圖包進有邊界的工作流程。
先分清楚:模型、Agent、Framework、Workflow 與 Harness
| 層級 | 主要責任 | 它不應單獨承擔什麼 |
|---|---|---|
| 模型 | 理解文字或多模態輸入,產生判斷、計畫或輸出。 | 身份、權限、交易回退與完成證明。 |
| Agent | 在任務邊界內選擇下一步,必要時呼叫工具。 | 不可逆副作用與所有安全政策。 |
| Framework | 提供模型、工具、Agent Loop、Handoff 或 State 的開發介面。 | 替團隊決定完整的業務權限與驗收責任。 |
| Workflow | 控制固定步驟、分支、重試、排程與人工 Gate。 | 不必把每個固定規則都交給模型判斷。 |
| Harness | 把模型放入可觀測、可限制、可驗證、可恢復的執行環境。 | 不等於完整的企業平台或資料治理制度。 |
簡單問答或固定格式轉換不一定需要完整 Harness;當任務開始跨越多個工具、Session、權限、人工核准或外部副作用時,Harness 才成為不可省略的控制面。
Harness 的六個核心責任
1. 工具介面與執行契約
每個工具都應定義輸入與輸出 Schema、錯誤類型、Timeout、副作用、權限範圍與版本條件。工具回傳成功,不等於任務已完成;它只代表一次工具呼叫完成。
2. 任務狀態與 Context
Harness 要保存目標、目前步驟、已完成工作、待處理問題、工具結果、Artifact 與下一步。Context Window 是模型當輪看到的資料,不是可靠的任務資料庫。
3. 記憶與資料載入
即時 Context、外部檢索與跨任務記憶用途不同。每筆被載入的資料都應盡可能保留來源、版本、權限、日期與適用範圍,避免舊文件被當成現況。
4. 權限、Sandbox 與人工核准
先把工具分成讀取、草稿、寫入與不可逆操作。高風險操作應顯示對象、參數與影響範圍,經人工核准後才執行;檔案路徑規則也不能取代程序、網路與資源隔離。
5. 驗證與完成條件
用 Schema、測試、來源核對、政策規則、獨立檢查或人工 Review 驗證外部成果。Agent 說「完成」只能是候選狀態,不能是唯一完成證明。
6. 觀測、成本與錯誤回退
至少記錄任務 ID、模型與工具版本、步驟耗時、Token、費用、錯誤、重試、人工決定與最終驗證。可重試錯誤要和權限拒絕、資料矛盾、不可恢復失敗分開處理。
最小可用 Harness 怎麼開始?
- 先定義任務契約:寫清楚輸入、輸出、資料範圍、禁止事項、完成條件與停止條件。
- 先開讀取與草稿:讓 Agent 搜尋、整理、產生候選結果,但不直接發布、付款、刪除或變更權限。
- 每一步都留下證據:保存工具結果、Artifact、測試與下一步,不把交接責任留在聊天紀錄。
- 把高風險動作做成中斷:核准前暫停,拒絕後保留狀態,核准後從原步驟繼續,不重做已完成的副作用。
- 限制執行上限:設定最大步數、時間、費用、重試次數與 Context 預算。
長任務需要額外增加什麼?
當任務跨越多個 Session,Harness 需要把進度、Checkpoint、人工決定、測試、工具結果與恢復位置保存到對話之外。Context compaction 只能縮短對話,不能保證保留所有未完成步驟與副作用邊界。
實作上至少要測試:程序中止後 Resume、工具重試是否冪等、核准後不重複寫入、Context 壓縮後仍能讀回正式證據、權限拒絕後能安全停止,以及連續錯誤後能否交給人工接手。
可延伸閱讀:長任務 Agent Harness 的 Checkpoint、Tracing 與中斷續跑、Closed-loop Agent 的狀態機與停止條件。
企業評估 Harness 的八個問題
- 中斷後能否從正確步驟恢復?
- 每個工具的 Schema、副作用與錯誤是否清楚?
- 權限是否依工具風險分級,而不是一次全部開放?
- 完成結果是否有外部驗證,而不是只看模型自評?
- Trace 能否重建一次 Run,同時避免保存不必要的秘密與個資?
- 重試是否冪等,會不會重複寄信、建立資料或扣款?
- 模型、工具、Runtime 或供應商更換時,哪些責任仍能保留?
- 每個成功任務的總成本與人工接管時間,是否低於可接受基線?
常見問題
每個 AI Agent 都需要完整 Harness 嗎?
不需要。單輪問答、固定腳本或低風險草稿可以使用較薄的控制層;任務越長、工具越多、資料越敏感,越需要狀態、權限、驗證與回復。
換更強的模型能解決 Harness 問題嗎?
通常不能。更強模型可能減少部分判斷錯誤,但不會自動提供最小權限、冪等、人工核准、外部驗證或交易回退。
Harness 等於企業 Agent Platform 嗎?
不等於。Harness 是單次或一組 Agent 執行所需的控制層;Platform 還要處理多租戶、部署、IAM、治理、成本分攤、監控與團隊營運。
資料來源與延伸閱讀
長任務設計可參考 Anthropic 對 long-running agents 的 Harness 研究;中斷、核准與 Resume 可參考 OpenAI Agents SDK 的 Human-in-the-loop 文件;若要比較 opinionated Harness 的 Planning、Filesystem、Subagents、Memory 與 Permissions,可參考 LangChain Deep Agents overview。
如果要把定義轉成實際導入順序,接著閱讀 AI Agent 工作流七層架構;如果要評估 Coding Agent,閱讀 AI Coding Eval 的 Repository 任務與 Go/No-Go 標準。
KEEP READING
接著讀什麼?
從同一主題繼續閱讀,或回到 YOLO LAB 的完整文章索引,找到下一個值得投入時間的問題。


發表迴響