喂!我是 Wei

Front-End Engineer

Be a Problem Solver.

⌘K

導覽

所有文章緣起互動小功能

文章分類

目錄
問題從哪裡來AI 和傳統自動化的根本差異Harness Engineering 是什麼從 Prompt 到 Harness:三個思考層次Harness 的五個核心元件Tools(工具層)Workflow(狀態協調層)Guardrails(全域控制層)Memory(記憶層)Feedback Loop:AI 系統必須能從錯誤中恢復實際案例:Ollama + ComfyUI 的圖像生成 Pipeline可觀測性:你必須知道系統在做什麼Harness 是一種新的 AI 系統設計思維

相關文章

Discord Bot 串接 Groq:打造高速 AI 對話助理

2026年4月1日

最新文章
全部 →
前端 CI/CD 與正式環境除錯:從 Pull Request 到事故排查
2026-06-24
即時資料怎麼選?Polling、SSE、WebSocket 比較
2026-06-23
前端系統設計:如何拆元件、資料流與大型專案架構?
2026-06-22
無障礙不是加 ARIA:語意化 HTML、鍵盤操作與焦點管理
2026-06-21
CSS 與 RWD 面試整理:Flexbox、Grid、定位與層疊脈絡
2026-06-19
← 返回文章列表

Harness Engineering:AI Agent 的系統設計

2026年5月7日·約 15 分鐘閱讀·
AIHarness EngineeringAI AgentPrompt EngineeringAI 系統設計

最近在國外 AI 社群越來越常看到一個詞出現在討論串裡:Harness Engineering。

不是某個特定框架或工具,而是一種在業界逐漸成形的工程思維——描述「如何讓 AI 在系統中真正可靠地運作」。台灣這邊討論相對還少,這篇就來把它拆清楚。


問題從哪裡來

當 AI 開始從單次回答走向長流程任務,Harness Engineering 就開始變得重要。

早期大家用 AI 的方式很簡單:問一個問題、得到一個答案。這個模式下,你需要的只是一個好的 Prompt。

但現實的任務很少這麼單純。你希望 AI 幫你做的事,通常長這樣:

分析一份報告 → 整理重點 → 搜尋相關資料 → 對照比較 → 產出結論 → 如果結果不好就重新調整

這不是一次呼叫能解決的。你需要的是一套系統:讓 AI 知道任務流程、能呼叫外部工具、記住前面做了什麼、在出錯時能自動修正,還有在走偏的時候有人把它拉回來。

這套系統,就是 Harness。

還有一個重要的觀念要先建立:AI Agent 不等於單一模型。一個完整的 AI Agent,通常是多個模型加上多個工具的組合——一個模型負責理解指令、一個負責搜尋資料、一個負責評估輸出品質。Harness 就是讓這些元件能協同運作的框架。


AI 和傳統自動化的根本差異

要理解為什麼需要 Harness,先得搞清楚 AI 系統和傳統自動化在本質上哪裡不一樣。

傳統的自動化程式是 deterministic(確定性) 的:同樣的輸入,永遠得到同樣的輸出。你可以用 if/else 把所有分支都寫清楚,程式不會「發揮」。出了問題,你可以追 stack trace,每一步的行為都是可預測的。

AI 是 probabilistic(機率性) 的:同樣的輸入,每次輸出可能不同。它可以推理、可以類比、可以在沒有明確規則的情況下做出決策——但這也代表它可能輸出不符預期的結果,而且你無法完全預測它什麼時候會這樣。這不是 bug,而是模型的特性。

這就是 Harness 存在的核心理由:不是假設 AI 每次都對,而是設計一套它輸出不夠好時能夠自動修正的機制。

傳統自動化的思維是:「我把所有情況都考慮到了,所以系統不會出錯。」 Harness 的思維是:「AI 一定會有出乎意料的情況,所以我設計一套能從錯誤中恢復的系統。」


Harness Engineering 是什麼

把 AI 模型包起來,提供它工作所需的工具、流程、記憶與護欄,讓它能跨多個步驟、可靠地完成複雜任務——這套協調與調度系統就是 Harness。

Harness 是 AI 系統的 orchestration layer:負責調度模型呼叫、管理工具執行、追蹤任務狀態,讓整個流程從輸入到輸出能可靠地跑完。

Harness Engineering 架構:Model + Harness = AI Agent


從 Prompt 到 Harness:三個思考層次

Harness Engineering 不是憑空冒出來的,它是業界對「怎麼用好 AI」這個問題,需求越來越複雜之後,一步一步被逼出來的演進。

Prompt Engineering(2023)是起點。AI 變得可用,大家第一個問題是「怎麼問才能得到好答案」——措辭、結構、範例,讓單次輸出更準確。但問題很快就出現了:就算 Prompt 寫得再好,一旦任務需要多步驟,這個框架就不夠用了。

Context Engineering(2024)是第二步。你發現 AI 的輸出品質不只取決於怎麼問,更取決於它拿到了什麼資訊——背景資料、對話歷史、可用工具清單、任務規則。「垃圾進、垃圾出」的問題在這個階段最明顯,Context Engineering 的目標就是讓進去的資訊品質夠好,讓 AI 能做出正確決策。

Harness Engineering(現在)是第三步,也是目前最完整的框架。光是輸入端做好還不夠,系統整體能不能跑通才是問題:任務怎麼串、中間狀態怎麼管理、出錯了怎麼自動修正、危險的操作怎麼擋下來。

維度Prompt EngineeringContext EngineeringHarness Engineering
關注點問法夠不夠好給 AI 的資訊品質整套系統能不能穩定跑
核心產出精準的 Prompt高品質的輸入脈絡可自動執行、可重複的 AI 系統
視角輸入端資訊品質端系統端
解決的問題單次輸出不夠準確AI 缺乏足夠的背景資訊流程不穩定、無法從錯誤中恢復

三者是層疊關係,不是替代關係:好的 Harness 系統裡,Prompt 和 Context 都要做好。


Harness 的五個核心元件

Harness 五個核心元件

Tools(工具層)

LLM 本身不具備 side effects——它只能讀取輸入、產生輸出,無法主動和外部世界互動。Tools 層就是解決這個問題:把 AI 的決策意圖轉換成實際的外部操作。

  • 呼叫外部 API(搜尋網路、查資料庫、打第三方服務)
  • 讀寫檔案、操作瀏覽器
  • 執行程式碼
  • 呼叫其他 AI 模型

沒有 Tools,AI 只能生成文字。有了 Tools,AI 才能對真實系統產生影響。

Workflow(狀態協調層)

多個模型和工具要協同完成一個任務,就需要有人管理執行順序和中間狀態——這就是 Workflow 的職責。

Workflow 不只是「定義步驟 A 接 B」,它還要處理:目前跑到哪一步、上一步的輸出是什麼、接下來要呼叫哪個工具、如果某一步失敗了要怎麼處理。

使用者輸入 → 分析意圖 → 選擇工具 → 執行 → 驗證結果 → 輸出

這種跨模型、跨工具的狀態協調能力,是 Workflow 最核心的價值。

Guardrails(全域控制層)

Guardrails 和其他元件不太一樣——它不是一個執行步驟,而是貫穿整個任務的全域控制層,在任何時間點都能介入:

  • 輸入過濾:阻擋惡意提示注入(prompt injection)
  • 輸出審核:確保回答符合規範,不輸出有害內容
  • 行動限制:禁止刪除資料、禁止發送特定訊息
  • 成本控管:限制單次 token 用量、呼叫頻率,避免費用失控

設計 Guardrails 的思維是:你不是在限制 AI 的能力,而是在定義一個安全的操作邊界。

Memory(記憶層)

每次 LLM 呼叫預設是無狀態的,Memory 層解決這個問題。

實際工程中,Memory 有兩個用途:

短期記憶(當次任務):把這次任務執行到哪、呼叫了哪些工具、出了什麼錯,放進下一次呼叫的 context 裡。這讓 AI 在多步驟任務中保持連貫,不會每一步都像第一次見面。

長期記憶(跨任務):把成功的提示詞策略、常見的失敗模式、特定場景的最佳做法記下來,下次執行同類任務時直接作為參考。久了以後,系統會越來越「有經驗」——同樣的問題不用再重新摸索。

Memory 在 Feedback Loop 裡扮演的角色尤其關鍵:沒有 Memory,每次 Retry 都等於從零開始;有了 Memory,每次 Retry 都是在上一次的基礎上優化。

Feedback Loop:AI 系統必須能從錯誤中恢復

這是 Harness 和傳統自動化差距最大的地方,也是整個框架的核心設計。

傳統自動化假設「只要邏輯正確,結果就會正確」。AI 系統不能這樣假設——因為模型的輸出本質上是機率性的,在沒有 Retry 機制的情況下,你其實是在賭每次輸出都剛好夠好。

AI 系統需要的不是「避免出錯」,而是「有計畫地從輸出品質不足中恢復」。

Feedback Loop 與 Retry 機制:執行 → 檢查 → 未通過 → 調整 → 重試,搭配 Memory 持續優化

整個迴圈是這樣運作的:

  1. 執行任務:根據計畫執行,呼叫工具或 API
  2. 結果檢查:檢查輸出是否符合要求(可以用規則判斷,也可以用另一個 LLM 評分)
  3. 未通過 → 調整:分析失敗原因,調整 Prompt 措辭、更換工具、拆解子任務
  4. 重試:帶著調整後的策略重新執行,直到通過或達到重試上限

Memory 在中間是關鍵:每一輪的執行結果和失敗原因都被記下來,讓下一輪 Retry 不是盲目重試,而是有依據的優化。


實際案例:Ollama + ComfyUI 的圖像生成 Pipeline

Feedback Loop 最直觀的例子,是用本地模型做圖像生成的自動化迴圈。

整個 Pipeline 的結構長這樣:

[使用者輸入:角色描述]
        ↓
[Ollama LLM:將描述轉換成詳細的 Stable Diffusion 提示詞]
        ↓
[ComfyUI API:根據提示詞生成圖像]
        ↓
[Ollama Vision Model:評估圖像品質——構圖、細節、符不符合描述]
        ↓
[品質未通過?]
  → Memory 記錄失敗原因(例如:手部細節不自然、服裝顏色偏差)
  → 調整提示詞,針對問題強化描述
  → 重新生成,最多重試 3 次
        ↓
[通過 → 輸出最終圖像]

這個迴圈裡有三個模型協同工作:一個負責語言理解、一個負責圖像生成、一個負責視覺評估。Harness 就是讓這三個模型能串接起來、狀態能傳遞下去、失敗能自動修正的那一層。

評估不過就輸出「當前最佳候選」,而不是一直重試——重試上限設 2~3 次,讓系統在效能和品質之間取得平衡,使用者體感也會好很多。

這個架構的應用方向很廣:角色生成、電商商品圖、服裝搭配視覺化——只要是「需要反覆產出圖像、並評估品質」的場景,都可以套用類似的 Harness Pipeline。


可觀測性:你必須知道系統在做什麼

Harness 系統面對的一個特殊挑戰:AI workflow 的 debug 比傳統程式難得多。

傳統程式出問題,你看 stack trace、看 log,通常能定位到具體的一行。AI 系統出問題,可能的原因有很多:Prompt 措辭不夠精確、Context 裡缺少關鍵資訊、工具回傳了非預期格式、或者這次模型的輸出方向剛好偏了。這些問題沒有固定的發生位置,也沒有 stack trace 可以追。

這代表 Harness 系統從一開始就需要把可觀測性(Observability)設計進去,而不是事後補:

  • 每一次 LLM 呼叫都要 logging:完整記錄輸入的 prompt、輸出的內容、token 用量、呼叫時間
  • 每一次 Retry 的原因都要記錄:是哪個檢查沒通過、失敗的具體描述是什麼
  • 任務的整體 trace 要能還原:能看到整個任務從開始到結束每一步做了什麼、狀態如何轉移

沒有這些,Harness 系統就是一個黑盒子。跑得順的時候你不知道為什麼順,出問題的時候也不知道從哪裡開始找。


Harness 是一種新的 AI 系統設計思維

Harness Engineering 的核心問題意識很簡單:「模型夠聰明」和「系統夠可靠」是兩件事。

選一個更強的模型,不代表你的 AI 系統就更穩定。穩定來自系統設計——你怎麼管理狀態、怎麼處理失敗、怎麼讓不同模型和工具協同工作、怎麼確保整個流程在預期的邊界內運作。

這是傳統軟體工程師很熟悉的問題框架,只是換了一個更不確定的執行層:LLM。

Harness 不是一個你必須一次就建得很完整的東西。從一個最簡單的 Retry Loop 開始——先讓「執行 → 檢查 → 不夠好就調整重試」這個基本機制跑起來,就已經是 Harness 思維的實踐了。Memory、完整的 Workflow、Observability,這些都可以隨著系統複雜度慢慢疊加。

AI 模型負責推理,Harness 負責讓推理結果能在真實系統中、跨多個步驟、可靠地落地。 這件事,沒有辦法只靠一個好的 Prompt 解決。

分享:XLinkedIn
← 上一篇用 Vercel AI SDK v6 在 Next.js 加上 AI 聊天助手(免費用 Groq)