前言¶
生產級 Agent 往往先靠 harness-engineering 把單輪自治循環管住:鎖定指標、可編輯面、日誌、回滾與人審邊界。但當失敗反覆出現,團隊會自然想到「讓 Agent 根據失敗模式改自己的 prompt、工作流甚至 harness 代碼」。問題在於:循環會優化你交給它的任何信號,包括信號自身的漏洞;一旦評估器、預算或沙箱邊界落在可被改寫的面上,reward hacking 與靜默停滯就會跟着出現。
下面介紹開源 Skill self-improvement-loops:它來自 Agent Skills for Context Engineering 集合,在 CHANGELOG 中作爲 2.4.0(2026-07-08)新增的第十六項 Skill 發佈。正文把設計問題從「如何控制一個循環」推進到「如何讓循環在有限範圍內改寫自身,又不破壞引導它的信號」。
這是什麼¶
self-improvement-loops 是一份面向 Agent 平臺的 SKILL.md 指導文檔(Skill 元數據版本 1.0.0),維護者爲 Agent Skills for Context Engineering Contributors。
一句話定位:當 harness、腳手架、工作流或優化器本身 成爲優化對象時啓用——覆蓋遞歸自我改進(RSI)、元 harness 搜索、基於失敗挖掘的有界自編輯、面向 scaffold 的演化/種羣搜索、自修改系統的接受門控,以及「產生 context 的機制」被版本化並演化的情況。
與相鄰 Skill 的分工在 frontmatter 與正文中寫得很明確:不修改自身的單循環治理歸 harness-engineering;評測與質量門歸 evaluation;LLM-as-judge 歸 advanced-evaluation;遠程沙箱歸 hosted-agents;是否立項與成本估算歸 project-development;可自編輯的 context 行爲歸 self-managed-context。
核心功能¶
優化階梯(Optimization Ladder)¶
Skill 用一張階梯表歸納已發表系統常優化的對象深度,並建議:能在更低一級表達修復時,不要貿然上跳。
| 級 | 優化對象 | 文中示例系統 |
|---|---|---|
| 1 | 指令 prompt | Promptbreeder, GEPA |
| 2 | 結構化 context | ACE |
| 3 | context 機制 | MCE |
| 4 | 工作流圖 | ADAS, AFlow |
| 5 | harness 代碼 | Self-Harness, Meta-Harness, Darwin Godel Machine |
| 6 | 優化器代碼 | STOP |
循環外不變量(Outside-the-Loop Invariant)¶
評估器、埋點、權限與預算執行必須位於循環不能修改的區域。操作要點包括:
- 預算、權限、沙箱邊界由運行時強制,不要只寫在可被演化的 prompt 裏。
- 向提議方暴露分數與 trace,不要暴露評分實現源碼。
- OS/容器級沙箱;檢測到的 exploit 記爲失敗候選,而非高分。
實證接受門控(兩劃分)¶
自修改的接受應基於測量,而非提議方的理由說明:使用 held-in(針對弱點是否修好)與 held-out(提議方不可見、檢查是否退化)兩個劃分;嚴格門控要求兩邊都不退化,且至少一邊嚴格變好,並在隨機評分下重複評測。文中還給出了可落地的 Python 示例函數 accept(...)。
文件系統經驗檔案(Filesystem Experience Archive)¶
每個候選以目錄形式保存源碼、分數與原始執行 trace;提議方用 grep 類工具檢索檔案,而不是把歷史摘要塞進 context。資料強調:對原始 trace 的 ablation 優於僅分數或 LLM 摘要。
失敗驅動的三階段自編輯¶
- 弱點挖掘:按驗證層原因、行爲因果、可複用機制三維聚類失敗 trace,並對「不可尋址」簇過濾。
- 有界提議:輸入限定爲可編輯面、失敗模式、須保留的通過行爲、既往編輯記錄;要求改動最小、候選互異並附審計說明。
- 驗證合併:兩劃分門控;兼容編輯合併,拒絕項寫入檔案。
此外還有 元級 harness 代碼搜索、context 演化(條目化 delta、確定性合併、防 context collapse)、多樣性保持(檔案、子代折扣父代選擇、嵌入去重)、Loop-Readiness Checklist 與 Gotchas(prompt 約束被演化掉、可見 scorer 被博弈、單調重寫坍塌等)。
更細的數值與 incident 見同目錄 references/loop-design-evidence.md;文內 claim-* 與 researcher/claims/index.jsonl 對應。
安裝與啓用¶
本 Skill 遵循 Agent Skills 目錄佈局(子目錄內含 SKILL.md,可含 references/),不要壓成單文件以免破壞相對路徑。
整包安裝(推薦)¶
倉庫作爲 Open Plugins 插件分發,清單在 .plugin/plugin.json,Skill 在倉庫根 skills/。
Cursor:
- 從 Cursor Plugin Directory 的 context-engineering 條目 安裝,或克隆倉庫後將 Cursor 指向插件根目錄。
- Cursor 讀取
.plugin/plugin.json並發現skills/。
Claude Code:
在 Claude Code 中添加市場並安裝插件(倉庫 README 示例):
/plugin marketplace add muratcankoylan/Agent-Skills-for-Context-Engineering
/plugin install context-engineering@context-engineering-marketplace
Codex 等 Open Plugins 主機: 安裝對應插件後,由主機讀取同一 manifest 發現 skills/。
僅安裝 self-improvement-loops¶
克隆或下載倉庫後,將 整個 skills/self-improvement-loops 目錄複製到項目級 Skill 路徑(README 示例以 context-fundamentals 演示,替換目錄名即可):
# Cursor 項目
mkdir -p .cursor/skills
cp -R skills/self-improvement-loops .cursor/skills/
# Claude Code 項目
mkdir -p .claude/skills
cp -R skills/self-improvement-loops .claude/skills/
# Codex 項目
mkdir -p .codex/skills
cp -R skills/self-improvement-loops .codex/skills/
# 通用 Agent Skills 路徑(部分 Codex/OpenAI、Copilot CLI 等主機)
mkdir -p .agents/skills
cp -R skills/self-improvement-loops .agents/skills/
啓用方式因主機而異:整包插件通常由路由器按任務描述自動激活;單 Skill 複製後,在支持 Agent Skills 的客戶端中,當任務涉及 harness 自修改、元搜索或接受門控設計時,應匹配 frontmatter 中的 description 觸發加載。具體 UI 以各客戶端文檔爲準。
典型用法¶
Skill 不提供獨立 CLI,價值體現在設計自檢與檔案佈局。下面三段均來自官方 SKILL.md 示例。
兩劃分接受門控(節選邏輯):
def accept(candidate, baseline, held_in, held_out, repeats=3):
d_in = mean_score(candidate, held_in, repeats) - mean_score(baseline, held_in, repeats)
d_out = mean_score(candidate, held_out, repeats) - mean_score(baseline, held_out, repeats)
if d_in < 0 or d_out < 0:
return False
return max(d_in, d_out) > 0
held-out 對提議方不可見;犧牲 held-out 換 held-in 的候選應拒絕。
經驗檔案目錄結構:
search-run/
candidates/
c0041/
harness.py
scores.json
traces/
lineage.txt
frontier.json
rejected.jsonl
提議方按需 grep 該樹,默認不把檔案預摘要進 prompt。
把失敗路由到正確階梯(節選):
Observed: agent repeatedly uses a deprecated API despite instructions.
Wrong fix: propose a harness-code edit adding retry logic.
Right fix: rung 2. Inject current API docs into task context at
execution time.
實施自改進循環前,可先對照 Loop-Readiness Checklist 八條(快且可自動化的評測、held-out、運行時約束、聲明可編輯面、譜系檔案、分階段評測花費、基座能力閾值驗證、人審掛點)。
適用場景與注意¶
適合:
- 設計 Agent 根據失敗模式提議修改 harness、prompt、context playbook 或工作流。
- 做 harness/scaffold 上的元搜索(元 Agent、工作流圖樹搜索、LLM 變異算子的程序搜索)。
- 爲自修改系統定接受標準,或診斷退化(reward hacking、多樣性坍塌、context collapse、假穩定)。
- 決定反覆失敗應在 prompt、context、工作流、harness 還是優化器哪一級修復。
注意:
- 遞歸結構會放大基座模型質量:弱模型上可能跨迭代均值下降;啓用遞歸前做固定迭代的能力驗證,並跟蹤 編輯 diff,避免「空改動」僞裝收斂。
- 評測變更、擴大可編輯面、晉升生產 harness 等應保留爲人決策點。
- 與
harness-engineering搭配:前者定義控制面,本 Skill 定義控制面成爲優化目標後的紀律。
結尾¶
self-improvement-loops 把「Agent 能否改寫自身工作流」從口號收成可操作的約束:優化階梯、循環外評測、兩劃分門控、原始 trace 檔案與多樣性機制,並明確與其它 Context Engineering Skill 的邊界。