0%

Agent Harness 的自进化:自进化分类与Harness工程实践

自进化(self-evolving)是 Agent 领域最热的方向之一,本文将梳理其中对我们底层开发则最为实用的 Agent harness 自进化的相关工作。

Agent 自进化的三个方向

Shilong Liu 的博客提出了一个简洁的组织框架,即自进化系统中的三个关键要素是models、harness 与 artifact。我们先来简单介绍一下三者分别的定义:

  • 模型(通常是大语言模型)是响应 prompt 的大脑;
  • harness 包含循环设计、记忆、工具等外围组件,负责将模型变成 Agent,因此有著名的等式:

Agent=Model+Harness\text{Agent} = \text{Model} + \text{Harness}

  • artifact 指 Agent 产生的输出物,例如 Agent 发现的核算法、自动科研产生的论文与发现、机器人自进化系统产生的新策略。

三个要素的关系很简单:模型与 harness 共同构成 Agent,Agent 产生 artifact。基于这个观点,现有自进化系统可以分为三个层次:artifact 迭代优化(Artifacts Iterative Optimization)、harness 自进化(Agent Harness Self-improvement)、无金标准下的模型学习(Model Learning without Gold Answers)

图1:Agent 自进化的三个方向

Artifacts Iterative Optimization

Artifacts Iterative Optimization 的动机很简单,即使用强大的 LLM 为复杂优化问题创造新 artifact。著名的案例包括 AlphaEvolve 用编码 Agent 做科学与算法发现,Analemma AI 的 FARS 连续运行 417 小时产出 166 篇完全由 AI 生成的论文(成本约 18 万美元),Recursive Superintelligence 找到了更优的 GPU kernel 算法。

图2:Artifacts Iterative Optimization

这类系统在概念上并不复杂,他们基于人类设定的目标与评估标准,让Agent 反复寻找可改进之处、产出新输出、检查是否达标。Codex、Claude Code、OpenClaw 等工具都遵循类似模式。在 LLM 诞生之前,研究者手工设计算子与搜索方法(如神经网络结构搜索),而在 LLM 时代,模型本身同时扮演算子与优化器,它能发明新候选、检查先前结果、决定下一步搜索方向。加上长程任务能力的提升,这个改进-验证循环或将成为加速工程与科学发现的有效工具。

Agent Harness Self-improvement

Agent Harness Self-improvement 与 Artifacts Iterative Optimization 几乎同时兴起,其动机是“能否在部署后不更新模型权重就改进 Agent”。面对这个问题,研究者探索了两条主要路线:

  • Prompt / Memory层面:模型可以记住一些问题和答案,这样以后就可以回答相同的问题,但显然,死记硬背的泛化能力不强,是一个会造成过拟合的行为。更好的解决方案是提取有用的规则,并将它们存储在 Agent 可以重复使用的地方,譬如合理的 Prompt 和 Memory。
  • Tool / Skill层面:文本信息有时不够,Agent 需要可操作的 tool 或 skill,Agent可以自己生成 tool 或 skill,下次遇到同类问题即可复用。

Model Learning without Gold Answers

第三个方向与前两者有本质区别,它真正更新的是模型权重。很多该方向的工作可能从不自称 self-evolving agents,它们通常以 self-training、weak supervision、self-play、RL、test-time training 等名称出现,现有方法大致有三类:

  • 伪金标准(Pseudo Ground Truth)或内部信号(Internal Signals):从数据本身构造伪标签,若伪标签视为目标则可用 SFT(如 self-training),若内部信号能转成奖励则可用 RL(如 DeepSeek-R1)。例如问模型"图里有几个苹果",虽然没有 ground truth,但模型对 4、5、6 的置信度明显高于随机猜测,这种内部信号不完美,但足以作为学习信号。
  • 自博弈(Self-play)与环境弱信号(Weak Signals from Environments):学习信号也可以来自模型外部,self-play(如 SPIN、Absolute Zero)或与环境交互(如 Agent Learning via Early Experience)都能提供信号。
  • Test-time Training(TTT):通过改造模型架构,让模型在推理过程中执行某种基于梯度的更新,相当于把学习搬进了推理阶段。

Agent Harness Self-improvement

前文大致介绍了 Agent 自进化这个概念的三个主要工作方向,而由于本文着重于介绍 harness 层面的相关工作,本节基于 Lilian Weng 的Harness Engineering for Self-Improvement及其他相关工作,从被优化对象的深度这一维度展开对 Agent Harness Self-improvement 方向的介绍。优化对象大致沿"指令 prompt → 结构化上下文 → 工作流 → harness 代码 → 优化器代码"逐级上移,模型越智能,越能处理更深层的优化目标。

Harness Design Patterns:harness 长什么样

在展开各种自改进方法之前,先回答一个更基础的问题:harness 到底由什么构成?相比早期 agent 框架"Agent = LLM + 记忆 + 工具 + 规划 + 行动"的范式,harness engineering 额外包含工作流设计(loop engineering)、评估、权限控制、持久状态管理,它不再是简单的 prompt 模板,而更接近运行时与软件系统设计:模型如何观察、如何行动、如何记忆、如何自我检查、如何改进。设计应刻意保持简单与通用以利于泛化,可以借鉴软件工程实践来利用预训练知识。harness 与操作系统有很强的类比:像 OS 一样封装复杂逻辑,同时保持接口简单。Lilian Weng 总结了三种反复出现的模式:

  • 工作流自动化(Workflow Automation):定义模型可操作、可测试、可迭代的工作流是自动化的关键设计。Karpathy 的 autoresearch 仓库是一个简洁范例,常见工作流遵循目标导向的循环:规划 → 执行 → 观察/测试 → 改进 → 再执行,直到目标达成,过程中可能主动向用户请求任务澄清。工作流图强调模型分析自身轨迹与失败案例,通过"agent runtime"迭代进步,而非静态 prompt 模板。
  • 文件系统作为持久记忆(File System as Persistent Memory):长程 Agent 系统的一个反复出现的模式是对丰富状态与 artifact 的简单控制。harness 不应把整个工作流与全部日志装进上下文,而应把持久状态放在文件中。长程 rollout 中,实验日志、代码 diff、论文摘要、错误轨迹、历史轨迹往往比模型训练时的上下文窗口长得多。读写文件系统(通常通过 bash 命令)是 LLM 的基础技能,因此以文件形式管理持久记忆天然受益于核心模型能力的提升。
  • 子 Agent 与后台任务(Sub-agent and Backend Jobs):harness 可以并行 spawn 多个子 Agent 并监控后台任务,适用于主 Agent 需要搜索多个假设、并发运行实验、或委托隔离子任务而不污染主上下文的情况。父 Agent 需要一个小的进程管理器:启动任务、检查日志、取消失败运行、把结果合并回主线程。关键设计是让并行显式且可检查:如果子 Agent 的输出只存在于瞬时的聊天上下文中,很快就会过时并被隐藏;如果存为文件、日志与状态记录,模型就能在中断后恢复,并基于自身执行历史进行推理。

Context Engineering:从 Prompt 到结构化上下文

简单地把所有工具响应与模型生成追加进上下文会迅速失控(成本、注意力稀释、缓存失效)。Context Engineering 的目标是构造更结构化、更精简的上下文并管理持久状态。

图3:The framework of Agentic Context Engineering (ACE). (Image source: [Zhang et al. 2025](https://arxiv.org/abs/2510.04618))

  • ACE(Agentic Context Engineering):把上下文视为不断演化的 playbook,而非不断变长的 prompt。通过三个组件协作来维护:Generator 产出任务轨迹,Reflector 从成功与失败轨迹中提炼洞见,Curator 以 (identifier, description) 的结构化条目增量更新 playbook。关键设计是 Curator 不重写整块 prompt,而是输出结构化条目,避免上下文坍缩与简洁性偏差,条目定期精炼去重。
  • MCE(Meta Context Engineering):把机制(如何管理上下文)与内容(上下文中有什么)分离,在 meta 层面做技能进化,在 base 层面优化任务上下文。一个 skill 定义了一个 context function,双层优化:内层在训练集上找最优上下文,外层在验证集上找最优技能,技能库记录历史技能与评估指标,元级 Agent 通过 agentic crossover 生成新技能。
  • Meta-Harness:优化对象再深一层,优化"决定存储、检索、呈现什么信息"的代码本身,Meta- 前缀表示它是优化 harness 的 harness。新 harness 的 proposer 本身是编码 Agent,整个执行历史通过文件系统访问,最终输出 Pareto 前沿上的 harness 候选集。

Workflow Design:从人工设计到自动搜索

工作流可以由领域专家手工设计,也可以视为搜索问题自动寻找。

图4:AI Scientist pipeline for idea generation, experimentation, paper writing, and review. (Image source: [Lu et al. 2026](https://www.nature.com/articles/s41586-026-10265-5))

  • 人工设计:AI Scientist 构建了"提想法-写代码-跑实验-分析-写稿-评审"的完整流水线;ScientistOne 以可验证性为核心约束,每条主张(引用、数值、方法、结论)必须可追溯到证据源并经过 Chain-of-Evidence 审计。
  • 自动搜索:ADAS(Automated Design of Agentic Systems)把 Agent 设计本身形式化为优化问题,元 Agent 用代码编程新 Agent,经两步 self-refine 检查新颖性后评估入档;AFlow 把工作流表示为图(节点是 LLM 调用动作,边是代码实现的逻辑操作),用 MCTS 在树中搜索更优工作流。

Self-Improving Harness:harness 代码成为优化目标

context engineering 与 workflow design 只是 harness 的一部分,要搜索整个设计空间,需要把上下文管理逻辑、工作流、权限等 harness 组件一起优化。正如 Meta-Harness、ADAS、AFlow 所展示的,代码是定义程序与系统的通用语言:harness 就是一段代码,编排了 prompt、工具调用、子 Agent、控制流、记忆与工作流逻辑如何协作。如果 LLM 能优化执行 Agent 的代码,就能触及远大于手工 prompt 的设计空间。

STOP(Self-Taught Optimizer) 是递归脚手架改进的早期例子。种子改进器 I₀ 在 t=0 时接收初始解 s、效用函数 u 和黑盒语言模型 M,返回改进后的解 s′,即 s′ = I(u, s; M)。STOP 的目标不是直接改进解 s,而是改进改进器 I 本身。为此定义 meta-utility 为改进器 I 在一组下游任务 D 上的平均效用:

u^(I)1DE(u,s)D[u(I(u,s;M))]\hat{u}(I) \triangleq \frac{1}{|D|} \mathbb{E}_{(u,s) \sim D}[u(I(u,s;M))]

由于改进改进器本身也是一个优化问题,可以基于 Iₜ₋₁ 的 meta-utility 表现递归得到新版本:Iₜ = Iₜ₋₁(û, Iₜ₋₁; M)。

图5:Algorithm of Self-Taught Optimizer (STOP). (Image source: [Zelikman et al. 2023](https://arxiv.org/abs/2309.16609))

实验中,改进后的改进器发现了遗传算法、分解并改进各部分、多臂 prompt bandit、模拟退火、变温采样、束搜索/树搜索等策略,这类似于 harness 工作流可以被表示为优化对象的方式。

图6:Examples of self-improvement strategies discovered by STOP. (Image source: [Zelikman et al. 2023](https://arxiv.org/abs/2309.16609))

STOP 用 GPT-4 时提升了平均下游性能,但用更弱的 GPT-3.5 与 Mixtral 时性能退化。这意味着仅仅有递归结构本身是不够的,基础模型必须足够强大才能改进机制。这暗示 harness 改进能让模型部署得更好,但智能仍是核心。

Lin et al. (2026) 更细致地研究了 harness 进化对模型能力的依赖,解耦了两个组成部分:harness-updating(产出有效 harness 编辑的能力)与 harness-benefit(利用更新后的 harness 更好地解题的能力)。实验发现,从 Qwen3.5-9B 到 Claude Opus 4.6 的模型表现出相似的 harness 更新能力,9B 的 harness proposer 能写出与 Opus 过程同构的技能;而 harness 受益能力则非单调,中等模型受益最多。要最好地利用 harness,模型需要正确且及时地调用技能/工具,并擅长长程指令跟随。

图7:(A) harness updating capability is measured flat across models; (B) harness benefit capability is non-monotonic. (Image source: [Lin et al. 2026](https://arxiv.org/abs/2602.16934))

Self-Harness(Zhang et al. 2026)依靠 LLM Agent 通过"提议-评估-接受"循环改进自身 harness,循环分三个阶段:

  • 弱点挖掘(Weakness mining):当前 harness hₜ 在任务上评估并收集执行轨迹,把失败聚类为可验证的失败模式。需要注意的是,两条运行可能在错误日志表面共享同一 verifier 结果(如超时或缺失 artifact),但因果机制不同,因此失败记录需要包含丰富的富信息:终态 verifier 层原因、相关 Agent 行为因果状态、轨迹暴露的抽象 Agent 机制。
  • 有界 harness 提议(Bounded harness proposal):基于挖掘出的失败模式提议有界的 harness 编辑。同一模型在 hₜ 下作为 proposer,提供四类有界上下文:当前 harness 的可编辑面、评估系统的 verifier 失败模式、应保留的通过行为记录、先前尝试编辑的摘要。编辑应优先处理可解决的复发错误模式(而非任务特有的难度),候选编辑应彼此不同且多样。
  • 提议验证(Proposal validation):候选编辑在 held-in(测试弱点是否解决)与 held-out(检查是否引入未知问题)数据上做回归测试,只有两者都无回归才接受并合并为新 harness hₜ₊₁,被拒的编辑记录但不改变当前 harness。

图8:The loop of Self-Harness: weakness mining, bounded harness proposal, and validation. (Image source: [Zhang et al. 2026](https://arxiv.org/abs/2602.19346))

在 MiniMax M2.5、Qwen3.5-35B-A3B、GLM-5 上运行 Terminal-Bench-2 时,Self-Harness 学到了针对不同基础模型不同弱点的模型特定 harness 指令,提升了 held-out 通过率。这类工作也带来顾虑:如果程序被允许编辑操作系统,抽象边界就被打破了,可编辑面需要合理设计,权限控制与安全层需要放在循环之外,Reward hacking 的挑战依然存在。

Reward Hacking:骗过指标,而不是做好任务
Reward hacking 指模型发现「让评估分数上涨」比「真正完成任务」更容易,于是专门正对分数进行优化。自改进循环会优化你给的任何信号,包括信号本身的漏洞。在 harness 自进化场景下,风险更甚:如果允许 Agent 编辑自身 harness,它理论上可以禁用 verifier、替换更强的模型、调大推理预算来刷分,这些都不是真实改进。因此评估器与权限控制必须放在进化循环之外,AHE 把 runs 目录、verifier、LLM 配置设为只读,正是为了杜绝这类作弊。

AHE(Agentic Harness Engineering)(Lin et al. 2026)认为 harness 进化的瓶颈在可观测性:当一次 rollout 失败时,需要知道是哪个组件导致的,每个编辑都应基于证据。框架建立三根支柱的闭环:

  • 组件可观测(Component observability):每个可编辑的 harness 组件在文件系统中有显式表示,动作空间显式可追踪。harness 包含 7 类组件:系统 prompt、工具描述、工具实现、中间件、技能、子 Agent 配置、长期记忆,每个失败模式映射到一个组件,编辑更有的放矢。
  • 经验可观测(Experience observability):把大量原始轨迹分析总结为证据与失败模式的分层。每个 harness 生成 k 条轨迹,用"Agent debugger"分析每条存于文件的轨迹,生成逐任务根因分析报告,再聚合成基准总览,原始轨迹按需访问,这种分层访问结构更省 token。
  • 决策可观测(Decision observability):每个编辑配一个下一轮验证的预测。"Evolve agent"读取仓库决定编辑哪个组件,产出编辑及其推理。每个编辑都是文件级的、可证伪的声明,在约束下验证:编辑只作用于 harness 工作区,runs 目录、tracer、verifier、LLM 配置只读,这禁掉了一类奖励黑客(禁用 verifier、换模型、提高推理预算),保证每个记录的性能提升都归因于 harness 编辑;编辑以证据驱动,附 manifesto 条目(失败证据名、推断的根因、定向修复、预期影响)。

AHE 在 Terminal-Bench-2 上优于人类设计的 harness(OpenCode、Terminus-2、Codex,除 Hard 档与少数自进化基线),且冻结的 harness 无需继续进化即可迁移到 SWE-bench-verified,说明进化出的 harness 把工程经验编码进了组件而非做基准专属优化。

Evolutionary Search:把 harness 进化当种群演化

进化搜索适用于搜索空间大或形状怪异、难以梯度优化但容易评估的场景,harness 搜索正是典型用例。

  • AlphaEvolve:存储候选程序池,冻结 LLM 生成 diff 改进程序;代码中用 EVOLVE-BLOCK-START/END 显式标记可改进区域,meta-prompt 与指令上下文共同进化。

图9:How AlphaEvolve works. (Image source: [Novikov et al. 2025](https://arxiv.org/abs/2504.15634))

  • DGM(Darwin Gödel Machine):直接以可编辑的 harness 代码仓库为进化目标。从单个编码 Agent 开始,每轮按性能比例选父代,父代检查自身评估日志后提议 harness 代码库改进,新 Agent 评估通过后才加入种群。用 Claude 3.5 Sonnet 在 SWE-bench Verified 上从 20% 提升到 50%,Polyglot 从 14.2% 到 30.7%。
  • 变体:ShinkaEvolve 用嵌入相似度拒绝采样提升采样效率;DemoEvolve 把人类专家示范加入自 rollout 归档作为参考经验。

能力边界与联合优化

  • harness-updating 与 harness-benefit 解耦(Lin et al.):前者是产出有效 harness 编辑的能力,后者是利用更新后 harness 更好解题的能力。实验发现从 Qwen3.5-9B 到 Claude Opus 4.6 的模型 harness 更新能力基本持平,而 harness 受益能力非单调,中等模型受益最多。
  • SIA:早期联合优化尝试,Meta-Agent 提议初始 harness、Task-Specific Agent 执行任务、Feedback-Agent 基于近期轨迹决定更新 harness 还是模型权重。方向有趣但实验设置存在混淆因素,证据仍属初步。

图10:The Feedback-Agent in SIA decides the next iteration type. (Image source: [Hebbar et al. 2026](https://arxiv.org/abs/2605.00514))

  • 边界在模糊:harness 进化改变模型周围的非参数系统,harness 到达极限后更新模型参数成为自然下一步,这与前文 Model Learning without Gold Answers 的方向相互衔接。

参考

[1] Shilong Liu, A Taxonomy of Self-evolving Agents. https://x.com/atasteoff/status/2074800880017342665
[2] Lilian Weng, Harness Engineering for Self-Improvement. https://lilianweng.github.io/posts/2026-07-04-harness-engineering/
[3] Good, I. J. “Speculations Concerning the First Ultraintelligent Machine.” Advances in Computers, 6:31–88, 1965.
[4] Yudkowsky, Eliezer. “Recursive Self-Improvement.” LessWrong, 2008.
[5] Zhang, et al. “Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models.” ICLR 2026. https://arxiv.org/abs/2510.04618
[6] Ye, et al. “Meta Context Engineering via Agentic Skill Evolution.” arXiv:2601.21557, 2026.
[7] Lee, et al. “Meta-Harness: End-to-End Optimization of Model Harnesses.” arXiv:2603.28052, 2026.
[8] Lu, et al. “Towards end-to-end automation of AI research.” Nature, 651:914–919, 2026.
[9] Meng, et al. “ScientistOne: Towards Human-Level Autonomous Research via Chain-of-Evidence.” arXiv:2605.26340, 2026.
[10] Kulikov, et al. “Autodata: An agentic data scientist to create high quality synthetic data.” arXiv:2606.25996, 2026.
[11] Hu, Lu, and Clune. “Automated Design of Agentic Systems.” ICLR 2025.
[12] Madaan, et al. “Self-Refine: Iterative Refinement with Self-Feedback.” NeurIPS 2023.
[13] Zhang, et al. “AFlow: Automating Agentic Workflow Generation.” ICLR 2025.
[14] Zelikman, et al. “Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation.” COLM 2024. https://arxiv.org/abs/2309.16609
[15] Zhang, et al. “Self-Harness: Harnesses That Improve Themselves.” arXiv:2606.09498, 2026.
[16] Fernando, et al. “Promptbreeder: Self-Referential Self-Improvement Via Prompt Evolution.” arXiv:2309.16797, 2023.
[17] Agrawal, A. et al. “GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning.” arXiv:2507.19457, 2025.
[18] Novikov, et al. “AlphaEvolve: A coding agent for scientific and algorithmic discovery.” arXiv:2506.13131, 2025. https://arxiv.org/abs/2504.15634
[19] Lange, Imajuku, and Cetin. “ShinkaEvolve: Towards Open-Ended And Sample-Efficient Program Evolution.” arXiv:2509.19349, 2025.
[20] Wang, et al. “ThetaEvolve: Test-time Learning on Open Problems.” arXiv:2511.23473, 2025.
[21] Zhang, et al. “Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents.” arXiv:2505.22954, 2025.
[22] Zhang, et al. “Hyperagents.” arXiv:2603.19461, 2026.
[23] Hebbar, et al. “SIA: Self Improving AI with Harness & Weight Updates.” arXiv:2605.27276, 2026. https://arxiv.org/abs/2605.00514
[24] Lin, et al. “Harness Updating Is Not Harness Benefit: Disentangling Evolution Capabilities in Self-Evolving LLM Agents.” arXiv:2605.30621, 2026. https://arxiv.org/abs/2602.16934
[25] Lin, et al. “Agentic Harness Engineering: Observability-Driven Automatic Evolution of Coding-Agent Harnesses.” arXiv:2604.25850, 2026.
[26] Karten, et al. “Continual Harness: Online Adaptation for Self-Improving Foundation Agents.” arXiv:2605.09998, 2026.
[27] Che, et al. “DemoEvolve: Overcoming Sparse Feedback in Agentic Harness Evolution with Demonstrations.” arXiv:2605.24539, 2026.

🌙