← 文章 / AI技术
Lilian Weng 2小时前 · 2026-08-31 13:37:41 · 0 阅读

面向自我改进的 Harness 工程

递归自我改进(RSI)这一概念最早可追溯到 I. J. Good(1965),他将"超智能机器"定义为在所有智力活动上都超越人类,并能设计更优机器以改进自身的系统。Yudkowsky(2008)则用"递归自我改进"来描述一个特定的反馈回路:AI 利用当前的智能去改进产生智能的认知机制。

在现代 AI 中,这个反馈回路既可能意味着模型直接改写自身权重,也可以更宽泛地理解为模型改进了训练流程部署系统,进而催生出在各类经济价值任务上表现更优的下一代模型。已有证据表明,前沿实验室的 AI 研究开发速度正在急剧加速(AnthropicOpenAI)。

我之所以专门提到"部署系统",是因为从原始模型到真实世界场景之间的这一层,其重要性并不亚于模型本身的原始智能(即预训练后立即跑评测所体现的能力)。从 Claude Code 和 Codex 等成功的编码 Agent 产品可以看出,harness 是 AI 部署中的关键组件。所谓 harness,是指围绕基座模型构建的外围系统,负责编排执行流程,决定模型如何思考和规划、如何调用工具和执行动作、如何感知和管理上下文、如何存储工件以及如何评估结果。

本文将聚焦于 harness 工程相关研究及其对 RSI 的贡献。近期大量关于自动研究、自我改进 Agent 以及演化式程序搜索的工作都可以围绕这一主题进行梳理。另有涉及模型自博弈、合成数据、测试时训练以及更广泛的持续学习等工作(如 Yuan et al. 2024Chen et al. 2024Zhao et al. 2025Choi et al. 2026)同样契合 RSI 的愿景,但不在本文讨论范围内。

脚手架设计模式#

相比早期智能体框架中"智能体 = LLM + 记忆 + 工具 + 规划 + 行动"的定义,脚手架工程额外涵盖了工作流设计(如循环工程)、评估、权限控制以及持久化状态管理。它不再只是提示模板,而更接近运行时与软件系统的设计:模型如何观察、行动、记忆、自我检查与改进。

设计应当刻意保持简洁与通用,以利于泛化,并可参考现有软件工程实践,借助已有的先验知识。操作系统与脚手架之间也存在很强的类比关系:与操作系统类似,脚手架应当在封装复杂逻辑的同时保持接口简洁。与此同时,配置、工具接口等协议有望在整个行业中逐步标准化。

模式一:工作流自动化#

定义一个模型可以运行、测试和迭代的工作流,是实现自动化的关键设计。Karpathy 的 autoresearch 仓库(https://github.com/karpathy/autoresearch)就是一个清晰的工作流构建范例。一个常见的工作流遵循"规划 → 执行 → 观察/测试 → 改进 → 再执行"的目标驱动循环,直到目标达成为止。在任务规范或执行偏好不够明确时,流程可能会主动向用户发起询问。

简化的 Codex 智能体循环:智能体调用工具,工具的响应又影响模型的下一轮生成。
(图片来源:OpenAI codex agent 文章

该工作流图还强调了模型对自身轨迹和失败案例进行分析,然后通过"智能体运行时"而非静态提示模板来迭代推进。

模式二:以文件系统作为持久化记忆#

在长时程智能体系统中,一个反复出现的模式是:对简单控制的追求,搭配对丰富状态和产物的承载。harness 不应把所有工作流和日志塞进上下文,而应该把持久化状态保存在文件里。在长时程智能体运行过程中,实验日志、代码 diff、论文摘要、错误堆栈、历史 rollout 轨迹等产物,常常会远远超出模型训练时所用的上下文窗口长度。

读写和编辑文件系统(通常通过 bash 命令)是大模型的基础能力,因此以文件这种简单形式管理持久化记忆,自然会受益于核心模型能力的提升。

模式 3:子智能体与后台任务#

harness 可以派生多个子智能体并行执行,并监控后台任务。当主智能体需要同时验证多个假设、并发运行实验,或把隔离的子任务委派出去而不污染主上下文时,这种做法很有用。父智能体此时只需要一个轻量的进程管理器:启动任务、查看日志、取消失败运行、把结果合并回主智能体的执行线。

关键的设计取舍是让并行变得显式、可追溯。如果子智能体的输出只存在于短暂的聊天上下文中,很快就会过时且无从查看;如果以文件、日志和状态记录的形式持久化下来,模型就能在中断后恢复,并对自己的执行历史进行推理。

案例:编程智能体 Harness#

主流编程智能体的核心接口已在 Claude Code、Codex、OpenCode 以及 Cursor 类智能体之间趋于稳定。它们通常采用如下循环:

借助一组工具,编程智能体能够在指定代码仓库中开发和调试问题,类似于人类开发者配备 IDE 的工作方式。

(并非完整列表,仅作演示。感兴趣可阅读这里。)

分类 工具定义
文件系统 - 文件查找:globgrepls
- 文件读取:readread_many
  • 文件修改:write(写入全新文件);edit(精确字符串替换);multi_editapply_patch(应用结构化的 patch/diff)
Shell 执行 运行命令:bashPowerShell
IO lsp,Git 工具如 git_statusgit_diffgit_commit
外部上下文 MCP 工具、Skills
联网搜索 web_searchweb_fetch,浏览器工具
制品 读取文档、图片;生成 HTML、图片
后台进程 例如:CronCreateCronDeleteCronList
代理委派 例如:spawn_agentresume_agentwait_agentlist_agentsclose_agentinterrupt_agent

Harness 层与核心智能的边界?#

很难预测 RSI 的未来能在多大程度上依赖 harness 工程,但近期的 RSI 路径不太可能从模型直接改写自身权重开始。我对一条切实可行的近期路径的预测是:

  1. Harness 工程将朝着元方法论的方向演进(即改进获得更好答案的机制,而不仅仅是改进答案本身)。Harness 系统本身会成为优化目标,启发式规则更少、通用机制更多。
  2. 成熟的 harness 进一步为自改进循环赋予自动研究能力,而更聪明的模型则能避免 harness 走向过度工程化,让系统保持可持续。

最终,许多 harness 的改进有可能被内化到模型的核心行为中,但与外部上下文和工具之间的接口应当保留。我们已经在提示工程上看到过这一模式的温和版本:随着指令微调和模型推理能力的提升,手工提示技巧的重要性下降了,但指定目标、约束、上下文和评估的需求并未消失

Harness 优化#

在 harness 系统中,优化目标的演进大致是:指令 prompt → 结构化上下文 → 工作流 → harness 代码 → 优化器代码。随着模型变得更智能、更强大,我们也会朝着更复杂的优化目标和更通用的方法演进。

上下文工程#

当智能体任务的时间跨度显著拉长时,简单地把所有工具响应和模型生成内容拼接进上下文,很快就会失控。上下文管理的作用就是为 LLM 构建更结构化、更精炼的上下文,并维护持久化状态。毫无疑问,长上下文的研究会持续推进,但就目前而言,长上下文能力与上下文工程之间有时是交织在一起的。

智能体上下文工程(ACE;Zhang et al. 2025)把上下文视为一份不断演进的剧本,而非一个越来越长的 prompt。它包含三个组件,共同维护一份由条目组成的上下文剧本,每个条目带有标识符和描述。

  1. 生成器:参考条目生成任务轨迹。
  2. 反思器:从成功和失败的轨迹中提炼洞见。
  3. 整理器:以增量化的、分条目的方式更新结构化上下文。
智能体上下文工程(ACE)的框架。(图片来源:Zhang et al. 2025

为了在迭代重写过程中避免上下文坍缩和简短性偏差,ACE 中一个关键的设计选择是:整理器不重写完整的 prompt 文本,而是输出一组结构化的、条目化的子弹(bullet)形式(标识符, 描述),并通过确定性逻辑合并到结构化的上下文日志中。上下文条目会定期进行精炼和去重。

ACE 能够从 rollout 中学习洞察,这让我们向"自主管理记忆"迈进了一步,但更新规则和整体工作流仍然是人工编写的。为了迈向更自洽的改进循环,Meta Context Engineering(MCE;Ye et al. 2026)将机制(如何管理上下文)与产物内容(上下文中有什么)解耦,在元优化层级上运行技能演化,在基础层级上进行上下文优化。

MCE 中的技能 $s \in \mathcal{S}$ 定义了一个上下文函数 $c_s=(\rho_s,F_s)$,将输入 $x$ 映射到上下文 $c = F_s(x;\rho_s)$,其中:

  • $\rho_s = \{\rho_1,\dots,\rho_m\}$ 是静态组件(提示、知识库、代码库)。
  • $F_s = \{F_1,\dots,F_k\}$ 是动态算子(搜索、筛选、过滤、格式化)。

双层优化的目标是:在给定技能 $s$ 的情况下,在训练数据上找到最优上下文 $c_s^*$;外层循环则在验证集上找到性能最佳的技能:

$$ \text{Inner: }c_s^*=\arg\max_{c_s}J_\text{train}(c_s;s)\quad \text{Outer: }s^*=\arg\max_{s\in\mathcal{S}}J_\text{val}(c_s^*) $$

技能库记录了历史技能、上下文函数和评估指标 $\mathcal{H}_{k-1} = \{(s_i,c_i,J_i^\text{train}, J_i^\text{val})\}_{i=1}^{k-1}$。元层级智能体针对历史技能执行 agentic crossover,在给定任务 $\tau$ 时生成新技能:$s_k=\text{crossover}(\tau,\mathcal{H}_{k-1})$。

随后,基础层级的上下文工程师执行技能 $s_k$,根据 rollout 反馈 $\mathcal{R}_k$ 学习上下文函数,并在当前技能的指导下完成:$c_k=\text{engineer}(\tau,s_k;c_{k-1}^*,\mathcal{R}_k)$。

Meta Context Engineering(MCE)框架:元层面的技能进化在上下文管理机制上进行搜索,基础层面则优化任务上下文。(图片来源:Ye et al. 2026

MCE 不像 ACE 那样对上下文的组织方式施加启发式规则。它使用自由形式的技能来存储任务所需的最重要知识,并让技能与以技能为条件的上下文一起迭代进化。在实现上,上下文函数 $c$ 被实例化为一个专用目录下的一组文件,涵盖静态(skill.md)和动态(上下文与数据 rollout)两部分。元层面和基础层面的优化都在配备标准工具集的智能体编码环境中执行,

$$ \mathcal{T}=\{\texttt{Read},\texttt{Write},\texttt{Edit},\texttt{Bash},\texttt{Glob},\texttt{Grep},\texttt{TodoWrite}\} $$

Meta-HarnessLee et al. 2026)则更进一步:它把代码本身作为优化对象,由这段代码来决定并优化应当存储、检索和呈现给模型的信息。其名称中的 "Meta-" 意味着它是一个用于优化 harness 的 harness。

Meta-Harness 的外层循环优化算法。(图片来源:Lee et al. 2026

用于生成新 harness 的提议者本身就是一个编码智能体,最终输出是位于帕累托前沿上的一组 harness 候选。

  • 完整的执行历史通过文件系统访问,因此编码智能体会用 grepcat 等命令按需读取,而不是把全部内容塞进单个提示上下文。
  • 所提出的 harness 是文件系统中的一个字典,包含其自身的源代码、得分、rollout 轨迹和状态更新。
  • meta-harness 循环会反复生成新 harness,只保留合格的候选。
Meta-Harness 的性能表现:(左)小迭代次数下的文本分类任务,(右)TerminalBench-2 任务。注意 TerminalBench-2 实验的搜索是从 Terminus-KIRA 和 Terminus-2 这两个非常强的 harness 初始化的。(图片来源:Lee et al. 2026

不过,重要的启示是显而易见的:一旦 harness 设计成为可执行搜索空间,强大的编码智能体就能利用人类工程师所使用的同一设计空间。

工作流设计#

Harness 工程中的工作流设计可以由领域专家手工完成。以自动化科研为例,目前已经提出并测试了多种框架。AI Scientist 系统(Lu et al. 2026)构建了一条流水线,用于提出研究思路、编写代码、运行实验、分析结果、撰写论文并进行同行评审。Meng et al. (2026)ScientistOne 中将可验证性作为核心设计约束,要求每一条论断(引用、数值、方法论、结论)都必须可追溯到证据源,并通过证据链审查进行审计。

AI Scientist 的流水线:思路生成、实验、论文撰写与评审。(图片来源:Lu et al. 2026

Autodata 智能体(Kulikov et al. 2026)被设计为扮演数据科学家的角色,用于生成训练和评估数据。主智能体管理一个挑战者(负责提出问题)、一个弱求解器、一个强求解器,以及一个验证器/评判器,目标是合成难度"恰到好处"的数据——即强求解器能够解出而弱求解器无法解出的数据。

在 Autodata 中,挑战者的提示会根据求解器和验证器的反馈进行迭代更新。其局限性在于,合成的任务仅用于微调弱求解器,而非强求解器;如果这个循环无法迭代地改进强模型,那么它就更像是基于生成提示分布的间接蒸馏,而非真正的自我递归改进(RSI)。

Autodata 智能体工作流设计,围绕挑战者、求解者、验证者三种角色生成合成训练与评估数据。(图片来源:Kulikov et al. 2026

工作流的设计空间极其庞大,因此很自然地,我们会把工作流设计视为一个搜索问题,进而希望通过算法而非纯手工的方式来找到好的方案。沿着这一思路,智能体系统自动化设计(ADAS;Hu et al. 2025)将智能体设计本身建模为一个优化问题,即"元智能体搜索"——由一个元智能体不断提出新的智能体工作流设计方案。

  1. 用 CoT、self-refine 等简单智能体初始化一份工作流存档库。
  2. 让元智能体编写代码来生成新智能体,灵感来自存档库中已有的方案。
    • 元智能体先生成新工作流的高层描述,再将其实现为代码。
    • 随后由元智能体对该草稿程序进行两步 self-refine(即让模型给出反馈,再让同一模型根据反馈优化先前生成的输出;Madaan et al. 2023),以检查其新颖性。
  3. 逐一评估新候选方案,将成功者回填至存档库。
  4. 重复步骤 2-3,直至达到最大迭代次数。
智能体系统自动化设计(ADAS)示意图。
(图片来源:Hu et al. 2025

AFlowZhang et al. 2025)将智能体工作流表示为一个图:节点代表调用 LLM 的动作,边则以代码形式实现逻辑运算。工作流优化基于 MCTS(蒙特卡洛树搜索):

  1. 用模板初始化搜索树中的起始工作流 $W_0$。
  2. 结合得分与均匀探索的软混合策略,选取一个工作流节点。
  3. 让 LLM 根据该节点的评估表现生成修改后的工作流,从而完成扩展。
  4. Execute and evaluate the new workflow.
  5. Add it back to the tree if the new workflow shows improvement within a budget of $N$ rounds.
  6. Repeat steps 2-5 and stop when the top-$k$ average score plateaus or hit the budget.
AFlow 在工作流候选树上的优化过程。(图片来源:Zhang et al. 2025

AFlow 在问答、代码和数学任务上的实验表明,相较于人工设计的工作流和 ADAS,AFlow 有相当不错的提升。

AFlow 与人工方法和 ADAS 的对比实验。(图片来源:Zhang et al. 2025

Self-Improving Harness#

无论是 context engineering 还是 workflow design,都只是 harness 的一部分。我们需要在整个设计空间中进行搜索,把上下文管理逻辑、工作流、权限以及其他众多 harness 组件一起优化。正如我们在 Meta-Harness、ADAS、AFlow 等工作中所看到的,✨代码✨是定义程序和系统的通用语言。简而言之,harness 就是一段代码,它规定了 prompt、工具调用、子代理、控制流、记忆和工作流逻辑如何协同工作。如果 LLM 能够优化执行 agent 的代码,它就能触及一个远比手工编写 prompt 大得多的设计空间

Self-Taught Optimizer(STOP;Zelikman et al. 2023)是早期实现递归式脚手架自我改进的范例之一。在第 $t=0$ 步,一个种子改进器 $I_0$ 接受初始解 $s$、效用函数 $u$ 和一个黑盒语言模型 $M$,并返回一个改进后的解 $s'$,即 $s’ = I(u, s; M)$。STOP 的目标并不是直接改进 $s$,而是改进改进器 $I$ 本身

首先,我们将 meta-utility 定义为给定改进器函数 $I$ 在一组下游任务 $\mathcal{D}$ 上的平均效用:

$$ \hat{u}(I) \triangleq \frac{1}{\vert\mathcal{D}\vert}\mathbb{E}_{(u,s)\sim \mathcal{D}}[u(I(u,s; M))] $$

由于改进"改进器"函数本身也是一个优化问题,我们可以通过元效用衡量的 $I_{t-1}$ 表现,递归地借助自改进更新得到 $I_t$ 的新版本:

$$ I_t=I_{t-1}(\hat{u},I_{t-1};M) $$
自教优化器(STOP)的算法。(图片来源:Zelikman et al. 2023

在他们的实验中,经过改进的"改进器"发现了多种策略,包括遗传算法、分而治之地改进各部分、多臂老虎机型提示策略、模拟退火、调节温度以及束搜索/树搜索等。这类似于将一个工作流编排视作一个可优化的对象。

STOP 发现的自改进策略示例。(图片来源:Zelikman et al. 2023

Zelikman et al. (2023) 的研究结果中有一个值得警惕的现象:STOP 在 GPT-4 上迭代后下游任务平均性能有所提升,但在 GPT-3.5 和 Mixtral 等较弱模型上却出现了性能下降。光有递归结构并不够,基础模型必须具备足够的智能才能改进这个机制。这说明编排的改进确实有助于更好地部署模型,但智能本身仍是核心。

Lin et al. (2026) 更细致地研究了编排演化对模型能力的依赖关系。他们区分了以下两个维度:(1) 编排更新(harness-updating),即生成有效编排修改的能力;(2) 编排收益(harness-benefit),即利用更新后的编排以更好地完成任务的的能力。有趣的是,他们的实验观察到,从 Qwen3.5-9B 到 Claude Opus 4.6 等不同规模和核心智能水平的模型,编排更新能力却大致相当:9B 的编排提出者/演化器所写出的技能,在过程结构上与 Opus 写出的几乎同构。要充分利用一个编排,模型需要准确、及时地调用技能和工具,并擅长长程指令跟随。

主要结果:(A) 从 Qwen2-32B 到 Opus 4.6 等一系列模型中,harness 更新能力基本持平;(B) harness 收益能力呈非单调分布,中间档模型获益最大。(图片来源:Lin et al. 2026

更近期的一项工作 **Self-Harness**(Zhang et al. 2026)依赖 LLM agent,通过"提议—评估—接受"循环来改进自身 harness。

Self-Harness 通过弱点挖掘、有界 harness 提议和验证的循环来更新 harness。(图片来源:Zhang et al. 2026

Self-Harness 的循环包含三个阶段:

  1. 弱点挖掘:将失败聚类成由验证器锚定的失败模式。
    • 使用当前 harness $h_t$ 在任务上求值,并收集执行轨迹用于分析。
    • 注意,两次运行在错误日志表面可能共享相同的验证器结果(如超时或产物缺失),但因果机制不同。因此需要一份信息丰富的失败记录,包含终端验证器层面的原因、相关 agent 行为的因果状态,以及轨迹所暴露的抽象 agent 机制,才能揭示根本原因。
  2. Harness 提议:基于挖掘出的失败模式提出有界的 harness 修改。
    • 在 $h_t$ 下调用同一模型作为提议者。
    • 为模型提供有界的提议上下文:(1) 当前 harness 的可编辑面,(2) 来自求值系统的、由验证器锚定的失败模式,(3) 应保留的通过行为记录,(4) 此前尝试过的修改摘要。
    • Harness 修改应优先处理那些可解决(例如不是任务特有的难题)且能通过窄范围改动解决的反复出现的错误模式。
    • Harness 修改候选之间应彼此不同且具有多样性。
  3. 提案验证:验证并合并合格的编辑,从而生成新的 harness $h_{t+1}$。
    • 候选编辑会在预留的 $D_\text{in}$(用于检验弱点是否被解决)和 $D_\text{out}$(用于检查是否引入了其他未知问题)数据划分上通过回归测试进行评估。
    • 只有当候选在预留数据和留出数据上都没有回归时,才会被接受。
    • 被接受的候选会被合并,把 harness 更新到 $h_{t+1}$;被拒绝的候选则只记录日志,不改变当前生效的 harness。

MiniMax M2.5Qwen3.5-35B-A3BGLM-5 在 Terminal-Bench-2 上运行 Self-Harness,可以看到它学到了针对不同基础模型不同弱点的模型专用 harness 指令,并提升了留出集的通过率。

不过,self-harness 这类工作确实让我有些顾虑:如果允许程序修改操作系统本身,抽象边界就被打破了。需要被编辑的界面必须经过精心设计,权限控制和安全保障层必须置于这个循环之外。所有关于 reward hacking 的挑战依然存在。

Agentic Harness Engineering(AHE;Lin et al. 2026)认为 harness 进化的瓶颈在于可观测性——也就是说,当一次 rollout 失败时,我们需要知道是哪个组件出了问题,每一次编辑都应该有证据支撑。

该框架通过 3 个可观测性支柱构建了一个闭环:

  1. 组件可观测性:每个可编辑的 harness 组件在文件系统中都有一个对应的表示,使动作空间显式且可追溯。
    • 一个 harness 包含 7 个组件:系统提示、工具描述、工具实现、中间件、技能(skill)、子代理配置和长期记忆。
    • 每种失败模式都被映射到某个具体组件,使编辑更具针对性。
  2. 经验可观测性:对大量原始轨迹进行分析和总结,形成一个多层次的证据与失败模式体系。
    • 每个 harness 会生成 $k$ 条轨迹。
    • 使用一个智能体("Agent debugger")来分析每条轨迹(各自存储在一个文件中),并针对每条任务生成关于失败或成功根本原因的分析报告。
    • 所有任务的报告会被汇总成一份基准概览,供下一步使用,必要时也可访问原始追踪数据。这种分层访问结构更加节省 token。
  3. 决策可观测性:每次编辑都附带对下一轮的预测,以便验证。
    • 一个智能体("Evolve agent")读取仓库,决定编辑哪个组件,然后产出编辑内容及其背后的推理。
    • 每次编辑都是一条文件级别的、可证伪的断言,可在下一轮中验证,需满足两条约束:
      • (1) 编辑只能应用于 harness 工作区。runs 目录、tracer、verifier 以及 LLM 配置均为只读,从而禁用了多种 reward hacking 行为(例如禁用 verifier、替换模型、提高推理预算上限),确保每项记录到的增益都可归因于 harness 编辑。
      • (2) 编辑以证据为驱动,并附带一份 manifesto 条目:失败证据的名称、推断出的根本原因、针对性修复方案,以及一份预测影响——既包含预期修复,也涵盖可能出现的回归风险。

在 Terminal-Bench-2 上,AHE 的表现优于人工设计的 harness(OpenCode、Terminus-2、Codex),但 Hard 层级除外,同时也优于若干自演化基线(ACE、TF-GRPO)。同一套冻结的 harness 在不继续演化的情况下迁移到 SWE-bench-verified 仍能取得良好效果,这表明演化后的 harness 能够将工程经验编码进各组件中,而非针对特定基准做过度优化。

进化搜索#

进化搜索是一种受自然选择启发的优化方法(可参考我之前关于进化算法的文章)。它通过对种群中的解进行变异,只保留"适应度"较高的个体,从而不断演化。当满足以下条件时,进化搜索尤为适用:(1) 搜索空间庞大或形状不规则;(2) 难以直接用梯度优化,但易于对解进行评估。Harness 搜索正好契合这些特点。

进化搜索在过去的研究中已被用于提示工程。PromptbreederFernando 等,2023)通过丰富的变异操作来优化面向特定任务的提示,有趣的是,变异提示(即让大语言模型去变异任务提示的指令)本身也通过进化不断改进。GEPAAgrawal 等,2025)将基于反思的提示方法与进化搜索相结合,利用对试错轨迹的自然语言反思来提出提示更新方案。

Novikov 等(2025)提出了 AlphaEvolve,这是一个面向编码任务的进化搜索系统,它维护一个候选程序池,并引导冻结的大语言模型生成改进用的 diff。随着系统反复评估子程序、保留成功的方案,它能在过程中发现更好的解。

AlphaEvolve 的工作流程。(图片来源:Novikov 等,2025

AlphaEvolve 的设计中有几个关键细节:

  • 提示中包含父程序、运行结果、指令,有时还包括元信息。
  • 编码代理可以访问整个代码仓库,但需要改进的代码区域会用 # EVOLVE-BLOCK-START# EVOLVE-BLOCK-END 显式标出。
  • 元提示与指令、上下文一起,根据大语言模型的建议协同进化,方式与进化求解程序类似。

消融实验验证了进化流程、提示中的上下文、元提示、全文件进化以及使用更强的语言模型的作用。

消融实验展示了 AlphaEvolve 中若干设计各自的价值。(图片来源:Novikov et al. 2025

最近的几个变体中,ThetaEvolveWang et al. 2025)将进化搜索与强化学习及上下文学习相结合;DemoEvolveChe, et al. 2026)在自 rollout 的存档库中加入了人类专家演示,作为 Harness 层级诊断与编辑的参考经验;ShinkaEvolveLange et al. 2025)则引入了三个新组件来提升 LLM 的采样效率:

  • 通过设计父代采样策略,在性能排名与后代数量之间取得平衡,从而实现更高效的样本探索。
  • 基于代码新颖性的拒绝采样:依据嵌入向量的余弦相似度,丢弃与现有种群过于相似的候选。
  • 在元便笺(meta-scratchpad)中识别成功解中的有效模式,以指导后续的变异。

与上述聚焦于解本身改进的工作不同,达尔文哥德尔机(Darwin Gödel Machine, DGM;Zhang et al. 2025)明确以可编辑的 Harness 代码仓库的进化为目标,由基于 LLM 的编程智能体来实现。具体而言,该智能体被允许修改自身的 Harness。后续的 Hyperagents 工作(Zhang et al. 2026)又引入了一个元智能体,专门控制如何修改已有任务智能体以创建新智能体。

  1. 从智能体池中一个编程智能体开始。
  2. 在每一轮迭代中,按概率选取一个父代:选取概率与其性能成正比,与其已有子代数量成反比;被选中的父代经过修改并分叉,生成新的智能体。
  3. 被选中的父代智能体审视自身的基准评测日志,然后对自己的 Harness 代码库提出改进方案,从而生成新版本的编程智能体。代码编辑通过两个基础工具完成:(1) bash(参数:<bash_command>)和 (2) editor(参数:view/create/edit <file_path>)。
  4. 对新一代编程智能体进行评估,仅将性能足够高的个体重新加入智能体池。
  5. 重复步骤 2–4,直至满足某个停止条件。

DGM 本质上是在固定模型的前提下对 harness 做进化。实验以 Claude 3.5 Sonnet 为基础大模型,使用简单的初始 harness 配置,DGM 自动发现的智能体在 SWE-bench Verified(20% 到 50%)和 Polyglot(14.2% 到 30.7%)上与人工设计的智能体表现相当甚至更优。

这一类方法在候选方案可自动评估、适应度易于量化的场景中效果很好,例如矩阵乘法、GPU 核函数优化、算法竞赛、数据中心调度等。但在评估缓慢、模糊或主要依赖启发式的领域则表现不佳。进化的计算效率与效果同样令人担忧。

与模型权重的联合优化#

Harness 进化改变的是模型周围的非参数系统。若要实现完整的自我改进,完全可以让模型同时更新自身权重。权重更新可以通过改进模型训练流程或在测试时进行持续学习来实现。持续学习这一话题值得在未来单独撰文讨论。

SIAHebbar et al. 2026)是一次早期尝试,将 harness 改进与模型参数更新放在同一个优化循环中,其设计包含三个组件:

  • Meta-Agent:负责提出初始 harness。
  • Task-Specific Agent:负责执行具体任务。
  • Feedback-Agent:根据最近的执行轨迹,决定下一步更新 harness 还是更新模型权重。
SIA 中的 Feedback-Agent 决定下一次迭代的类型。(图片来源:Hebbar et al. 2026

SIA 的实验中存在一些混杂因素,导致结果难以解读。例如,Task-Specific Agent 的能力明显弱于 Meta-Agent 和 Feedback-Agent 所用的模型(gpt-oss-120b 对比 Claude Sonnet 4.6),且基线过弱,无法与相关方法进行清晰的交叉对比。我认为这个方向值得关注,但目前证据尚不充分。此外,训练稳定性、Goodhart 效应等诸多挑战仍有待解决。

持续式 HarnessKarten et al. 2026)在长周期游戏场景中进行了实验,让 harness 在更新自身的同时,协同训练一个策略模型,方法是对低奖励轨迹蒸馏一个强教师模型的标签。

未来挑战#

AI Scientist 系列工作有力地证明,一个专家设计的 harness 可以协调自动化研究流程中的大部分环节,实验以撰写研究论文的形式展开。但写论文和科学发现不是一回事。系统可以写出一篇看似合理的论文,却仍然存在虚构引用、实现走样或实验结果薄弱的问题。

Trehan & Chopra (2026) 测试了 LLM 能否在极简脚手架和基础工具(即 read_filewrite_filellm_searchlist_files)的辅助下,把一个研究想法推进到完整论文。每个想法都有一个独立的工作空间,智能体可以在其中生成和读取文档作为上下文的一部分。他们在三个领域(世界模型、多智能体强化学习、AI 安全与对齐)开展了实验,每个领域包含 45 到 50 篇高质量种子文档以激发新想法。最终只有四个想法被人类专家选中以跑通完整流程,其中仅有一个被完整执行成论文。他们在实验中观察到了六种反复出现的失败模式:

  • 偏向训练数据的默认行为:使用旧版库、过时的命令、标准格式,或基于训练数据先验而非实际仓库/数据集做出的假设。
  • 执行压力下的实现走样:当实现变得技术上复杂时,模型可能转向一个常见但更简单的方案,而非所提方法本身。
  • 记忆与上下文退化:长周期项目会丢失关键细节,除非把日志写成持久化的工件加以保存。
  • 过度乐观:模型在实验结果充满噪声甚至失败时仍然宣告成功——这一现象在 Bubeck et al. (2025) 中被描述为"p-hacking 和 eureka-ing"模式,即模型在信号仍为噪声时就贴上"数值补丁"宣告胜利。
  • 领域知识不足:模型缺少隐性经验,例如无法预判实现复杂度、难以判断实验结果是否合理,也不清楚哪些基线才是关键参考。
  • 科研品味薄弱:实验或许能跑起来,却没能回答真正重要的问题。

通往完整 RSI 的路上,研究者已经取得了实质进展,但仍有一些瓶颈有待突破。

1. 评估机制薄弱且模糊。 许多研究主张缺乏快速且精确的验证手段,许多现实任务同样如此。当前的自我改进循环在评估指标可量化、客观明确的任务上效果最好,这和 强化学习的运作方式 类似。

而研究品味、创新性以及长期科研价值都远更难衡量。比如,研究品味往往同时融合了问题切入角度、实验设计,以及对"哪些反直觉结果值得深挖、哪些失败值得重试"的判断。

2. 上下文与记忆生命周期。 随着 AI 智能体越来越自主独立,其记忆也在不断累积。一个有效的执行框架需要管理上下文与记忆,在弥补现有长上下文生成局限的同时,最大化长程任务的成功率。既然人类能在整个一生中维持记忆,我由此联想到:上下文工程 必将并理应成为智能的核心组成部分,而非停留在软件系统层面。

3. 负面结果。 科研人员受发表机制驱动倾向于报道成功案例,导致文献天然偏向成功。由于 LLM 训练数据中成功与失败案例的严重失衡(至少目前如此),模型可能不擅长判断何时该放弃假设、如实报告负面结果,甚至承认失败。一个好的研究框架应当让失败尝试易于保留——因为从失败中学习,才是缩小任务搜索空间的最有效方式。

4. 多样性坍缩。 进化和强化学习的循环倾向于挖掘已知的高奖励模式。我们需要机制来防止种群坍缩成同一个解的变体。这对于开放式研究尤为关键,因为最优路径在当前评估器下可能一开始看起来更差。

5. 奖励黑客 自我改进循环会优化任何给定的信号。如果奖励来自单元测试,智能体可能过拟合到测试上;如果来自评审模型,可能学会针对该评审的奖励黑客技巧;如果来自基准测试分数,可能利用基准测试的漏洞。

评估器和权限控制应该放在进化 harness 的循环之外,保留独立的测试、追踪审计以及在关键决策点的人工审核——能多大程度上扩展和自动化这种监督,仍然是一个开放的研究问题。

6. 长期成功。 外在的优化循环作用于个体 rollout 之外的奖励,这些奖励我们可以在训练沙箱中模拟。

以编码智能体为例。编码智能体已经显著提升了软件工程的日常效率,但许多优化目标仍然过于短期。它通常能完成手头的任务,但不太清楚该如何维护一个由成百上千名工程师共同维护的代码库的长期健康。标准的沙箱式 RLVR 训练很少能覆盖可维护性、所有权边界、迁移成本、向后兼容或未来的调试负担。

7. 人类的角色。 人类应该上移抽象层级,而不是被移出循环,也就是说,人类应该在恰当的时刻、以恰当的抽象层级提供监督,我们的系统设计应当考虑何时以及如何设置这样的介入点。

上面列出的许多挑战都需要人类的反馈和引导。毕竟,我们是在为人类的美好未来构建技术,而不是反过来。

引用#

请按如下方式引用本文:

Weng, Lilian. “Harness Engineering for Self-Improvement”. Lil’Log (Jul 2026). https://lilianweng.github.io/posts/2026-07-04-harness/

或者使用 BibTeX 引用:

@article{weng2026harness,
  title = {Harness Engineering for Self-Improvement},
  author = {Weng, Lilian},
  journal = {lilianweng.github.io},
  year = {2026},
  month = {July},
  url = "https://lilianweng.github.io/posts/2026-07-04-harness/"
}

附录:一些有用的基准#

  • PaperBench:从零复现 20 篇 ICML 2024 Spotlight 和 Oral 论文,包括理解论文贡献、开发代码库以及成功运行实验。
    • 每个复现任务被拆解为更小的、可单独评分的子任务。
    • 共有 8,316 条评分细则,与论文原作者共同制定。
    • 当时最强的模型(Claude 3.5 Sonnet,约 21%)仍未超越 ML 博士的表现。
    • 包含 PaperBench、PaperBench Code-Dev(轻量版本)和 JudgeEval。
  • CORE-Bench:评估已发表研究的计算可复现性。
    • 基于 90 篇涵盖计算机科学、社会科学和医学的论文,包含 270 个任务。
    • 任务要求基于已有代码和数据复现结果。
    • 涵盖多个难度级别,包含纯语言任务和多模态任务。
    • 当时表现最好的智能体(GPT-4oGPT-4o-mini)在最困难的任务上准确率仅为 21%。
  • ScienceAgentBench:评估 LLM 智能体在数据驱动科学发现中的能力。
    • 从 44 篇同行评审论文中提取 102 个任务,涵盖数学、化学、生物、地理四个学科。
    • 任务覆盖这些领域的基础数据科学工作:数据处理、模型开发、数据分析和信息可视化。
  • RE-Bench:在真实 ML 研究工程环境中,将前沿 AI 智能体与人类专家进行对比评估。
    • 包含 7 个具有挑战性的开放式 ML 研究工程环境。
    • 每个环境由(评分函数、初始方案、参考方案)组成;每个环境最多可使用 8 块或更少的 H100 GPU 运行。
  • 示例:优化内核、运行缩放定律实验、修复 embedding、微调 GPT-2 做问答等。
  • 包含 61 位不同人类专家共 71 次 8 小时尝试的数据。
  • 人类专家在 82% 的 8 小时尝试中拿到了非零分数;24% 的结果达到或超过了强参考解。
  • 最佳 AI 智能体在 2 小时预算下得分比人类高 4 倍,但人类在更长预算下收益更佳,在 8 小时和 32 小时设置下反超了智能体。
  • MLE-bench:在离线 Kaggle 比赛上评测机器学习工程智能体。
    • 包含从 Kaggle 精选的 75 个机器学习工程比赛。
    • 测试训练模型、准备数据集、运行实验,以及向评分脚本提交预测结果。
    • 以 Kaggle 公开排行榜作为人类基线。
    • 论文中最佳配置——使用 AIDE 脚手架的 o1-preview——在 16.9% 的比赛中达到了 Kaggle 铜牌及以上水平。
    • 包含资源扩展和污染分析。
  • KernelBench:评测生成的 GPU 内核的正确性和速度。
    • 250 个 PyTorch 任务,用于评估 LLM 能否写出快速且正确的内核。
    • 评测指标 fast_p = 生成内核中既正确又快于基线的百分比。
  • 参考文献#

    [1] Good, I. J. "Speculations Concerning the First Ultraintelligent Machine." Advances in Computers, 6:31–88, 1965.

    [2] Yudkowsky, Eliezer. "Recursive Self-Improvement." LessWrong, 2008.

    [3] Choi, et al. "Anchored Self-Play for Code Repair." ICML 2026.

    [4] Zhao, et al. "Absolute Zero: Reinforced Self-play Reasoning with Zero Data." arXiv preprint arXiv:2505.03335, 2025.

    [5] Yuan, et al. "Self-Rewarding Language Models." arXiv preprint arXiv:2401.10020, 2024.

    [6] Chen 等人。"Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models." ICML 2024。

    [7] Zhang 等人。"Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models." ICLR 2026。

    [8] Ye 等人。"Meta Context Engineering via Agentic Skill Evolution." arXiv 预印本 arXiv:2601.21557, 2026。

    [9] Lee 等人。"Meta-Harness: End-to-End Optimization of Model Harnesses." arXiv 预印本 arXiv:2603.28052, 2026。

    [10] Lu 等人。"Towards end-to-end automation of AI research." Nature, 651:914–919, 2026。

    [11] Meng 等人。"ScientistOne: Towards Human-Level Autonomous Research via Chain-of-Evidence." arXiv 预印本 arXiv:2605.26340, 2026。

    [12] Kulikov 等人。"Autodata: An agentic data scientist to create high quality synthetic data." arXiv 预印本 arXiv:2606.25996, 2026。

    [13] Hu, Lu 和 Clune。"Automated Design of Agentic Systems." ICLR 2025。

    [14] Madaan 等人。"Self-Refine: Iterative Refinement with Self-Feedback." NeurIPS 2023。

    [15] Zhang 等人。"AFlow: Automating Agentic Workflow Generation." ICLR 2025。

    [16] Zelikman 等人。"Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation." COLM 2024。

    [17] Zhang 等人。"Self-Harness: Harnesses That Improve Themselves." arXiv 预印本 arXiv:2606.09498, 2026。

    [18] Fernando 等人。"Promptbreeder: Self-Referential Self-Improvement Via Prompt Evolution." arXiv 预印本 arXiv:2309.16797, 2023。

    [19] Agrawal, A. 等人。"GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning." arXiv 预印本 arXiv:2507.19457, 2025。

    [20] Novikov 等人。"AlphaEvolve: A coding agent for scientific and algorithmic discovery." arXiv 预印本 arXiv:2506.13131, 2025.

    [21] Lange、Imajuku 和 Cetin。"ShinkaEvolve: Towards Open-Ended And Sample-Efficient Program Evolution." arXiv 预印本 arXiv:2509.19349, 2025.

    [22] Wang 等人。"ThetaEvolve: Test-time Learning on Open Problems." arXiv 预印本 arXiv:2511.23473, 2025.

    [23] Zhang 等人。"Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents." arXiv 预印本 arXiv:2505.22954, 2025.

    [24] Zhang 等人。"Hyperagents." arXiv 预印本 arXiv:2603.19461, 2026.

    [25] Yuksekgonul 等人。"Learning to Discover at Test Time." arXiv 预印本 arXiv:2601.16175, 2026.

    [26] Riaz 等人。"Epistemic Uncertainty for Test-Time Discovery." arXiv 预印本 arXiv:2605.11328, 2026.

    [27] Hebbar 等人。"SIA: Self Improving AI with Harness & Weight Updates." arXiv 预印本 arXiv:2605.27276, 2026.

    [28] Trehan 和 Chopra。"Why LLMs Aren't Scientists Yet: Lessons from Four Autonomous Research Attempts." arXiv 预印本 arXiv:2601.03315, 2026.

    [29] Bubeck 等人。"Early science acceleration experiments with GPT-5." arXiv 预印本 arXiv:2511.16072, 2025.

    [30] Starace 等人。"PaperBench: Evaluating AI's Ability to Replicate AI Research." ICML 2025.

    [31] Wijk 等人。"RE-Bench: Evaluating frontier AI R&D capabilities of language model agents against human experts." ICML 2025.

    [32] Chan 等人。"MLE-bench: Evaluating Machine Learning Agents on Machine Learning Engineering." arXiv 预印本 arXiv:2410.07095, 2024.

    [33] Chen 等人。"ScienceAgentBench: Toward Rigorous Assessment of Language Agents for Data-Driven Scientific Discovery." ICLR 2025.

    [34] Siegel 等人。"CORE-Bench: Fostering the Credibility of Published Research Through a Computational Reproducibility Agent Benchmark." TMLR 2024。

    [35] Ouyang 等人。"KernelBench: Can LLMs Write Efficient GPU Kernels?" arXiv 预印本 arXiv:2502.10517,2025。

    [36] Lin 等人。"Harness Updating Is Not Harness Benefit: Disentangling Evolution Capabilities in Self-Evolving LLM Agents." arXiv 预印本 arXiv:2605.30621,2026。

    [37] Lin 等人。"Agentic Harness Engineering: Observability-Driven Automatic Evolution of Coding-Agent Harnesses." arXiv 预印本 arXiv:2604.25850,2026。

    [38] Karten 等人。"Continual Harness: Online Adaptation for Self-Improving Foundation Agents." arXiv 预印本 arXiv:2605.09998,2026。

    [39] Che 等人。"DemoEvolve: Overcoming Sparse Feedback in Agentic Harness Evolution with Demonstrations." arXiv 预印本 arXiv:2605.24539,2026。

    原始来源: Lilian Weng

    评论 (0)