Community程式設計與開發github.com

wptoux/harness2

用於任務已被完成並接受一次後,使用者希望重複執行或鞏固流程的情境 — 例如週期性交付、週報、多來源研究,或目前依賴單一人員記憶步驟的工作流程。

harness2 是什麼?

此技能為開發者與 AI 代理(如 Claude Code、Cursor)提供了一套系統化方法,將一次性成功任務轉化為可重複、可驗證的自動化流程。該方法基於學術論文「Harness²: Recursive Agent Harnessing for an Open World」,重點在於利用已驗證的執行記錄作為基準,透過「提出(Propose)→ 探測(Probe)→ 組合(Compose)」的反饋循環,逐步優化 AI 代理的提示、工具指引、技能與護欄等可編輯元件。其最終產出並非單次更好的結果,而是三個關鍵工件:可替換的 `harness/` 設定檔、標準作業程序 `SOP.md`,以及迴歸檢查清單 `REGRESSION.md`,藉此確保流程穩定性與可複現性。支援任何允許編輯代理行為元件的平台,但特別強調必須以前次成功執行為基底,並透過證據層級(使用者編輯差異 > 輸出比較 > 重播一致性)做出決策,避免無效或主觀的優化。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add wptoux/harness2

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Harness² — 重複性任務固化

改編自 Harness²: Recursive Agent Harnessing for an Open World, 專門針對已執行一次並被接受,目標為重複執行之情況。

概述

成功一次不等於可重複。已被接受的執行是你唯一可靠的參考點:它包含真實的交付物、真實的軌跡,以及使用者親自編輯過的地方。

優化的目標是下一次執行的流程,而非本次執行的交付物。因此,產出不是一份更好的報告,而是一個 Harness、一份 SOP 以及一份迴歸檢查清單。

何時使用

  • 使用者說「我們之後每週都要這樣做」或「我們把這個流程鎖定下來」
  • 同類任務至少做過一次,且結果已被接受
  • 流程存在於某人的腦海中:誰先執行哪個腳本、哪個步驟需要人工檢查、陷阱在哪裡
  • 同類任務反覆以相同方式失敗:遺漏來源標註、定義不一致、不斷重做

何時不該使用

  • 一次性任務 → 直接執行就好
  • 存在真正的評分器、單元測試或可計算的驗收標準 → 使用它們;這遠比行為對比有效
  • 使用者只想更改格式或定義,且已明確指出 → 直接編輯 Harness,跳過對比循環
  • 流程已經穩定,且成本或延遲有嚴格限制

什麼是 Harness

模型周圍所有可編輯的元件。四個即可運作;八個是完整集合:

元件角色最低要求
系統提示角色、輸出契約✅
工具指引何時使用每個資料來源、如何填寫參數✅
技能可重複使用的判斷與程序✅
護欄硬性限制(絕不憑空編造數字、務必引用來源)✅
記憶跨執行實例攜帶的領域筆記
腳本確定性工作(轉換、去重、彙總)
子代理驗證或並行檢索拆分
外掛中介軟體(每 N 步強制自我檢查)

Harness 必須以檔案形式存在,以便進行差異比對與重複使用。若停留在「我們通常這樣做」的對話中,就無法被固化。

循環:提出 → 探測 → 組合

0. 凍結基準

完整歸檔上一次執行:Harness 快照、完整軌跡(工具呼叫序列 + 中間產物)、最終交付物、使用者編輯差異、驗收標準、資料快照或時間範圍。

使用者親自編輯過的地方是高可信度的缺陷位置 — 比任何猜測都可靠。

1. 提出

閱讀基準,然後提出兩個候選方案,每個方案用一句話標明其針對的缺陷:

  • 不變性:流程缺陷 — 無交叉檢查、中間結果從未持久化、失敗未重試、來源未標註、上下文過載
  • 領域:此類任務的專業限制 — 一致的定義、幣別或單位轉換、對齊的時間範圍

兩者都需要,以區分「一般性問題」與「此任務類別特有的問題」。只有一個候選方案時,你無法歸因結果。

2. 探測

使用相同的輸入重播,控制變因:相同模型、相同工具集、相同資料快照。僅 Harness 改變。

比較兩項:

  1. 相對於基準的行為差異:工具集與順序、步驟數、重複呼叫、錯誤與重試、人工修補點是否消失、中間結果是否持久化、來源是否完整歸屬
  2. 重播一致性:再次執行 — 結構是否相同?固化的核心指標是穩定性,而非單次最佳表現

對比顯示的是「行為改變了」。並不表示「結果是正確的」。切勿將兩者混為一談。

3. 組合

保留那些 (a) 重播後仍符合驗收標準,且 (b) 減少重工或人工修補的變更。保留原始版本亦可 — 沒有證據的變更只是雜訊。

用一行記錄每個決策:變更 | 針對的缺陷 | 觀察到的證據 | 採用 / 修改 / 捨棄。

4. 固化

三個產出物;缺少任何一個即表示未固化:

  • harness/ — 可編輯的檔案
  • SOP.md — 步驟、檢查點、何時必須請示人類、已知陷阱(超過十項就沒人會讀)
  • REGRESSION.md — 下一次執行後需要逐一核對的驗收清單

如果某個變更經過數輪採用,則將其提升為獨立腳本或技能。

證據層級

使用者編輯差異 > 與已接受交付物的比較 > 重播一致性 > 軌跡差異 > 直覺

不是證據:更長或更詳細的報告、「這次使用者沒有抱怨」、模型宣稱自己做得更好。

預算

預設 k=1 加上一次重播。固化會隨時間產生回報,因此應分攤到各輪中:在每次週期性執行中探測一個候選方案,而不是一次花費 3 倍成本執行所有平行分支。

紅旗 — 看到以下情況請停止

  • 未經閱讀使用者編輯差異,直接繼承先前的 Harness
  • 使用不同的輸入、模型或資料快照重播,仍宣稱「結果更好」
  • 僅根據一次重播就下結論,未排除隨機性
  • 一次更改五個元件,導致無法歸因
  • 一份沒人會遵循的 20 項 SOP
  • 將一次性的運氣技巧寫入不變性條目

常見錯誤

錯誤後果修正
在歸檔前進行優化基準遺失,變更無法歸因先凍結基準
以「讀起來更好」作為證據固化的是偏好,而非流程將其綁定到具體觀察
僅變更提示,無檢查點下次仍須人工修補每個缺陷配對一個檢查點
SOP 寫得像遊記沒人會讀,因此未能固化僅寫決策點與陷阱

相關技能