Skip to content

RSI:Harness 自我改进——从上下文工程到演化搜索,agent 怎么优化自己的运行环境

一句话Harness 这层"包在模型外面的机器"本身正在变成一个可被优化的对象——先是上下文和工作流被系统性搜索,然后是 harness 代码本身被 agent 改写,再往后是权重和 harness 联合演化;但七个尚未解决的瓶颈(评估模糊、reward hacking、多样性坍缩……)说明这条路离真正的"自我改进闭环"还有明显距离。
关键年份:STOP(Zelikman et al. 2023,arXiv:2310.02304)· Promptbreeder(Fernando et al. 2023,arXiv:2309.16797)· ADAS(Hu et al. 2024,arXiv:2408.08435)· AFlow(Zhang et al. 2024,arXiv:2410.10762)· Darwin Gödel Machine(2025-05,arXiv:2505.22954)· GEPA(Agrawal et al. 2025-07,arXiv:2507.19457)· AlphaEvolve(Novikov et al. 2025-06,arXiv:2506.13131)· Agentic Context Engineering / ACE(Zhang et al. 2025-10,arXiv:2510.04618)。
前置阅读:Harness 总览Harness Engineering(机器工程)Auto-Agents 总览

本页主要综合 Lilian Weng 2026-07 的综述文章 Harness Engineering for Self-Improvement递归自我改进(recursive self-improvement, RSI)这个词最早由 I.J. Good(1965)提出,用来定义"超智能机器"——一台在所有智力活动上超越人类、且能设计出更好机器的系统;Yudkowsky(2008)把它具体化为一个反馈循环:AI 利用当前的智能去改进产生智能的认知机制本身。落到今天的 LLM 上,这个反馈循环有两条并行的实现路径:模型直接改写自己的权重(训练管道、self-distillation、rubric 自举,见 Rubric 化评测与训练DR-Rubric),以及模型改进自己训练/部署时依赖的系统(数据合成、rubric、harness)。本页聚焦后一条路径——Harness Engineering 一页已经讲过 harness 是"包在模型外面、和权重同量级的杠杆"这个大方向;这一页讲的是这层杠杆本身怎么被自动优化,从人工调 prompt,到系统性搜索工作流,到 agent 自己改写自己的 harness 代码,再到权重与 harness 联合演化。

Harness 与核心智能同等重要

判断"模型好不好"不能只看权重,还要看它跑在什么样的 harness 里——同一个模型换一套接口,能力可以差出一个数量级(证据见 Harness 总览Harness Engineering 两页里 SWE-agent 的 ACI 实验:同一个 GPT-4 Turbo,定制接口下的 SWE-bench 分数比朴素 shell 高约 64%)。这引出一个自然的追问:既然接口这么重要,接口本身能不能也被自动搜索、自动优化,而不是完全靠人工调?这正是这一页要讲的内容——一条从"人工调 harness"到"harness 自己改进自己"的完整阶梯。

作者对近期 RSI 实际路径给出一个务实的预测,分三步:① harness 逐步演进为一种"元方法学"(改进获取答案的机制,而不是直接改进答案本身);② 成熟的 harness 能支撑起自动化研究闭环(自己提想法、自己实验、自己评估、自己改进),此时更聪明的模型反过来能防止 harness 被过度工程化;③ 许多 harness 层面的改进最终会被"内化"进核心模型的行为里——但与外部工具、外部上下文对接的接口层应该被保留下来。这个预测有一个清晰的类比:提示工程本身的演变——手工调 prompt 的技巧随着指令微调和模型推理能力提升而逐渐变得不那么重要,但"讲清楚目标、约束、上下文、怎么算做完"这件事本身的需求并没有消失,只是承载它的形式从"一句话"变成了"一整套系统"。

Harness 优化的五级阶梯

优化的对象在逐级上移:指令提示 → 结构化上下文 → 工作流 → harness 代码 → 优化器代码本身。每往上一级,可搜索的设计空间都比上一级大一个数量级,但也更难评估、更容易出问题。

结构化上下文优化。 长时程任务里,上下文会迅速失控——这是 Context Engineering 一页已经讨论过的问题;这里的新意是把"怎么管理上下文"这件事本身变成一个可学习、可演化的对象。**Agentic Context Engineering(ACE,arXiv:2510.04618)**把上下文重新定义成一本不断演进的"游戏手册"而不是越写越长的提示词,用三个角色协作维护:Generator 生成带着现有要点的任务轨迹,Reflector 从成功/失败的轨迹里提炼洞见,Curator 把这些洞见转成结构化的增量条目更新到手册里——关键设计是 Curator 不重写整段提示,只输出(标识符, 描述)这样的结构化条目,用确定性逻辑合并,避免了"每次都重新生成整份 prompt"带来的不稳定。Meta Context Engineering(MCE)在此基础上把"管理上下文的机制"和"上下文里装的内容"彻底分离:一个技能被定义为一个上下文函数 cs=(ρs,Fs)ρs 是静态组件(提示词、知识库、代码库),Fs 是动态算子(搜索、筛选、格式化);再做双层优化——内层在给定技能 s 下找训练数据上最优的上下文 cs,外层在验证集上搜索最优的技能 s 本身,一个技能数据库持续追踪历史技能、上下文函数与各自的评估分数。

工作流搜索。 Lilian Weng 的核心论点是"工作流设计空间很大,应该靠算法搜索而不是纯靠手工"。全自动科研 agent 是这条路线最成熟的落地场景——本站 Auto-Agents 一节已经收了具体系统:AI Scientist-v2 用渐进式树搜索把"提想法→做实验→写论文"整条流水线自动化,Agent LaboratoryAIDEAI co-scientist 各有取舍,可以直接跳过去看细节。Lilian Weng 的综述里还提到两个更进一步的科研 agent 案例:ScientistOne把"可验证性"当成系统的中心约束,用一条"证据链"机制审计论文里的每一条声明(引用、数值、方法、结论)必须能追溯到实际证据来源;Autodata专门为数据科学家场景设计,用挑战者/弱求解器/强求解器/验证者四个角色分工,合成"强求解器能做对、弱求解器做不对"这种难度刚好卡在能力边界上的训练数据——不过这类工作严格来说更接近间接蒸馏(拿合成数据去微调一个更弱的模型),而不是纯粹的 RSI。

工作流搜索本身也可以脱离科研场景,直接把 agent 结构当成一个通用的优化问题。**ADAS(arXiv:2408.08435)**把 agent 设计定式成"元 agent 搜索":先用简单的 agent(如 CoT、self-refine)初始化一个档案库,元 agent 参考档案库里已有的设计、用完整代码编写新 agent,做一轮自我精炼检查新颖性后评估,成功的设计再加回档案库,如此循环收敛。**AFlow(arXiv:2410.10762)**把工作流本身表示成一张图——节点是 LLM 调用动作,边是代码里的逻辑操作,用蒙特卡洛树搜索(MCTS)在这张图的空间里做选择、展开、执行、评估,只有真正带来提升且在预算内的改动才会被合并进树;论文报告这套自动搜索出的工作流在问答、代码、数学任务上优于人工设计的工作流,也优于 ADAS。

自我改写 harness 代码

再往上一级,优化对象不再是上下文或工作流的配置,而是定义整个 agent 系统的源代码本身。这一步之所以关键,是因为代码是描述程序和系统的通用语言——如果 LLM 能直接优化执行 agent 自己的代码,能访问到的设计空间会比手写提示词大得多。

STOP(Self-Taught Optimizer,arXiv:2310.02304)是这条路径最早的实证工作,思路是递归式的脚手架改进:定义一个"元效用"——给定一个改进器 I,在一批下游任务上的平均表现;然后让改进器在自己产出的历史版本基础上不断优化出下一版改进器 It+1。这个循环自发发现了不少经典优化策略:遗传算法式的变异、把大问题分解后逐步改进、多臂老虎机式的 prompt 探索、模拟退火、束搜索/树搜索。但它同时报告了一个非常重要的负结果:这套递归结构在 GPT-4 上确实能持续提升平均性能,换成 GPT-3.5 或 Mixtral 却会出现性能退化——说明递归结构本身不是自我改进生效的充分条件,基座模型必须先具备足够的能力,"自我改进"这件事本身对模型的能力有一个门槛要求,不是随便一个模型套上这套循环就能变强。

Self-Harness 走了更贴近生产场景的路线:用"提议→评估→接受"三阶段循环让 LLM 直接改进自己的 harness。第一阶段弱点挖掘——收集大量执行轨迹,把失败聚类成有验证器依据的失败模式(论文特别提醒,表面看起来相同的错误,比如都是超时,背后的因果机制可能完全不同,因此失败记录需要包含终端验证结果、相关 agent 行为的因果状态、以及轨迹本身暴露出的抽象机制,而不能只记"失败了"这一个标签);第二阶段harness 提议——基于挖掘出的失败模式提出有边界的、局部的 harness 编辑,提议者能看到当前 harness 里哪些部分可编辑、验证器认定的失败模式、应该被保留的已通过行为记录、以及历史尝试的摘要,倾向于优先修复那些可重复出现、且能靠一处狭窄改动解决的问题;第三阶段提议验证——在保留的内部和外部数据集上分别评估候选改动,内部集测试目标弱点是否真的被解决,外部集检查这个改动有没有引入新的回归,只有完全无回归的候选才会被接受合并。这套流程被证明能让不同的基座模型学会各自专属的、针对自身弱点优化的 harness 指令。它也带来一个不能回避的安全隐忧:如果 harness 可以自主编辑到操作系统层面的操作,模型能力与操作权限之间的边界就被打破了——可编辑的范围需要被谨慎设计,权限控制与安全护栏必须留在这个自我改进循环之外,否则 reward hacking 的风险会直接叠加到系统权限层面。

演化搜索:把 harness 设计当成一个可进化的种群

演化搜索这条路线借鉴自然选择的思路——维护一个候选解的种群,持续变异、评估、只保留"适应度"高的个体。它特别适合两类场景:搜索空间巨大或形状不规则、难以用梯度方法优化;以及虽然难优化但容易评估的场景(这个前提很关键——见下文第一个瓶颈)。

早期工作聚焦在优化提示词本身:**Promptbreeder(arXiv:2309.16797)**用一套丰富的变异算子去演化任务特定的提示,而且这套变异算子本身也会被演化——不只优化提示,连"怎么变异提示"这件事本身都在被优化。**GEPA(arXiv:2507.19457)**把反思式的自然语言反馈和演化搜索结合起来,让模型用对轨迹的反思直接提议新的提示改动,论文标题本身就是一个挑衅性的论断——"反思式提示演化能超越强化学习"。

真正把这条路线推到生产级的是AlphaEvolve(Novikov et al. 2025-06,arXiv:2506.13131,Google DeepMind):它本质是一个用于科学与算法发现的编码 agent,维护一个候选程序的种群,用冻结的 LLM 生成改进后的代码差异(diff),重复评估子程序,只保留表现更好的候选。工程细节上,代码里用# EVOLVE-BLOCK-START/END标记出哪些区段允许被演化改写,其余代码保持固定;提示里除了父代程序和评估结果,还带着专门的元提示(meta-prompt)与元信息,元提示本身也随种群一起共同演化。论文的消融实验显示,演化过程本身、提示中的上下文信息、元提示、全文件级别的演化、以及更强的底层 LLM,四五个因素分别独立贡献了增益,缺一不可。后续工作在这个基础上分别做了不同方向的改进:ThetaEvolve把演化搜索、强化学习和小样本学习结合在一起;ShinkaEvolve专门解决采样效率问题——用样本高效的亲代采样(在"表现排名"和"已经繁殖过多少次"之间做平衡,避免总是从同一批高分个体里采样)、基于嵌入余弦相似度的代码新颖性拒绝采样(丢弃与已有候选过于相似的新解,维持种群多样性)、以及从成功案例里识别可复用模式来指导后续变异。

最能体现"harness 自己演化自己"这个核心命题的是两个把演化对象直接设为 harness 代码本身的工作:**Darwin Gödel Machine(DGM,arXiv:2505.22954)**让能编码的 agent 直接显式演化一个可编辑的 harness 代码库;Hyperagents用一个元 agent 去控制"如何修改现有的任务 agent、创造出新 agent",循环是——按性能对繁殖次数取反比来抽样选择父代(避免总选同一批高性能个体导致种群坍缩)、父代检查自己在基准上的评估日志、提出 harness 改进、评估新生成的 agent、只有高性能的才被放回种群池、重复。DGM 报告的结果相当扎实:它自动发现的 agent 在 SWE-bench Verified 上从 20% 一路提升到 50%,在 Polyglot 上从 14.2% 提升到 30.7%,达到甚至超过不少人工设计的 agent——这是目前"harness 代码自我演化"路线里最有说服力的实证结果之一。

不过演化搜索这条路线本身有明确的适用边界:它在能被自动评估、适应度容易量化的领域效果最好(比如矩阵乘法算法、GPU 核函数优化、算法竞赛、数据中心调度这类有明确客观分数的任务),但在评估过程本身很慢、模糊、或高度依赖启发式判断的领域会遇到困难——这与下面第一个瓶颈是同一个问题。

与模型权重的联合优化

以上所有优化都动的是模型外面的系统——上下文、工作流、harness 代码,模型的权重本身没变。完整的自我改进理论上应该允许权重和 harness 同时更新,通过改进训练管道或测试时的持续学习来实现。**SIA(Self Improving AI)**是这个方向的一个早期尝试,用三个组件分工:元 agent 提议初始 harness、任务特定 agent 负责实际执行、反馈 agent 依据近期轨迹判断该更新 harness 还是更新模型权重。Lilian Weng 对这个方向的评价比较审慎——她指出这类实验存在混淆变量的问题(比如任务特定 agent 用的模型明显弱于负责提议和反馈的模型,基线也偏弱,很难和其它相关工作做公平对比),方向本身有意思,但目前的证据还处在早期阶段,训练稳定性、Goodhart 效应(一旦某个信号被当成优化目标就会被钻空子)这类挑战都还是开放问题。

七个尚未解决的瓶颈

前面几节的科研 agent 案例已经证明,专家设计的 harness 确实能协调起大规模的自动化研究循环——但"能产出论文"和"能产出真正的科学发现"是两回事。系统可以写出看起来很合理的稿件,却在细节上虚构引用、实现漂移、或者用弱得站不住脚的实验支撑结论。Trehan & Chopra(2026)对"从研究想法到论文,只给最少脚手架和基础工具"这类端到端自主研究做了失败模式分析,归纳出六种典型失败:默认沿用训练数据里的过时做法(旧库、旧命令、陈旧格式)、执行压力下从提议的复杂方法退化成简单方案、长时程项目里关键细节因为没有持久化日志而丢失、明明实验有噪声或失败了却仍然宣布成功(Bubeck et al. 2025 称之为"p-hacking 和 eureka-ing")、缺乏预判实现复杂度和判断实验结果是否合理这类隐性的科研工艺知识、以及"品味"不足——实验本身能跑通,却没有回答真正该问的问题。

在这些具体失败模式之上,Lilian Weng 归纳出七个更根本、目前还没有令人满意答案的瓶颈:

  1. 评估器普遍弱且模糊。自我改进循环在评估指标客观、可测量时效果最好(这正是强化学习范式本身的前提);但研究品味、新颖性、长期科学价值这类东西极难被量化——"这个问题框架合不合理""这个意外结果值不值得深挖""这次失败值不值得重试",这些判断混杂在一起,目前没有靠谱的自动化代理指标。
  2. 上下文与记忆的生命周期管理。随着 agent 自主运行的时间越拉越长,需要管理的历史信息也越滚越大;harness 需要在"信息不够、模型看不到关键历史"和"信息太多、超出上下文窗口"之间找到平衡。一个值得玩味的类比:人类终身都在持续维护自己的记忆,因此上下文工程本质上应该是"智能"的一部分,而不该被当成模型之外一层纯软件工程的问题。
  3. 负面结果的系统性缺失。学术界的发表激励本身就偏向成功结果,训练语料里"成功案例"与"失败案例"的比例天然不平衡——这导致 LLM 在"该放弃一个假设时放弃""如实报告负面结果""承认失败"这几件事上天然表现更差。但从失败中学习恰恰是修剪巨大搜索空间最有效的方式之一,所以研究型 harness 应该被专门设计成便于保留、而不是丢弃失败尝试。
  4. 多样性坍缩。演化循环和 RL 循环都天然倾向于利用已经验证过的高奖励模式,如果没有专门机制去维持种群多样性,很容易收敛成同一个解的若干变体——对开放式的探索性研究来说这尤其致命,因为最优路径往往在当前评估器眼里初看反而更差,容易在坍缩之前就被淘汰掉。
  5. Reward hacking。自我改进循环会不遗余力地优化任何给定的信号:如果奖励来自单元测试就容易过拟合测试本身,如果来自评判模型就容易学会讨好评判模型的作弊技巧,如果来自基准就容易钻基准本身的漏洞——这与 Rubric 化评测与训练 一页讨论的 reward hacking 是同一类问题在 harness 自我改进语境下的重现。
  6. 难以捕捉长期健康。当前的优化循环基本只能作用于能被训练沙箱模拟出来的、单条独立轨迹范围内的奖励;以编码 agent 为例,它确实提升了日常生产力,但很多真正重要的优化目标是短期沙箱根本捕捉不到的——比如一个改动对由成百上千工程师共同维护的代码库的长期可维护性、所有权边界、迁移成本、向后兼容性、未来调试负担会有什么影响,标准的沙盒式 RLVR 训练目前完全够不着这些维度。
  7. 人的角色。作者的立场很明确:人应该被推上"堆栈的更高层",而不是被移除出这个循环。前面六个瓶颈里的大多数,都需要人在恰当的时间点、恰当的抽象层级上介入监督——系统设计本身要考虑清楚"该在哪里、以什么形式设这些人工触点",而不是把"完全自动"当成默认追求的终点。归根结底,构建这些技术是为了服务于人类更好的未来,而不是反过来。

与本站其他内容的关系

这条"harness 自我改进"的技术路径,和站内几处内容天然是同一枚硬币的不同切面:Rubric 化评测与训练 一页专门讨论过的"评估质量是前提",正是这里第一个瓶颈的另一种表述——rubric 靠不靠谱和 harness 自我改进循环里"评估器弱且模糊"是同一个根问题在评测和训练两个场景下的重现;rubric 那一页结尾讲的"内生化"(rubric 生成能力和回答能力共用一套参数、联合演化),与本页"权重与 harness 联合优化"一节讨论的方向也是同一个更大命题的两个具体实例。DR-Rubric 里模型自己 bootstrap 出训练用的 rubric,是"用当前能力去改进产生能力的机制"这条 RSI 定义在 deep research 领域的一个具体样本。Agentic RL 把整条 harness 循环当成 RL 的 rollout 环境去训练策略本身,是"改进权重"这条路径里最直接的一种做法。Skills 自动化 一节则是把"自我改进"的对象换成技能库而不是 harness 代码,方法论上高度平行。

参考文献

  • Weng, L. Harness Engineering for Self-Improvement. Lil'Log, 2026-07. 原文
  • Zelikman et al. Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation. arXiv:2310.02304
  • Fernando et al. Promptbreeder: Self-Referential Self-Improvement via Prompt Evolution. arXiv:2309.16797
  • Hu, Lu & Clune. Automated Design of Agentic Systems (ADAS). arXiv:2408.08435
  • Zhang et al. AFlow: Automating Agentic Workflow Generation. arXiv:2410.10762
  • Zhang et al. Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents. arXiv:2505.22954
  • Novikov et al. AlphaEvolve: A Coding Agent for Scientific and Algorithmic Discovery. arXiv:2506.13131
  • Agrawal et al. GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning. arXiv:2507.19457
  • Zhang et al. Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models (ACE). arXiv:2510.04618
  • Yang et al. SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering. arXiv:2405.15793