Self-Improving Harness
Self-Improving Harness 指的是讓 agent 根據自己的 production trace、eval 結果與回歸測試,提出可驗證、可回滾的 harness 變更。重點不是讓 agent 任意修改自己,而是在 harness-engineering-for-ai-coding、agent-trace-observability 與 coding-agent-as-optimizer 之間加上一個受控爬坡迴圈。
核心主張
AIHAO 駕馭工程第 7 篇把 harness 的改進分成三條路:
- Production trace → Judge:從線上失敗找出新 failure mode,沉澱成 dataset、judge 或規則,再插回 tool feedback、單輪驗收或外層 loop。
- Agent as optimizer:把 harness 視為可編輯程式,讓 coding agent 反覆「改動 → 跑 eval → 比較 baseline → 保留或 revert」。
- Self-improving skills:把每輪學到的教訓寫回 skill / context layer,讓經驗成為可重用能力。
共同前提是 eval 必須夠穩。沒有固定評測集、holdout set、regression set、版本化 prompt / tool / schema、promotion gate 與 rollback,所謂自我改進很容易退化成 agent 自動把 harness 改壞。
最小可用條件
- 固定 eval set:用來比較改動前後是否真的變好。
- Holdout / regression set:防止只對已知題目過擬合。
- Production failure trace:提供離線 eval 想不到的新失敗。
- 版本化 harness:prompt、tool contract、schema 與 skill 都要能 diff / revert。
- Promotion gate:主任務沒變好或舊案例退步就不收。
- 人工 review:高風險改動仍需要人看過。
這和 ponytail-loop-review-gate 的方向一致:先讓每個改動都能被驗證與回滾,不要先搭複雜的自動改寫系統。對 aiark-loop-engineering 來說,現階段最小做法是保留 data/watch-queue.jsonl、log.md、raw hash 與 wikilink verify 結果,等重複失敗累積後再把它們轉成固定 judge。
風險
最大風險是 Goodhart:一旦 agent 可以依 eval 改 harness,它就可能優化評測數字,而不是改善真實任務。避免方式不是加更多抽象,而是保留 holdout、regression gate、人工審查與 rollback。