前言¶
把模型接進工具鏈之後,很多團隊仍停留在「一問一答」:任務結束,上下文清空,下一輪從零開始。一旦要讓 Agent 在後臺跑研究循環、反覆改稿、自動準備 PR,問題會變成另一類:它該改哪些文件、分數誰說了算、失敗怎麼回滾、狀態壓進上下文之後還能不能續跑。單次對話裏靠人盯着尚可;跑幾小時或幾天,缺少明確的控制面,很容易出現自評自嗨、丟日誌、或把不可逆操作悄悄做完。
下面介紹 harness-engineering 這套 Skill:它不教你怎麼寫 prompt,而是教你怎麼設計 Agent 外面的「挽具」(harness)——允許編輯的表面、鎖定的評估、持久化日誌、新穎性門控,以及人類審批邊界。
這是什麼¶
harness-engineering 是 Agent Skills for Context Engineering 倉庫中的一條 Skill,維護者爲該開源集合(muratcankoylan)。官方描述概括爲:在設計自主 Agent 挽具時使用——研究循環、評估腳手架、鎖定與可編輯表面、持久日誌、新穎性門控、剪枝、回滾、PR 準備與人類審批邊界。
在 Agent Skills 開放格式裏,Skill 通常是一個包含 SKILL.md(含 name、description 與操作說明)的目錄;客戶端通過「發現 → 激活 → 執行」漸進加載,僅在任務匹配 description 時讀入全文。本 Skill 的定位是:挽具是「有用的一次會話」與「能長期自主運行且不破壞目標」之間的分水嶺。
核心功能¶
以下能力均來自官方 Skill 正文,按概念分節說明。
挽具邊界(Harness Boundary)¶
Agent 提出動作;挽具定義允許的表面、反饋方式、持久化與晉升規則。官方給出四類表面:
| 表面 | 示例 | 規則 |
|---|---|---|
| Locked(鎖定) | 評估指標、rubric、校驗腳本、合併策略 | 可讀、可提議修改,但不能用改過的規則給自己打分 |
| Editable(可編輯) | Skill 草稿、實驗文件、被測 prompt/config | 循環內可變更 |
| Append-only(僅追加) | 結果日誌、研究線程、被拒想法 | 只能追加,不能改寫歷史 |
| Human-controlled(人控) | 合併、生產部署、憑證、破壞性操作 | 需明確人類批准 |
緊反饋環(Tight Feedback Loops)¶
自主性依賴反饋快、語義清晰、難被「刷分」。資料引用 Karpathy 的 autoresearch 作爲最小模式:一個可編輯文件、一個鎖定評估文件、固定牆鍾預算、單一標量指標、git 回滾、持久結果日誌。要點不是「只能有一個指標」,而是模糊反饋會帶來模糊的自主行爲。面向開放的研究→Skill 工作,可用鎖定的 rubric、確定性結構檢查、來源可追溯與人類複審閾值替代單一標量。
持久狀態(Durable State)¶
長跑 Agent 必須把狀態外置到文件,以便壓縮上下文後仍能恢復。資料提到 Prime Intellect 的自主 nanoGPT 工作中,THREAD.md 式草稿與日誌對恢復、監控、審計的價值。僅追加日誌應記錄:嘗試過什麼、成敗原因、候選保留/丟棄/送審理由、查閱的上游來源、下一 Agent 該做什麼。
搜索紀律(Search Discipline)¶
官方列舉六條顯式規則:按日程刷新上游來源;大額預算前做新穎性檢查;保留被拒嘗試避免重複發現;多組件堆疊時做 leave-one-out 剪枝;質量相同時獎勵簡化;晉升前單獨驗證。
機制註冊表(Mechanism Registry)¶
研究→Skill 系統應把「已接受機制」與散文說明分開追蹤。機制記錄建議包含穩定 mechanism_id、owning_skill、status、激活場景、行爲變化、證據與失敗模式。新穎性門控應先對照該註冊表,再考慮更廣語料重疊——關鍵詞重疊易漏掉「換說法的重複」,機制對比更能抓住真實重複。
治理(Governance)¶
自主 Agent 可起草變更、跑檢查、寫 PR 摘要,但不得在未經人類明確授權的情況下合併、部署或 push(除非用戶對該動作單獨授權)。
兩種典型循環¶
Autoresearch 式(對穩定評估器優化工件):
read locked context -> choose hypothesis -> edit allowed surface -> commit/checkpoint
-> run evaluator -> log result -> keep if better -> discard or rollback if worse
-> repeat
要求:評估器在可編輯面之外;反饋節奏可比較;失敗留審計軌跡;回滾成本低;對崩潰與超時有策略。
Research-To-Skill 式(來源變爲 Skill 變更):
discover -> retrieve -> gate -> score -> extract mechanism
-> map to existing or new skill -> draft proposal -> validate structure
-> prepare PR -> human review
鎖定評估 = 來源 rubric + Skill 變更 rubric + 結構檢查 + 審閱者批准;可編輯工件 = 提議的 Skill delta。
抗指標博弈(Metric Gaming Resistance)¶
優化型 Agent 會學習挽具。需防範:改評估代碼/rubric 後自批;堆冗長內容討好裁判卻傷害激活;引用未檢索來源;刷總分卻漏關鍵維度;日誌裏隱瞞失敗。緩解:每輪鎖定 rubric、分維度報分、要求檢索證據、保留被拒嘗試、治理變更走人工審閱。
監控 Agent¶
長跑可用只讀監控 Agent,輸出:當前最佳候選、活躍任務/草稿、上次上游刷新、失敗或陳舊循環、日誌與聲稱狀態不一致、下一步與阻塞項——除非顯式授權,監控側不應寫可編輯面。
設計清單與目錄佈局¶
官方八步清單:一句話目標;四類表面;反饋機制(標量/rubric/確定性測試/人審或組合);保留/丟棄/崩潰/超時/送審狀態;循環前建持久線程日誌;長跑加來源刷新、機制註冊表新穎性與剪枝;無請示可做 vs 需批准;用一好一壞工件驗證挽具。
推薦目錄:
research-run/
THREAD.md
sources/
queue.md
evaluations/
proposals/
logs/
results.tsv
rejected.md
drafts/
機器可讀日誌用 TSV 或 JSONL;Markdown 用於交接與審閱摘要。
何時啓用、何時不用¶
適合激活(官方 When to Activate):
- 構建自主研究或實驗循環
- 設計帶鎖定指標與可編輯代碼/內容的 Agent 環境
- 做產出 PR 或後臺 Agent
- 評估 Agent 能否在少人工打斷下安全運行
- 爲工作流增加新穎性、消融、剪枝、回滾或持久日誌
- 防止 Agent 刷 benchmark、削弱 rubric、或在壓縮後丟狀態
不要用它替代(相鄰 Skill 負責):
- 無自主控制面的質量門、迴歸套件或結果指標 →
evaluation - 挽具工具的模式、響應格式與恢復錯誤 →
tool-design - 項目級任務-模型匹配、流水線形態與成本 →
project-development - 遠程沙箱、暖池與託管會話基礎設施 →
hosted-agents
安裝與啓用¶
本 Skill 隨 官方倉庫 提供,路徑爲 skills/harness-engineering/(內含符合 Agent Skills 規範的 SKILL.md)。
Agent Skills 的通用機制(agentskills.io):客戶端啓動時僅加載各 Skill 的 name 與 description;任務匹配 description 時再讀入完整說明並執行。具體如何把該目錄掛到 Cursor、Codex CLI 或 Claude Code,以各客戶端文檔爲準;已抓取資料中未給出統一安裝命令,此處不臆造配置項或版本號。
在支持 Skills 的客戶端中,確保 harness-engineering 的 description 可被發現;當任務涉及「自主挽具、研究循環、鎖定評估面、回滾與審批邊界」時,應觸發激活並遵循 SKILL.md 中的清單與循環模式。
典型用法(官方示例)¶
示例 1:鎖定指標
Agent 優化 train.py,但 prepare.py 負責數據加載與評估。Agent 可改模型,不能改指標;失敗實驗記入日誌並回滾。
示例 2:鎖定 rubric
Agent 評估新的工程類文章,但來源策展 rubric 在本輪鎖定。來源通過後起草 Skill 提案;不能降低 rubric 閾值把不合格來源硬塞進來。
示例 3:自動 PR、不自動合併
Agent 在檢查通過後準備分支與 PR 正文;合併仍屬 Human-controlled 表面,需人批准(資料在此截斷,語義與 Governance 一節一致)。
設計新挽具時,可先按清單畫出四類表面,再選 Autoresearch 或 Research-To-Skill 循環,並落地 THREAD.md 與 logs/results.tsv 再開 loop。
適用場景與注意¶
適合需要多天級自主運行、又不想把評估權交給 Agent 的團隊:實驗自動化、Skill/文檔從研究到 PR 的流水線、後臺改代碼並準備 PR 的 coding agent。限制在於:挽具設計本身有工程量;與 evaluation、tool-design 等 Skill 邊界要分清,避免在一個 Skill 裏混做通用評測或工具契約。
注意 anti-gaming:任何「可編輯的評分邏輯」都會成爲攻擊面;長跑必須 append-only 日誌與機制註冊表,否則 compaction 後難以審計。人類審批邊界要在挽具裏寫死,而不是依賴模型自律。
結尾¶
harness-engineering 把自主 Agent 從對話產品裏常用的「單次會話」推進到「有控制面的長期循環」:鎖什麼、改什麼、記什麼、何時回滾、誰點頭,都應在挽具裏先設計好。完整說明與示例見官方目錄:
https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/harness-engineering