self-improvement-loops:當 Harness 本身成爲優化目標

前言

生產級 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 摘要。

失敗驅動的三階段自編輯

  1. 弱點挖掘:按驗證層原因、行爲因果、可複用機制三維聚類失敗 trace,並對「不可尋址」簇過濾。
  2. 有界提議:輸入限定爲可編輯面、失敗模式、須保留的通過行爲、既往編輯記錄;要求改動最小、候選互異並附審計說明。
  3. 驗證合併:兩劃分門控;兼容編輯合併,拒絕項寫入檔案。

此外還有 元級 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:

  1. 從 Cursor Plugin Directory 的 context-engineering 條目 安裝,或克隆倉庫後將 Cursor 指向插件根目錄。
  2. 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 的邊界。

官方目錄:https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/self-improvement-loops

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

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

小夜