Self-Improvement Loops: When the Harness Itself Becomes the Optimization Target

前言

生产级 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

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

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

Xiaoye