"Next run uses them automatically. The skill rewrites itself." (Garry Tan, Thin Harness, Fat Skills, gbrain 程式庫 docs/ethos,2026-04)
Garry Tan 在 gbrain 的 README 自稱 Y Combinator 的總裁暨執行長(President and CEO of Y Combinator)。這裡的 skill 是教模型怎麼做事的 Markdown 流程。這句話描述的是:活動結束後,Agent 讀完問卷,把新規則寫回這份流程,下一輪直接生效。你的 Agent 每天在跑,失敗紀錄越堆越高,改 prompt、改工具描述、補 skill 都要人手。讓 Agent 自己改,聽起來省事,但改完以後誰說它真的變好了?
這篇的「自我改進(self-improvement)」指模型權重不動,駕馭層(harness;prompt、工具、skill、驗收程式)依執行紀錄被修改。誰來改,各方不同:同一個 Agent、另一個 coding agent,或一個最佳化演算法。先對一下用詞:優化集(optimization set)是改進者看得到、拿來調整的題目;保留集(holdout set)是它看不到、只用來驗收的題目;回歸集(regression set)是過去失敗過的題目,用來檢查舊問題有沒有回來;trace 是 Agent 每一步的執行紀錄;rollout 是實際跑完一次任務取得的樣本。
快速回答 在能算分數、評測可重跑的任務上,Agent 能在權重不動的情況下修改自己的駕馭層,但關卡仍可能漏掉過擬合。NeoSigma 在一次模擬流量的實驗中從 0.560 升到 0.780;Lin 等人發現 9B 改進者的增益與 Opus 4.6 相近,使用新版駕馭層的模型影響更大。第一次先只開放 prompt 與工具描述,由人審後合併。
6 方各自讓 Agent 改什麼?
6 方改的東西從一段 prompt 到整份程式碼都有,共同前提是有一組可重跑的分數,風險則集中在過擬合與改完沒人驗。下表只寫各方文件有寫的內容。
- 2026-04-08:prompt、工具與工具描述
- 標記過的評測,切成優化集與保留集(定義見上)
- 對優化題目過擬合,需人工審查
- 2026-03-31:一個檔案裡的 system prompt 與工具
- 驗證集,加自動累積的回歸集
- 回歸集變成代理驗證集;只報一次實驗
- 2026-03-30:整份 harness 程式碼
- 每個候選的原始碼、分數、trace 存檔案系統
- 搜尋與最終評測用同 89 題
- 2025-07,ICLR 2026:系統內的文字 prompt
- 少量 rollouts 加文字回饋
- 只改 prompt;比較對象是 GRPO 與 MIPROv2
- 2026-04 起:skill 的 markdown 做法與規則
- 每個 skill 有 eval 合約與不退步關卡
- 文中的成效數字沒附原始資料
- 2026-05-28:量測 skills、prompts、memories 的更新
- 固定任務模型,換 7 種改進者
- 未測權重微調
表 1 6 方路線對照。各列依據見後文各節與參考資料,查閱於 2026-10-23。
LangChain 部落格作者 Vivek Trivedy 把這件事叫 harness hill-climbing(駕馭層爬坡),他的前提是一句話:
"Evals encode the behavior we want our agent to exhibit in production." (Vivek Trivedy, Better Harness, LangChain Blog, 2026-04-08)
他的意思是把評測題目當成駕馭工程的訓練資料。接下來四節,每節拿一個爭點,把兩邊並排。
改完以後,誰來判斷真的變好了?
LangChain 與 NeoSigma 用「不許退步」的自動關卡,LangChain 另加改進者看不到的保留集與人工審查;爭點是關卡的分數能不能代表泛化。Meta-Harness 的搜尋集與測試集分開,只有在 TerminalBench-2 上沒有另切保留集,改用人工檢查與字串稽核。
一邊用自動關卡擋住退步。LangChain 再由人做最後審查,NeoSigma 則保留需要時加入人審的選項。 NeoSigma 的 Gauri Gupta、Ritvik Kapila 與 Kartik Gupta 在 2026-03-31 的文章裡,讓 coding agent 改 system prompt 與工具,模型固定為 GPT-5.4(不開推理)。一個修改要保留,必須同時滿足兩條:回歸集通過率至少 80%,驗證分數不低於歷史最佳。18 批、每批 10 題,共 96 次 harness 實驗,驗證分數從 0.560 到 0.780,回歸集從 0 條長到 17 條。LangChain 的 Better Harness 把流程寫成六步:蒐集並標記評測、切優化集與保留集、跑基準、每次只改一處、驗證不退步,最後由人審查。
另一邊指出關卡的分數不等於泛化。 NeoSigma 自己寫到,回歸集最後會開始像代理驗證集(原文:begins to act as a proxy validation set),也就難以分辨是泛化還是記住了舊失敗。NeoSigma 的 gating.py 程式碼裡,gate_split 預設為 test,也就是預設用測試分數決定修改留不留。他們的「生產流量」是從基準的訓練題模擬出來的,文章只報了一次 18 批的實驗,沒有重複實驗的變異數。Trivedy 同樣寫明,這個最佳化迴圈本身不知道什麼是泛化(原文:doesn't know about generalization),所以要補保留集與人工審查;他建議用少量、標記清楚、品質高的評測,避免大量雜訊多的題目。Better Harness 的開源版本只是研究用骨架(原文:A research version is open sourced),樣本也很小(small representative sample)。
Meta-Harness 在這點上最坦白。這是 Stanford 的 Yoonho Lee 等人的論文,寫它的搜尋與最終評測用同一組 89 題 TerminalBench-2,理由是題目少又貴,再切一份會削弱搜尋訊號;作者另外做人工檢查,並用正規表示式查有沒有任務專屬字串漏進被演化出的 harness。這個設定下的結果是:Claude Opus 4.6 搭配演化出的 harness 通過率 76.4%,在 Opus 4.6 的 agent 中排第 2(榜上更高的 ForgeCode 81.8%,作者表示無法只靠公開程式碼重現);Claude Haiku 4.5 搭配同一方法得 37.6%,高於榜上次高的 Goose(35.5%)。
工程上的意思: 驗收用的題目要和改進者分開存放;改進者讀得到的 trace 裡,不該有保留集的答案。回歸集由 Agent 自己累積時,要另外留一份它碰不到的題目,否則通過率無法分辨泛化還是記住舊失敗。
改進的功勞算改的那個模型,還是用的那個模型?
Lin 等人的實驗把功勞指向用駕馭層的那個模型,Meta-Harness 的設計則押注在改進者讀到夠多的原始資料。
Meta-Harness 的改進者是一個 coding agent(論文實際用的是 Claude Code),透過檔案系統自己 grep 與 cat 所有先前候選的原始碼、分數與 trace。論文寫,在最苛刻的設定下,提案者每一輪讀檔的中位數是 82 個;在他們研究的設定中,單次評測最多能產生 1,000 萬 token 的診斷資料,約比先前文字最佳化方法用過的最大回饋量高出三個數量級。作者自己也承認,只驗證了「一個很強的 coding agent 當提案者」,換成其他提案者的效果留待未來研究。
Lin 等人(Minhua Lin 與 Juncheng Wu 為共同第一作者,共 17 位作者,單位包括賓州州立大學、UC Santa Cruz、Amazon)在 2026-05-28 把兩種能力拆開量:harness-updating(寫出有用的更新)與 harness-benefit(從更新中得益)。他們固定任務模型、換 7 種模型當改進者,在 SWE-bench Verified、MCP-Atlas 與 SkillsBench 三個基準上跑。摘要的結論是:
"even Qwen3.5-9B's updates yield gains comparable to those of Claude Opus 4.6." (Minhua Lin 等人, Harness Updating Is Not Harness Benefit, arXiv 2605.30621, 2026-05-28)
論文的數字是,各改進者之間最好與最差的增益差距,在任一基準上最多 3.1 個百分點;Qwen3.5-9B 在 SkillsBench 的增益 3.8 個百分點,是該基準上最高的。反過來,在 MCP-Atlas 上,同一個任務模型換 7 種改進者,成績差距最多 5.1 個百分點(Qwen3-235B),遠小於 Opus 4.6 與 Qwen3-235B 的 36.0 個百分點基礎差距;SkillsBench 上的差距最大到 9.3 個百分點,仍小於 20.9。另一個發現是,用新版駕馭層得益最多的是中階模型,弱模型可能沒有載入該用的內容,或載入後沒照做。論文據此建議,把能力預算放在做任務的模型上。這項研究只涵蓋固定權重、改外部 harness 的設定,沒測權重微調或兩者混合。
兩邊不能直接相減:Lin 等人量的是 skills、prompts、memories 這類文字產物,Meta-Harness 改的是程式碼。
- Claude Code
- harness 程式碼
- Opus 4.6 76.4%;Haiku 4.5 37.6%
- 7 種模型輪流
- skills、prompts、memories
- 改進者之間增益差最多 3.1 個百分點
表 2 改進者強度的兩組實驗。數字出自兩篇論文,不在同一基準上,不能比大小。
本站歸納: 改進者負責提出修改,使用新版駕馭層的模型則影響增益多大;Meta-Harness 沒有比較不同改進者,兩邊結論不能互相替代。
改文字和改程式碼,風險差在哪?
改文字的風險集中在改了沒人驗;改程式碼還可能讓整個流程跑不起來。GEPA 與 Garry Tan 改的是文字,Meta-Harness 與 Darwin Gödel Machine 改的是程式碼;Meta-Harness 的作者認為,程式碼裡的過擬合比模型權重裡的過擬合容易靠檢查發現。
GEPA(Genetic-Pareto,Lakshya Agrawal 等 17 位作者,2025-07-25 初稿,ICLR 2026 口頭報告)處理「含一或多段 LLM prompt 的 AI 系統」:取樣執行軌跡,用自然語言反思來診斷問題、提出並測試 prompt 修改,再從自己歷次嘗試的 Pareto 前緣(在不同任務上各有勝場的候選池)合併互補的教訓。六項任務上,GEPA 平均比 GRPO 高 6%、最高 20%,用的 rollouts 最多少 35 倍;比當時領先的 prompt 最佳化器 MIPROv2 高過 10%(例如 AIME-2025 準確率 +12%)。GRPO 是一種更新權重的強化學習方法,所以這組比較說的是「用文字回饋改 prompt,比改權重省樣本」,沒有說它能改程式碼。
Garry Tan 把 skill 當成「教模型怎麼做的 markdown 流程」,並寫道「markdown 其實就是程式碼」(原文:Markdown is actually code)。他的 skillify 技能(gbrain 程式庫,2026-10-23 查閱的版本)要求每個 skill 先有 eval 合約,再由三個不同公司的模型依合約評分;任何修改的分數必須不低於前一版。它還寫了一句理由:
"Tests lock in behavior. If the behavior is mediocre, tests lock in mediocrity." (garrytan/gbrain, skills/skillify/SKILL.md)
意思是,先評品質再寫測試,否則測試只會把平庸的行為固定下來。同一個程式庫的 skillopt 教學把 SKILL.md 當成可訓練的參數,優化器提出修改,只保留分數明顯提高的版本。至於 Tan 在文章裡舉的「問卷『普通』評價從 12% 降到 4%」,文中沒有附原始調查資料,那篇文章在程式庫裡的標記也還是 draft-v4,我不把它當成已驗證的成效。
Darwin Gödel Machine(Jenny Zhang 等五位作者,arXiv 2505.22954,2025-05-29)讓 coding agent 反覆修改自己的程式碼,並以基準測試驗證每次修改;摘要的數字是 SWE-bench 從 20.0% 到 50.0%,Polyglot 從 14.2% 到 30.7%,實驗都在沙箱與人工監督下進行。
- 文字 prompt
- Pareto 前緣候選池
- 平均比 GRPO 高 6%
- skill 的 markdown
- 新版分數不低於前一版
- 成效數字未附原始資料
- harness 程式碼
- 搜尋集與測試集分開;Terminal-Bench 2.0 例外,靠人工檢查與字串稽核
- Haiku 4.5 37.6%
- 自己的程式碼
- 基準驗證,沙箱與人工監督
- SWE-bench 20.0% 到 50.0%
表 3 改文字與改程式碼的四條路線。數字各自來自原論文,基準不同。
Meta-Harness 的論文討論段寫了一句對照:
"Overfitting in code space is also more inspectable: brittle if-chains or hard-coded class mappings are visible on inspection in a way that weight-space overfitting is not." (Yoonho Lee 等人, Meta-Harness, arXiv 2603.28052)
同一篇論文把「讓 harness 與模型權重一起演化」列為下一步,也就是它自己還沒做這件事。
改好的版本換個模型還管用嗎?
證據分歧:LangChain 建議依模型調整、HarnessBank 認為增益有模型專屬的成分,Meta-Harness 在數學任務上測到跨模型的增益。
LangChain 的 Trivedy 在 2026-02-17 的〈Improving Deep Agents with harness engineering〉裡,固定 gpt-5.2-codex,只改 harness,Terminal Bench 2.0(89 題)從 52.8% 到 66.5%。LangChain 建議依模型調整 harness(原文:models require different prompting),同一段也說許多原則可以通用,例如先備齊模型做任務需要的資訊,並把重點放在驗證(good context preparation、a focus on verification)。Claude Opus 4.6 用較早版本的 harness 跑 Terminal Bench 2.0 得 59.6%,作者把差距歸因於沒有對它跑同一輪改進。他也警告,針對單一任務過擬合的修改對泛化有害,可能讓其他任務退步。
Meta-Harness 另用五個模型驗證數學檢索 harness 的跨模型效果:在 200 題國際數學奧林匹亞(IMO)等級題目上,準確率平均提高 4.7 個百分點。論文也說,搜尋得到的 harness 能用於與原本資料分布不同的分類資料集。HarnessBank(Xiaotian Luo 等,arXiv 2607.13683,2026-07-15 提交)的跨模型實驗,則讓作者認為增益來自「針對特定模型的自我演化過程」,沒有一個放諸四海的最佳 harness。
2026 年 7、8 月的新資料怎麼說?
2026 年 7 到 8 月的三份新資料都支持「能改進」,也都把限制寫得更具體:受限於底層模型的能力,改好的版本有模型專屬的成分。以下三篇我只讀到 arXiv 摘要頁,沒有逐段核對全文。
- 2026-07-15
- 7 個 agent 基準
- 改進 5.1% 到 15.4%;程式碼待公開
- 2026-08-09
- BALROG
- BabyAI +39.3 個百分點;NLE 沒有改進
- 第 3 版 2026-08-20
- 3 基準乘 3 模型
- 九組都進步,相對增幅最高 132%
表 4 2026 年 7、8 月的三份新資料。數字來自 arXiv 摘要頁。
HarnessBank(Xiaotian Luo 等)讓一個任務 Agent 搭配另一個負責診斷與生成修改的 evolver,保存高分 harness 的「基因庫」,並用關卡篩選降低評估成本。Hierarchical Self-Improvement(Tailin Zhou)讓同一個凍結的模型分三層:任務 harness、改 harness 的 evolver、改 evolver 策略的 meta-evolver;BALROG 的進度數字另有 Crafter +33.0、TextWorld +25.0、MiniHack +15.0(皆為進度百分點,相對初始 harness),作者把 NLE 的零改進歸因於底層模型能力不夠,並指出兩個上限:回饋訊號要夠準,以及 harness 重設計超不過底層模型本身。Self-Harness(Hangfan Zhang 等,2026-06-08 初稿)在 Terminal-Bench 2.0、SWE-bench Verified、AppWorld 與三個模型的九種組合上,最終 harness 的已見題與保留題通過率都提高,「最高 132%」指最大值。
落到系統上,要補哪幾個元件?
要讓 Agent 改自己的駕馭層,系統至少要有五個元件:存 trace 的地方、切好的評測集、不退步的關卡、可回滾的版本,以及人審查的位置。這份清單是本站歸納;圖 3 把五個元件並排,標出各方對應的做法。
- 存 trace 的地方: Meta-Harness 用檔案系統,LangChain 用 LangSmith 的 trace 加一個分析 skill,NeoSigma 把每輪的學習紀錄寫進檔案。
- 切好的評測集: Better Harness 的優化集與保留集,是最直接的做法。
- 不退步的關卡: NeoSigma 的兩條規則(回歸集 80%、分數不低於歷史最佳),README 寫明沒有同時通過評測集與完整測試分數兩道關卡的修改,不會 commit。
- 版本與回滾: 各方原文沒有獨立描述這個元件;用 git 管理被改的檔案(NeoSigma 改的是單一檔案)是最小做法。
- 人審查的位置: Better Harness 的第六步,抓的是指標看不出的問題,例如對優化集過度擬合、分數沒變差但多耗 token 的指令;LangChain 2026-02 那篇讓人可選擇審查修改;NeoSigma 的
PROGRAM.md是人決定方向的檔案。NeoSigma 的文章說這個流程保留了「需要時加入人工審查」的選項,沒有說明實驗中何時、如何審。
先開放哪些範圍給 Agent 改?
先只開放 prompt 與工具描述,每個修改由人看過再合併。這兩類改動容易讀懂,出錯時一行就能退回。
這個做法成立的前提是評測能重跑,而且保留集在 Agent 讀不到的地方。如果驗收只用 Agent 自己產生或累積的題目,沒有另留一份它讀不到的保留集,關卡就無法分辨它是能處理新題,還是記住舊失敗。要改程式碼或讓 skill 自動寫回,我會等上面五個元件都有、並先在一個低風險任務上跑幾輪,看保留集的分數有沒有跟著優化集一起上升。
如果改進者和被驗收的對象是同一個模型,誰來證明關卡沒有跟著一起被改得好看?
下一篇談換了模型以後,調好的 harness 為什麼會失靈,看 Cursor、Armin Ronacher 與 Anthropic 各自觀察到什麼。
常見問題
自我改進會改到模型權重嗎?
本篇各方都只改 prompt、工具、skill 或 harness 程式碼,權重不動。Lin 等人明說沒測權重微調;Meta-Harness 把 harness 與權重一起演化列為下一步;GEPA 比較的 GRPO 才改權重。
要多少評測題目才能開始?
我讀到的各方文件都沒有給最低數量。NeoSigma 的一批是 10 題,18 批後回歸集有 17 條;Meta-Harness 的 TerminalBench-2 是 89 題;Trivedy 的建議是用少量、標記清楚、品質高的評測,避開大量雜訊多的題目。能重跑、分得出優化集與保留集,比題數更重要。
改好的駕馭層換模型還能用嗎?
證據分歧,換模型就重測。LangChain 建議依模型調整,但許多原則可通用;HarnessBank 認為部分增益有模型專屬成分;Meta-Harness 的數學檢索 harness 在五個保留模型上平均 +4.7 個百分點。
可以完全不要人審嗎?
LangChain 與 NeoSigma 的流程都留了人的位置,我讀到的文件裡沒有「完全不審」的實測。Better Harness 把人工審查列為第六步,用來抓指標漏掉的問題;NeoSigma 說流程保留了需要時加入人工審查的選項。在沒有保留集的系統上,我不會拿掉這一步。
延伸閱讀
- Agent 駕馭工程懶人包 (1):Deep Agent 有哪些內建能力?三家說法對成六項
- AI 寫的測試全過,為什麼功能還是錯的?驗證閉環完整懶人包(2026)
- LLM Eval 怎麼做才不會被騙?跑越多組,第一名越可能只是運氣(2026 實驗設計懶人包)
參考資料
- Garry Tan, Thin Harness, Fat Skills(gbrain 程式庫 docs/ethos,created 2026-04-09、updated 2026-04-11,status draft-v4;查閱於 2026-10-23) https://github.com/garrytan/gbrain/blob/master/docs/ethos/THIN_HARNESS_FAT_SKILLS.md
- Garry Tan, gbrain
skills/skillify/SKILL.md與 README(查閱於 2026-10-23) https://github.com/garrytan/gbrain - Vivek Trivedy, LangChain, Better Harness: A Recipe for Harness Hill-Climbing with Evals(2026-04-08) https://www.langchain.com/blog/better-harness-a-recipe-for-harness-hill-climbing-with-evals
- Vivek Trivedy, LangChain, Improving Deep Agents with harness engineering(2026-02-17) https://www.langchain.com/blog/improving-deep-agents-with-harness-engineering
- Gauri Gupta, Ritvik Kapila, Kartik Gupta, NeoSigma, Self-Improving Agentic Systems(2026-03-31) https://www.neosigma.ai/blog/self-improving-agentic-systems
- NeoSigma,
auto-harnessREADME(查閱於 2026-10-23) https://github.com/neosigmaai/auto-harness - Yoonho Lee 等人, Meta-Harness: End-to-End Optimization of Model Harnesses, arXiv:2603.28052(2026-03-30) https://arxiv.org/abs/2603.28052
- Lakshya A. Agrawal 等人, GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning, arXiv:2507.19457(2025-07-25;v2 2026-02-14) https://arxiv.org/abs/2507.19457
- Minhua Lin 等人, Harness Updating Is Not Harness Benefit: Disentangling Evolution Capabilities in Self-Evolving LLM Agents, arXiv:2605.30621(2026-05-28) https://arxiv.org/abs/2605.30621
- Xiaotian Luo 等人, HarnessBank, arXiv:2607.13683(2026-07-15) https://arxiv.org/abs/2607.13683
- Tailin Zhou, Hierarchical Self-Improvement: A Framework for Task-Specific Evolvable Agent Harnesses, arXiv:2608.08466(2026-08-09) https://arxiv.org/abs/2608.08466
- Hangfan Zhang 等人, Self-Harness: Harnesses That Improve Themselves, arXiv:2606.09498(2026-06-08;v3 2026-08-20) https://arxiv.org/abs/2606.09498
- Jenny Zhang 等人, Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents, arXiv:2505.22954(2025-05-29) https://arxiv.org/abs/2505.22954
留言0
登入後就能留言。
登入