Harness 工程:定義與運作方式
這份淺顯易懂的指南將說明什麼是 AI harness,以及 harness 工程如何形塑 AI 代理程式的能力。

什麼是 harness 工程
Harness 工程是打造 AI 工具 harness 的工作,而 harness 指的是工具中除了 AI 模型以外的所有部分。
模型是 AI 系統本身,經過大量文字訓練,因此能夠閱讀與撰寫語言。AI 模型的例子包括 OpenAI 的 GPT、Anthropic 的 Claude 和 Google 的 Gemini。
模型本身只能接收文字(有時也包括圖片或音訊),再以文字回覆。它無法記住過去的對話、查詢最新資訊,也無法執行程式碼。因此,模型需要一套 harness 來管理它能取得哪些資訊、可以使用哪些應用程式、獲准做哪些事,以及如何檢查它的成果。
即使是基本的聊天助理也需要 harness。模型每回答完一次,就會忘記這段交流,因此由 harness 負責保存對話紀錄。如果有人先問了巴黎的事,接著追問「它的人口有多少?」,harness 會把兩個問題一起傳送給模型。模型就是這樣知道「它」指的是巴黎。
以相同模型打造的兩個工具,表現卻可能天差地別,harness 工程正是原因之一。舉例來說,在一項獨立測試中,研究人員維持相同的模型(GPT5),只更換了 harness,結果該模型在一項程式設計測試中的分數變動幅度高達 11%。
Anthropic 和 OpenAI 等 AI 模型開發商會為自家 AI 產品(例如 Claude Code 和 Codex)打造 harness。而開發 AI 產品的公司,則會為自己選用的底層模型設計 harness。使用 AI 工具的人也會塑造 harness 的一部分。許多工具都讓使用者新增常設指示、連結應用程式,並選擇在工具繼續執行前,哪些動作需要經過他們核准。
AI 代理程式的 harness 工程
每個 AI 工具都有 harness,但在使用 AI 代理程式時,harness 工程就顯得格外重要。AI 代理程式能自行處理多步驟任務,例如研究競爭對手並將調查結果整理成試算表,而每個步驟都由 harness 執行。因此,如果 harness 出錯,例如抓取了去年的價格,後續的所有步驟也會受到影響。
大多數 AI 代理程式 harness 都有六個主要部分:
1. AI 代理程式迴圈
AI 代理程式迴圈是 harness 中的一段程式碼,負責讓任務一步一步持續推進。
AI 模型會決定完成任務所需的下一個步驟,並撰寫一個工具呼叫:這是一則簡短的請求,指明 harness 中的某個工具(例如網路搜尋),以及該工具應執行的動作。
Harness 會偵測到這項請求、執行搜尋,並將結果加入模型可看到的內容中。模型讀取結果後,再決定下一步要做什麼。
2. 上下文管理
模型在訓練過程中學習一般知識,但這些知識僅止於訓練結束的日期。其中不包含任何與當前任務相關的特定資訊,例如公司的檔案、今天的新聞,或是對話中稍早提過的內容。
這些資訊全都得仰賴模型的上下文視窗:也就是 harness 在每次回應前提供給模型的文字,例如指示、查詢、目前為止的對話,以及搜尋結果。
上下文視窗只能容納固定份量的文字。而且即使視窗還沒填滿,模型有時也會遺漏埋藏在長篇輸入中間的資訊。
因此,harness 會負責上下文管理,只挑選每個步驟所需的資訊。舉例來說,如果任務是比較五家競爭對手的定價,harness 可能只會納入各家公司的定價頁面,而不是整個網站。在耗時較長的任務中,harness 也可以將先前步驟的詳細紀錄替換成簡短摘要,讓模型掌握自己已完成的工作,又不會讓這些歷程塞滿上下文視窗。
3. 工具
工具是負責執行模型所要求動作的程式碼。每個工具負責處理一種動作,例如搜尋網路、開啟並閱讀網頁、執行程式碼或編輯檔案。當模型撰寫工具呼叫時,harness 會將其傳遞給正確的工具,並傳回結果。
許多 harness 也包含連接器,這類工具會透過使用者授予的存取權,將 AI 代理程式連結到特定應用程式,例如電子郵件、行事曆或共用雲端硬碟。舉例來說,有了行事曆連接器,AI 代理程式就能在建議會議時間之前,先查看對方是否有空。
4. 記憶
記憶是儲存下來、能從一個工作階段延續到下一個工作階段的資訊。Harness 會在工作階段中儲存簡短的筆記,例如某人的偏好或專案的進度。到了下一個工作階段開始時,harness 會將這些筆記加入上下文視窗,讓模型在閱讀新查詢之前先讀到它們。舉例來說,AI 代理程式就是這樣才能從上次中斷的地方接續撰寫每週報告,而不必從頭開始。
5. 權限
權限是規範 AI 代理程式可以存取哪些內容、執行哪些動作的規則。存取規則決定它可以開啟哪些檔案、應用程式或網站。核准規則則決定哪些動作必須等待使用者同意,例如傳送訊息或進行購買。
開發 AI 代理程式的公司會在 harness 的程式碼中設定部分規則。接著,組織的管理員可以新增自己的規則,個別使用者則可以選擇要連結哪些帳戶等設定。
6. 驗證
驗證是在 AI 代理程式的成果交到使用者手上之前,負責檢查的程式碼。它使用兩種檢查方式:
- 固定規則:也就是每次都以相同方式判定通過或失敗的特定測試,例如確認報告中的每個數字,都出現在 AI 代理程式實際讀過的文件中。
- 由另一個 AI 模型進行審查:該模型會閱讀成果並加以評斷。它能發現難以轉化為規則的問題,例如摘要遺漏了重要論點。
沒有任何單一檢查能發現所有問題,因此 harness 通常會結合這兩種檢查。當檢查發現問題時,harness 會將問題描述加入模型的上下文視窗,並把任務送回 AI 代理程式迴圈。模型會修正問題並再次嘗試,因此許多錯誤在使用者看到結果之前就已經獲得修正。
Harness 工程範例
準備客戶會議
任務:一位客戶經理請 AI 代理程式為明天與客戶的會議準備一份簡報資料,內容涵蓋待解決的問題和議程草稿。
Harness 的作用:
- AI 代理程式透過電子郵件連接器,在這位經理的收件匣中搜尋與該客戶往來的郵件。
- 權限設定讓它可以讀取電子郵件,但無法傳送任何郵件。
- 上下文管理只會將最近三個月與該客戶往來的郵件傳遞給模型,而不是整個收件匣。
- AI 代理程式迴圈會執行數輪搜尋與閱讀,模型則將找到的內容歸納成待解決的問題。
- 接著,驗證機制會確認簡報資料中的每個問題,都能對應到一封真實的電子郵件。
可能的結果:經理會收到一份一頁的簡報資料,其中每個重點都能追溯到原始的電子郵件。
更新每月銷售報告
任務:一位營運主管請 AI 代理程式用本月的數字更新每月銷售報告。
Harness 的作用:
- 記憶功能會載入上個月工作階段的筆記,包括報告的格式,以及這位主管要求將數字四捨五入到千位的指示。
- 檔案工具會開啟團隊共用雲端硬碟上的銷售試算表。
- 權限設定讓 AI 代理程式可以編輯報告草稿,但不能編輯來源試算表,因此原始數字不會被意外更改。
- 驗證機制會檢查報告中的總計是否與試算表一致。
可能的結果:報告會以和上個月相同的格式產出,使用者不必再重新說明一次。
整理共用收件匣
任務:一個支援團隊請 AI 代理程式依主題整理早上收到的請求,並為常見請求草擬回覆。
Harness 的作用:
- AI 代理程式迴圈會逐一處理收件匣中的每封郵件。
- 針對每封郵件,模型會選擇一個主題標籤,再由 harness 透過電子郵件連接器套用該標籤。
- 任務開始時,harness 會將團隊核准的回覆範本加入上下文視窗作為參考,讓模型以範本為基礎撰寫每份草稿。
- 核准規則會將每則回覆保留為草稿,直到團隊中有人審閱並傳送為止。
可能的結果:團隊一天開始時,請求已分類完成,回覆也已準備好等待審閱。
修正網站中的錯誤
任務:一位開發人員請程式設計 AI 代理程式修正一個導致結帳按鈕無法運作的錯誤。
Harness 的作用:
- AI 代理程式會在沙箱中工作。沙箱是程式碼的隔離副本,在其中所做的變更不會影響正式網站。
- 程式碼工具讓模型可以讀取與編輯檔案。
- 每次變更後,驗證機制都會執行專案的自動化測試。
- 任何失敗結果都會作為新資訊傳回給模型。
可能的結果:AI 代理程式會持續調整修正內容,直到測試通過為止。接著,開發人員會在變更上線前進行審查。
Harness 工程、提示工程與上下文工程的比較
提示工程是建構並最佳化單一查詢的工作。上下文工程是管理模型所見一切內容的工作。Harness 工程則是設計並改善模型運作所處整個系統的過程。
術語 | 通常由誰負責 | 以競爭對手研究任務為例 |
提示工程 | 任何撰寫查詢的人 | 要求「每個競爭對手一列,每個定價方案一欄」 |
上下文工程 | 打造 harness 的人員,以及附加檔案或範本的使用者 | 提供模型每個競爭對手的定價頁面,以及團隊的試算表範本 |
Harness 工程 | 開發 AI 產品的公司,以及選擇設定與偏好、上傳資訊的團隊和使用者 | 決定 AI 代理程式可以使用哪些工具、哪些動作需要核准,以及如何檢查其成果 |
使用者如何影響 AI harness
AI 代理程式 harness 大部分來自開發該 AI 代理程式的公司,但許多 AI 產品都允許使用者透過自訂指示、已連結的應用程式和核准等設定,調整其中一部分。
使用者可以透過四種方式塑造 AI 代理程式 harness,並改善 AI 代理程式的成果:
1. 常設指示
常設指示是使用者只需撰寫一次的說明,harness 會在每項任務開始時將其加入上下文視窗。凡是原本需要在一次又一次的查詢中重複說明的內容,都值得設定成常設指示:例如自己的身分與工作內容、偏好的寫作方式,或是週期性工作的規則,像是某位客戶的月報。
許多 AI 產品提供兩個層級的常設指示。帳戶層級的指示適用於所有工作都通用的事項,例如拼寫偏好。專案指示則適用於單一客戶或工作流程,讓針對某項工作的指引不會延續到另一項工作中。
常設指示在聊天助理和 AI 代理程式中的運作方式相同,但 AI 代理程式更依賴它們。在聊天中,使用者可以在每次回答後糾正 AI。AI 代理程式則可能在任何人看到成果之前就已執行許多步驟,因此事先提供的指示,是少數能在過程中引導它的方法之一。
如何撰寫有效的常設指示
- 從簡短的指示開始,例如:「我是一家軟體公司的行銷經理。請用淺顯易懂的英文撰寫,摘要保持在 200 字以內,並使用美式拼法。」
- 當 AI 出錯時,就補充指示。如果團隊需要精確數字,AI 卻一直將數字四捨五入,就新增一行說明這一點。
- 讓指示具體明確:「提供精確數字,切勿四捨五入」比「要準確」更有效。
- 保持清單簡短,並在某些內容不再有用時將其刪除,因為每一行都會占用上下文視窗的空間。
2. 已連結的應用程式
已連結的應用程式可將 AI 產品連結到使用者已在使用的工具,例如電子郵件、行事曆或共用雲端硬碟。連結應用程式後,AI 就能處理使用者自己的資訊,而不僅限於貼到聊天中的內容。
當任務需要用到存放在這些應用程式中的資訊時,就值得設定連結,例如根據電子郵件往來準備會議簡報資料,或彙整共用雲端硬碟上的文件摘要。
如何安全地連結應用程式
- 只連結任務所需的應用程式,因為每多一個連結,就多一個出錯的機會。
- 如果有提供唯讀存取權,請選擇唯讀存取權。舉例來說,準備會議簡報資料的 AI 代理程式需要讀取電子郵件,而不需要傳送郵件。
- 在產品允許的情況下,依專案設定連結。舉例來說,在 Perplexity 中,使用者可以選擇每個專案要使用哪些連接器。
- 記得中斷不再使用的應用程式連結。
3. 核准設定
核准設定決定哪些動作必須等待使用者同意,AI 才能繼續執行。有些核准機制內建於產品中,有些產品則讓使用者自行選擇其他哪些動作需要核准。
如何設定核准規則
- 對於無法復原的動作,例如傳送訊息、進行購買或刪除檔案,應要求先取得核准。
- 需要核准的項目應盡量精簡。如果 AI 代理程式每個小步驟都要求簽核,大家就會開始不看內容直接核准。
4. 標準與檢查
多數 AI 產品都內建了一些標準。例如,Perplexity 會在答案中附上引用來源,讓每項說法都能查證。使用者自訂的標準則能補足產品本身無從得知的部分,例如團隊偏好的報告格式。
如何為 AI 工作設定標準
- 為例行工作提供範本,讓 AI 有固定的架構可以填寫。
- 分享團隊滿意的過往工作成果作為範例,讓 AI 能比照其語氣與詳細程度。
- 要求在每個數據旁附上來源連結。
- 仔細檢視初期成果,並將反覆出現的缺漏轉化為新的常設指示。
Perplexity 打造 AI 代理程式 harness 的方式
Perplexity Computer 運行於不受限於特定模型的 harness 之上,將 20 多種先進模型整合至單一系統。它會將每項任務拆解為子任務,交給子代理程式(各自負責其中一部分的獨立 AI 代理程式),並將每項工作分派給最適合的模型。
請參閱Perplexity 專案指南,了解如何設定指示、檔案和連接器。
常見問題
什麼是 harness 工程師?
Harness 工程師負責設計並維護讓 AI 模型能可靠完成工作的系統。這可能包括新增供 AI 代理程式使用的工具、追查 AI 代理程式為何一再犯同樣的錯誤,或是強化它在完成任務前執行的檢查。這並非標準職稱,不過未來可能會改變。這類工作通常由 AI 公司的軟體工程師,或是打造 AI 代理程式的團隊負責。在製造業中,同一個職稱指的是設計線束的人員,也就是汽車和機器內部成束的纜線。
什麼是 AI 代理程式 harness?
AI 代理程式 harness 通常是指 AI 代理程式中除了模型本身以外的一切,包括執行代理程式迴圈、管理脈絡、執行工具呼叫、儲存記憶、強制執行權限,以及在 AI 代理程式的工作成果交到人手上之前進行檢查的程式碼。
每個 AI 工具都有 harness 嗎?
是的。即使是基本的聊天助理,也要仰賴 harness 來記錄對話內容,因為模型本身不會記得先前的訊息。
開發人員也可以透過 API(讓一個程式能向另一個程式傳送請求的連線),從自己的軟體向模型傳送請求來使用模型。在這種情況下,開發人員自己的程式碼就承擔了 harness 的工作。
更好的模型會讓 harness 變得不再必要嗎?
更好的模型或許不需要那麼多逐步指引,因此 harness 目前承擔的部分工作可能會減少。但模型本身只能將文字轉換成文字,既沒有網際網路連線,也無法存取其他應用程式。存取檔案、執行動作和強制執行核准規則,都是在模型周邊的軟體中進行,因此無論模型變得多強大,這些工作很可能仍會由 harness 負責。