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 負責。