前言¶
生产级 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 的边界。