Harness² — 重複性任務固化
改編自 Harness²: Recursive Agent Harnessing for an Open World, 專門針對已執行一次並被接受,目標為重複執行之情況。
概述
成功一次不等於可重複。已被接受的執行是你唯一可靠的參考點:它包含真實的交付物、真實的軌跡,以及使用者親自編輯過的地方。
優化的目標是下一次執行的流程,而非本次執行的交付物。因此,產出不是一份更好的報告,而是一個 Harness、一份 SOP 以及一份迴歸檢查清單。
何時使用
- 使用者說「我們之後每週都要這樣做」或「我們把這個流程鎖定下來」
- 同類任務至少做過一次,且結果已被接受
- 流程存在於某人的腦海中:誰先執行哪個腳本、哪個步驟需要人工檢查、陷阱在哪裡
- 同類任務反覆以相同方式失敗:遺漏來源標註、定義不一致、不斷重做
何時不該使用
- 一次性任務 → 直接執行就好
- 存在真正的評分器、單元測試或可計算的驗收標準 → 使用它們;這遠比行為對比有效
- 使用者只想更改格式或定義,且已明確指出 → 直接編輯 Harness,跳過對比循環
- 流程已經穩定,且成本或延遲有嚴格限制
什麼是 Harness
模型周圍所有可編輯的元件。四個即可運作;八個是完整集合:
| 元件 | 角色 | 最低要求 |
|---|---|---|
| 系統提示 | 角色、輸出契約 | ✅ |
| 工具指引 | 何時使用每個資料來源、如何填寫參數 | ✅ |
| 技能 | 可重複使用的判斷與程序 | ✅ |
| 護欄 | 硬性限制(絕不憑空編造數字、務必引用來源) | ✅ |
| 記憶 | 跨執行實例攜帶的領域筆記 | |
| 腳本 | 確定性工作(轉換、去重、彙總) | |
| 子代理 | 驗證或並行檢索拆分 | |
| 外掛 | 中介軟體(每 N 步強制自我檢查) |
Harness 必須以檔案形式存在,以便進行差異比對與重複使用。若停留在「我們通常這樣做」的對話中,就無法被固化。
循環:提出 → 探測 → 組合
0. 凍結基準
完整歸檔上一次執行:Harness 快照、完整軌跡(工具呼叫序列 + 中間產物)、最終交付物、使用者編輯差異、驗收標準、資料快照或時間範圍。
使用者親自編輯過的地方是高可信度的缺陷位置 — 比任何猜測都可靠。
1. 提出
閱讀基準,然後提出兩個候選方案,每個方案用一句話標明其針對的缺陷:
- 不變性:流程缺陷 — 無交叉檢查、中間結果從未持久化、失敗未重試、來源未標註、上下文過載
- 領域:此類任務的專業限制 — 一致的定義、幣別或單位轉換、對齊的時間範圍
兩者都需要,以區分「一般性問題」與「此任務類別特有的問題」。只有一個候選方案時,你無法歸因結果。
2. 探測
使用相同的輸入重播,控制變因:相同模型、相同工具集、相同資料快照。僅 Harness 改變。
比較兩項:
- 相對於基準的行為差異:工具集與順序、步驟數、重複呼叫、錯誤與重試、人工修補點是否消失、中間結果是否持久化、來源是否完整歸屬
- 重播一致性:再次執行 — 結構是否相同?固化的核心指標是穩定性,而非單次最佳表現
對比顯示的是「行為改變了」。並不表示「結果是正確的」。切勿將兩者混為一談。
3. 組合
保留那些 (a) 重播後仍符合驗收標準,且 (b) 減少重工或人工修補的變更。保留原始版本亦可 — 沒有證據的變更只是雜訊。
用一行記錄每個決策:變更 | 針對的缺陷 | 觀察到的證據 | 採用 / 修改 / 捨棄。
4. 固化
三個產出物;缺少任何一個即表示未固化:
harness/— 可編輯的檔案SOP.md— 步驟、檢查點、何時必須請示人類、已知陷阱(超過十項就沒人會讀)REGRESSION.md— 下一次執行後需要逐一核對的驗收清單
如果某個變更經過數輪採用,則將其提升為獨立腳本或技能。
證據層級
使用者編輯差異 > 與已接受交付物的比較 > 重播一致性 > 軌跡差異 > 直覺
不是證據:更長或更詳細的報告、「這次使用者沒有抱怨」、模型宣稱自己做得更好。
預算
預設 k=1 加上一次重播。固化會隨時間產生回報,因此應分攤到各輪中:在每次週期性執行中探測一個候選方案,而不是一次花費 3 倍成本執行所有平行分支。
紅旗 — 看到以下情況請停止
- 未經閱讀使用者編輯差異,直接繼承先前的 Harness
- 使用不同的輸入、模型或資料快照重播,仍宣稱「結果更好」
- 僅根據一次重播就下結論,未排除隨機性
- 一次更改五個元件,導致無法歸因
- 一份沒人會遵循的 20 項 SOP
- 將一次性的運氣技巧寫入不變性條目
常見錯誤
| 錯誤 | 後果 | 修正 |
|---|---|---|
| 在歸檔前進行優化 | 基準遺失,變更無法歸因 | 先凍結基準 |
| 以「讀起來更好」作為證據 | 固化的是偏好,而非流程 | 將其綁定到具體觀察 |
| 僅變更提示,無檢查點 | 下次仍須人工修補 | 每個缺陷配對一個檢查點 |
| SOP 寫得像遊記 | 沒人會讀,因此未能固化 | 僅寫決策點與陷阱 |