harness-engineering:爲自主 Agent 設計運行框架

前言

把模型接進工具鏈之後,很多團隊仍停留在「一問一答」:任務結束,上下文清空,下一輪從零開始。一旦要讓 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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜