Harness Engineering for Self-Improvement:AI装备层设计模式与自改进

Lilian Weng:Lil'Log(RSS)·2026-07-04 08:00·79天前·Lilian Weng
AI 导读

Lilian Weng 近日系统探讨了 AI 的“装备层”(Harness)——位于基础模型与现实世界之间的系统层,负责编排执行、控制模型思考与规划。文章归纳三种核心设计模式:1)工作流自动化,采用“计划-执行-观察-改进”循环;2)将文件系统作为持久化内存,解决长程任务上下文窗口与状态持久化问题;3)子智能体与后台任务,实现并行执行与隔离管理。案例聚焦于 Claude Code、Codex 等编程智能体的装备层设计。未来方向包括上下文工程、工作流优化以及通过进化搜索联合优化模型权重。

Lilian Weng:Lil'Log(RSS)
精选
57AI 编辑部评分,满分 100

Harness Engineering for Self-Improvement:AI装备层设计模式与自改进

2026-07-04 08:00· 79天前· Lilian Weng
AI 导读

Lilian Weng 近日系统探讨了 AI 的“装备层”(Harness)——位于基础模型与现实世界之间的系统层,负责编排执行、控制模型思考与规划。文章归纳三种核心设计模式:1)工作流自动化,采用“计划-执行-观察-改进”循环;2)将文件系统作为持久化内存,解决长程任务上下文窗口与状态持久化问题;3)子智能体与后台任务,实现并行执行与隔离管理。案例聚焦于 Claude Code、Codex 等编程智能体的装备层设计。未来方向包括上下文工程、工作流优化以及通过进化搜索联合优化模型权重。

推荐理由

Lilian Weng 这篇综述把 agent 自改进的脉络从 harness 设计一路拉到进化搜索,近期关键研究基本都串起来了,做 coding agent 和自动研究的同行建议通读。

正文 · AI 翻译

递归自我改进(RSI)这一概念可以追溯到I. J. Good(1965),他将“超智能机器”定义为一个能够在所有智力活动中超越人类、并设计出更好的机器来改进自身的系统。Yudkowsky(2008)用“递归自我改进”一词来指代一个特定的反馈回路:AI 利用其当前的智能来改进产生其智能的认知机制。

在现代 AI 中,这一反馈回路可能意味着模型直接重写自身的权重,或者更广义地说,模型改进训练流程部署系统,进而催生出性能更优的后继模型,在经济上有价值的任务中表现全面提升。前沿实验室的研究开发速度已被证明会急剧加快(AnthropicOpenAI)。

我特意提到“部署系统”,是因为原始模型与真实世界上下文之间的这一层,似乎与模型的原始智能(即预训练后立即进行的评测所衡量的能力)同等重要。Harness 是 AI 部署的重要组成部分,Claude Code 和 Codex 等成功的编程智能体产品已经证明了这一点。Harness是围绕基础模型的系统,它编排执行过程,决定模型如何思考和规划、如何调用工具并采取行动、如何感知和管理上下文、如何存储产物,以及如何评估结果。

这篇文章将聚焦于围绕 harness 工程的研究,以及它如何推动 RSI。近期许多关于自动研究、自我改进智能体和进化式程序搜索的工作,都可以围绕这一问题来组织。其他关于模型自我对弈、合成数据、测试时训练以及更广泛的持续学习主题的工作,也符合 RSI 的愿景(例如 Yuan et al. 2024Chen et al. 2024)、Zhao et al. 2025Choi et al. 2026),但它们不会是本文的重点。

Harness 设计模式

早期智能体框架相比,“智能体 = LLM + 记忆 + 工具 + 规划 + 行动”,而 harness 工程还额外包括工作流设计(例如循环工程)、评估、权限控制和持久状态管理。它不再只是提示词模板,而更接近运行时与软件系统设计:模型如何观察、行动、记忆、自我检查并改进。

设计应当刻意保持简单和通用,以实现泛化,很可能需要参考现有的软件工程实践,以从预训练知识中获益。操作系统与 harness 之间也存在很强的类比关系。与操作系统类似,harness 应当封装复杂的逻辑,同时保持接口简单。与此同时,配置、工具接口和其他协议可能会逐渐在整个行业范围内实现标准化。

模式 1:工作流自动化

定义一个模型能够操作、测试并迭代的工作流,是自动化的一项关键设计。Karpathy 的 autoresearch 仓库(https://github.com/karpathy/autoresearch)就是一个清晰示例,展示了如何构建这样的工作流。一种常见的工作流遵循目标导向的循环:规划、执行、观察/测试、改进,然后再次执行,直到目标达成。该过程可能会主动向用户发起请求,以澄清任务规格或执行偏好。

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

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

模式 2:文件系统作为持久记忆

长时程智能体系统中反复出现的一种模式,是对丰富状态和产物进行简单控制。一个 harness 不应把整个工作流和所有日志都放在上下文中;相反,它应把持久状态保存在文件里。在长时程智能体 rollout 中,实验日志、代码 diff、论文摘要、错误追踪和过往 rollout 轨迹等产物,往往会增长到远超模型训练时所支持的上下文窗口。

学习如何读取、写入和编辑文件系统(通常通过 bash 命令)是大语言模型的一项基础技能,因此以文件这种简单形式管理持久记忆,自然也能从核心模型能力的提升中获益。

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

一个 harness 可以派生多个子智能体并行执行,并监控后台任务。当主智能体需要搜索多个假设、并发运行实验,或在不污染主上下文的情况下委派相互隔离的子任务时,这一点非常有用。随后,父智能体需要一个小型进程管理器:启动任务、检查日志、取消失败的运行,并将结果合并回主智能体线程。

关键的设计选择是让并行性显式且可检查。如果子智能体的输出只存在于短暂的对话上下文中,它们很快就会过时并被隐藏。如果它们以文件、日志和状态记录的形式存储,模型就能在中断后恢复,并对自身的执行历史进行推理。

案例研究:编程智能体 harness

主流编程智能体的核心接口在 Claude Code、Codex、OpenCode 以及 Cursor 风格的智能体之间已经趋于稳定。它们通常使用类似这样的循环:

借助一组工具,编程智能体能够在给定代码仓库中开发和调试问题,就像人类开发者配备 IDE 一样。

(并非完整列表;仅为演示而展示。如有兴趣,请阅读这篇。)

分组 工具定义
文件系统 - 文件发现:globgrepls
- 文件读取:readread_many
- 文件修改:write(一个全新文件);edit(字符串精确匹配替换);multi_editapply_patch(应用结构化补丁/diff)
Shell 执行 运行命令:bashPowerShell
IO lsp、git 工具如 git_statusgit_diffgit_commit
外部上下文 MCP 工具、技能
网页搜索 web_searchweb_fetch、浏览器工具
产物 读取文档、图像;生成 HTML、图像
后端处理 例如:CronCreateCronDeleteCronList
智能体委派 例如:spawn_agentresume_agentwait_agentlist_agentsclose_agentinterrupt_agent 等。

框架层 vs 核心智能?

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

  1. 框架工程将朝着元方法论的方向演进(即改进获取更好答案的机制,而不仅仅是改进答案本身)。框架系统本身成为优化目标,启发式规则更少,通用机制更多。
  2. 反过来,成熟的框架能够实现自动研究,形成模型自我改进的闭环,而更智能的模型则防止框架过度工程化,保持系统的可持续性。

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

Harness 优化

在 harness 系统中,被优化的对象大致经历了这样的演进:指令提示词 → 结构化上下文 → 工作流 → harness 代码 → 优化器代码。随着模型变得越来越智能和强大,我们朝着更复杂的目标和更通用的方法迈进。

上下文工程

简单地将所有工具响应和模型生成内容追加到上下文中,随着智能体任务时间跨度的显著增加,很快就会失控。上下文管理是一个为 LLM 构建更结构化、更简洁的上下文并管理持久状态的层。毫无疑问,长上下文研究将持续取得进展,但目前长上下文智能与上下文工程有时交织在一起。

Agentic Context Engineering(ACE;Zhang et al. 2025)将上下文视为一份不断演进的行动手册,而非一份不断变长的提示词。它包含三个组件,用于维护一份由要点条目组成的上下文行动手册,每个条目都有一个标识符和一段描述。

  1. 生成器:参考要点条目,生成任务轨迹。
  2. 反思器:从成功和失败的轨迹中提炼洞见。
  3. 策展器:以增量式、逐条列出的条目更新结构化上下文。
Agentic Context Engineering(ACE)框架。(图片来源:Zhang et al. 2025

为防止迭代重写过程中出现上下文坍缩和简洁性偏差,ACE 的一个关键设计选择是:策展器不重写整个提示词块。它改为输出一组结构化的、逐条列出的要点条目,形式为(标识符,描述),这些条目通过确定性逻辑合并到一份结构化上下文日志中。上下文条目会定期进行精炼和去重。

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}$。一个元层级智能体会在给定任务 $\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)$。

元上下文工程(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 轨迹以及状态更新。
  • mete-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 的核心设计约束,其中每一项主张(引用、数值、方法、结论)都必须追溯到证据来源,并通过 Chain-of-Evidence 检查进行审计。

AI Scientist 流水线,用于想法生成、实验、论文写作与评审。(图片来源:Lu et al. 2026

Autodata 智能体(Kulikov et al. 2026)被设计为像数据科学家一样工作,用于生成训练和评估数据。主智能体管理一个提出问题的 challenger、一个 weak solver、一个 strong solver 以及一个 verifier/judge,目标是在“恰到好处”的难度水平上合成数据,即 strong solver 成功而 weak solver 失败。

在 Autodata 中,挑战者提示词会根据求解器和验证器的反馈进行迭代更新。这里的局限在于,合成任务被用于微调弱求解器,而非强求解器;如果这个循环无法迭代地改进强模型,那它更像是在一个生成的提示词分布上进行间接蒸馏,RSI 的意味更弱。

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

工作流的设计空间极其庞大,我们自然可以把工作流设计视为一个搜索问题,因此应当能够通过算法找到好的解决方案,而不只是靠人工手工打造。沿着这个方向,智能体系统的自动化设计(ADAS;Hu et al. 2025)将智能体设计本身形式化为一个优化问题,即“元智能体搜索”,由一个元智能体提出新的智能体工作流设计。

  1. 用一个智能体工作流档案库进行初始化,其中包含 CoT、self-refine 等简单智能体。
  2. Ask a meta-agent to program new agents, all in code, inspired by existing solutions in the archive.
    • 元智能体首先生成新工作流的高层描述,然后用代码将其实现。
    • 随后,这份草拟程序会经过元智能体的两个 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. 执行并评估新的工作流。
  5. 如果新工作流在 $N$ 轮的预算内表现出改进,则将其加回树中。
  6. 重复步骤 2-5,当 top-$k$ 平均分数趋于平稳或达到预算时停止。
AFlow 在候选工作流树上的优化过程。(图片来源:Zhang et al. 2025

AFlow 在问答、代码和数学任务中的实验表明,相比人工设计的工作流和 ADAS,AFlow 取得了不错的提升。

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

自我改进的 Harness

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

自教优化器(STOP;Zelikman 等人 2023)是递归式脚手架改进的早期范例之一。在步骤 $t=0$ 时,一个种子改进器 $I_0$ 接收一个初始解 $s$、一个效用函数 $u$ 以及一个黑盒语言模型 $M$,并返回一个改进后的解 $s’$,即 $s’ = I(u, s; M)$。STOP 的目标并非直接改进 $s$,而是改进改进器 $I$ 本身

首先,让我们将元效用定义为给定改进器函数 $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 等人 2023

在他们的实验中,改进后的改进器发现了多种策略,例如遗传算法、分解并改进各部分、多臂提示词老虎机、模拟退火、变化温度以及束搜索/树搜索。这类似于将 harness 工作流表示为一个可供优化的对象。

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

Zelikman et al.(2023)的研究结果中有一个警示性发现:STOP 在使用 GPT-4 时能够随着迭代提升平均下游性能,但在 GPT-3.5 和 Mixtral 等较弱模型上反而出现退化。仅靠递归结构是不够的。基础模型必须足够强大,才能改进这一机制。这意味着 harness 的改进能够使模型得到更好的部署,但智能仍然是核心。

Lin et al.(2026)更详细地研究了 harness 演化对模型能力的依赖关系。他们拆解出两个维度:(1)harness 更新指的是产出有用 harness 编辑的能力;(2)harness 收益指的是利用更新后的 harness 来更好地解决任务的能力。有趣的是,在他们的实验中,从 Qwen3.5-9B 到 Claude Opus 4.6 等一系列不同规模和核心智能水平的模型,都表现出相似的 harness 更新能力;9B 的 harness 提议者/演化者能够写出与 Opus 在程序上同构的技能。要最好地利用 harness,模型需要正确且及时地调用技能/工具,并擅长长时程指令遵循。

主要结果:(A)harness 更新能力在从 Qwen2-32B 到 Opus 4.6 的一系列模型上测得基本持平;(B)harness 收益能力呈非单调关系,中间层级的模型获益最多。(图片来源:Lin et al. 2026

一项更近期的研究,Self-HarnessZhang et al. 2026),依赖 LLM 智能体通过“提议-评估-接受”循环来改进自身的 harness。

Self-Harness 使用一个由弱点挖掘、有界 harness 提议和验证组成的循环来更新 harness。(图片来源:Zhang et al. 2026

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

  1. Weakness mining: cluster failures into verifier-grounded failure patterns.
    • 使用当前 harness $h_t$ 在任务上进行评估,并收集执行轨迹用于分析。
    • 需要注意的是,两次运行在错误日志表面上可能共享相同的验证器结果,例如超时或缺失产物,但其因果机制却不同。因此,我们需要一份信息丰富的失败记录,包含终端验证器层面的原因、相关智能体行为的因果状态,以及轨迹所揭示的抽象智能体机制,以揭示根本原因。
  2. Harness proposal: propose bounded harness edits based on mined failure patterns.
    • 在 $h_t$ 下调用同一个模型作为提议者。
    • 模型被提供一个有界的提议上下文:(1) 当前 harness 的可编辑表面,(2) 来自评估系统的、以验证器为依据的失败模式,(3) 应当保留的通过行为记录,以及 (4) 先前尝试过的编辑的摘要。
    • harness 编辑应优先考虑可解决的反复出现的错误模式(例如,不是任务特定的难度),并且可以通过窄范围的改动来解决。
    • Harness 编辑候选应当彼此不同且多样。
  3. Proposal validation: validate and merge qualified edits to create a new harness $h_{t+1}$.
    • 候选编辑通过在留入集 $D_\text{in}$(用于测试弱点是否已解决)和留出集 $D_\text{out}$(用于检查是否引入了其他未知问题)划分上的回归测试来评估。
    • 只有当候选在留入集和留出集数据上均无回归时,才会被接受。
    • 被接受的候选会被合并,以将 harness 更新为 $h_{t+1}$,而被拒绝的候选则会被记录,但不改变当前生效的 harness。

在 Terminal-Bench-2 上运行 MiniMax M2.5Qwen3.5-35B-A3BGLM-5 时,Self-Harness 被证明能够学习到针对不同基础模型不同弱点的模型专属 harness 指令,并提升留出集的通过率。

Self-harness 这类工作确实引发了我的担忧:如果允许程序编辑操作系统,抽象边界就会被打破。可编辑面需要被妥善设计,权限控制和安全层需要位于这个循环之外。围绕 reward hacking 的所有挑战依然存在。

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

该框架构建了一个闭环,包含 3 个可观测性支柱:

  1. Component observability: every editable harness component has a representation in the file system so the action space is explicit and tracable.
    • 一个 harness 包含 7 个组件:系统提示词、工具描述、工具实现、中间件、技能、子智能体配置和长期记忆。
    • 每种失败模式都映射到一个组件,从而使编辑更具针对性。
  2. Experience observability: analysize and summarize a large amount of raw trajectories into a hierarchy of evidence and failure patterns.
    • 每个 harness 生成 $k$ 条轨迹。
    • 使用一个智能体(“Agent debugger”)来分析各自存储在一个文件中的轨迹,并针对每个任务生成关于失败或成功根因的分析报告。
    • 所有按任务划分的报告会被汇总为一份基准概览,供下一步使用;如有需要,也可以访问原始轨迹。这种分层访问结构在 token 使用上更高效。
  3. Decision observability: every edit is paired with a prediction for the next round to validate.
    • 一个智能体(“Evolve agent”)读取仓库,决定要编辑哪个组件,然后产出编辑内容及其背后的推理。
    • Every edit is a file-level, falsifiable claim and can be verified in the next round, under two constraints:
      • (1)编辑仅应用于 harness 工作区。runs 目录、tracer、verifier 和 LLM 配置均为只读,这消除了一系列奖励黑客行为(例如禁用 verifier、替换模型或提高推理预算),因此可以确保每一项记录在案的收益都可归因于 harness 编辑。
      • (2) 编辑是证据驱动的,并附有一条宣言式条目:失败证据的名称、推断出的根因、针对性的修复方案,以及预测的影响,其中既包括预期修复的问题,也包括可能面临风险的回归。

在 Terminal-Bench-2 上,AHE 取得了优于人工设计的 harness(OpenCode、Terminus-2、Codex)的成绩,但 Hard 层级以及少数其他自进化基线(ACE、TF-GRPO)除外。同一个冻结的 harness,在不再进一步进化的情况下,迁移到了 SWE-bench-verified 上,这表明进化后的 harness 能够将工程经验编码进 harness 组件中,而不是进行针对特定基准的优化。

进化搜索

进化搜索是一种受自然选择启发的优化方法(参见我早前关于进化算法的文章)。它通过变异一组解,并且只保留群体中那些“适应度”高的解,来对解进行进化。当 (1) 搜索空间庞大或形状怪异,且 (2) 难以直接用梯度进行优化但容易评估解时,进化搜索就派上了用场。Harness 搜索似乎很适合这一方法。

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

Novikov 等(2025)提出了 AlphaEvolve,作为一个编码智能体进化搜索系统,它维护一个候选程序池,并提示冻结的 LLM 生成用于改进的 diff。随着系统反复评估子程序并保留成功的程序,它随时间推移发现了更好的解决方案。

AlphaEvolve 的工作原理。(图片来源:Novikov 等,2025

在 AlphaEvolve 的设计中,有几个细节至关重要:

  • 提示词包含父程序、结果、指令,有时还包含元信息。
  • 编码智能体可以访问完整的代码仓库,但待改进的代码区域会用 # EVOLVE-BLOCK-START# EVOLVE-BLOCK-END 显式标记。
  • 元提示词与指令和上下文共同演化,正如 LLM 所建议的那样,其方式与我们演化求解程序的方式类似。

消融实验展示了演化过程、提示词中的上下文、元提示词、全文件演化以及使用更强 LLM 的作用。

消融实验展示了 AlphaEvolve 中若干设计的价值。(图片来源:Novikov 等,2025

近期的变体如 ThetaEvolveWang 等,2025)将演化搜索与 RL 和上下文学习相结合,而 DemoEvolveChe 等,2026)则用人类专家演示来增强自 rollout 存档,作为用于 harness 级诊断和编辑的参考经验。另一方面,ShinkaEvolveLange 等,2025)引入了三个新组件来提升 LLM 采样效率:

  • 通过设计父代采样来平衡性能排名和后代数量,从而实现更高效的样本探索。
  • 基于嵌入向量的余弦相似度,丢弃与现有种群过于相似的候选方案,从而实现代码新颖性拒绝采样。
  • 在元草稿本中识别成功方案中的良好模式,以指导未来的变异。

与上述聚焦于解决方案改进的方法不同,Darwin Gödel Machine(DGM;Zhang et al. 2025)明确以基于 LLM 的编程智能体来演化一个可编辑的 harness 代码仓库为目标。具体而言,该智能体被允许修改自身的 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 作为基础 LLM 以及简单初始 harness 配置的实验中,DGM 发现的智能体在 SWE-bench Verified(20% 到 50%)和 Polyglot(14.2% 到 30.7%)上与手工设计的智能体相当或更优。

当候选解可以自动评估、且候选适应度易于量化时,这一系列方法效果很好,例如矩阵乘法、GPU kernel 优化、算法竞赛、数据中心调度。但在评估缓慢、模糊或主要依赖启发式的领域,它就会举步维艰。进化的计算效率与有效性也是值得关注的问题。

与模型权重联合优化

Harness 进化改变的是模型周围的非参数化系统。为了实现完全的自我改进,完全可以允许模型同时更新自己的权重。权重更新可以通过改进模型训练流程或测试时的持续学习来实现。持续学习这一主题值得未来单独写一篇文章。

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

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

SIA 的实验中有一些混杂的选择,使得结果难以解读。例如,任务专用智能体比用于 Meta-Agent 和 Feedback-Agent 的模型弱得多(gpt-oss-120bClaude Sonnet 4.6),而且基线太弱,无法与相关方法进行清晰的交叉对比。我认为这个方向很有趣,但证据尚属初步。然而,许多挑战,例如训练稳定性和 Goodhart 效应,仍然悬而未决。

Continual HarnessKarten et al. 2026)在长时程游戏环境中进行了实验,通过 harness 更新,并借助在低奖励轨迹上蒸馏强教师模型的标签来协同学习策略模型。

未来挑战

AI Scientist 这一系列工作有力地证明了,专家设计的 harness 可以协调自动研究循环中的很大一部分,并以撰写研究论文的形式进行了实验。但论文产出并不等同于科学发现。一个系统可以写出一篇看似合理的手稿,却仍然存在捏造的引用、实现漂移或实验结论薄弱的问题。

Trehan & Chopra(2026)测试了 LLM 能否在极少脚手架和基础工具(即 read_filewrite_filellm_searchlist_files)的条件下,从一个研究想法走到一篇论文。每个想法都有一个专属工作区,智能体可以在其中生成和读取文档,作为上下文的一部分。他们在三个领域(世界模型、多智能体 RL、AI 安全与对齐)进行了实验,每个领域包含 45-50 篇高质量种子文档,用于激发新想法。只有四个想法被人类专家选中进入完整流程,而只有一个被完整执行成一篇论文。他们在实验中观察到六种反复出现的失败模式:

  • 偏向训练数据默认值:使用旧库、过时命令、标准格式,或并非基于实际代码仓库或数据集的假设。
  • 执行压力下的实现漂移:当实现变得技术上复杂时,模型可能会转向一种常见的更简单方案,而不是所提出的方法。
  • 记忆与上下文退化:长周期项目会丢失关键细节,除非日志被写成持久化产物。
  • 过度乐观:即便实验噪声很大或已经失败,模型仍宣称成功,这与 Bubeck et al.(2025)观察到的“p-hacking 和 eureka-ing”模式类似,即模型可能引入“数值胶带”,并在信号仍是噪声时宣布胜利。
  • 领域智能不足:模型缺乏隐性的工艺知识,例如预测实现复杂度、判断某个实验结果是否合理,或知道哪些基线才重要。
  • 科学品味薄弱:实验或许可以执行,但无法回答正确的问题。

在迈向完全 RSI 的道路上,研究者已经取得了切实的进展,但仍有若干瓶颈存在。

1. 评估器薄弱且模糊。许多研究主张没有快速而精确的验证器,许多现实世界任务同样如此。当前的自改进循环在评估指标可度量且客观的任务上效果最好,这与RL 的工作方式类似。

研究品味、新颖性和长期科学价值则要难衡量得多。例如,研究品味往往混合了问题界定、实验设计,以及对哪些意外结果值得继续追求、哪些失败案例值得重试的判断。

2. 上下文与记忆的生命周期。随着 AI 智能体变得更加自主和独立,记忆也会不断增长。一个有用的 harness 需要管理上下文和记忆,以弥补长上下文生成中现有的局限,同时仍然最大化长时程任务的成功率。既然人类能够在一生中维持记忆,我认为这里有一个类比:上下文工程将会也应当成为智能的核心组成部分,而不是停留在软件系统层。

3. 负面结果。 研究人员受到激励去发表成功的结果,因此文献对成功存在偏向。大语言模型在大量数据(至少目前大多由人类创造,哈哈)上训练,可能因为数据中成功与失败案例的不平衡,而不擅长判断何时该放弃一个假设、报告一个负面结果,甚至承认失败。一个研究框架应当让失败的尝试易于保存,因为从失败中学习是缩小任务搜索空间的最佳方式。

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

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

评估器和权限控制很可能应当置于演化研究框架的循环之外,并配备留出测试、轨迹审计,以及在关键决策点上进行人工审查——监督能在多大程度上扩展和自动化,仍是一个开放的研究领域。

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: replicate 20 ICML 2024 Spotlight and Oral papers from scratch, including understanding paper contributions, developing a codebase, and successfully executing experiments.
    • 每个复现任务都被分解为更小的、可单独评分的任务。
    • 总共 8,316 条评分细则,与论文作者共同开发。
    • 当时最好的模型(Claude 3.5 Sonnet,约 21%)并未超过机器学习博士。
    • 包含 PaperBench、PaperBench Code-Dev(轻量版)以及 JudgeEval。
  • CORE-Bench: evaluate computational reproducibility of published research.
    • 基于计算机科学、社会科学和医学领域的 90 篇科学论文,构建了 270 个任务。
    • 任务涉及利用所提供的代码和数据复现结果。
    • 包含多个难度级别,以及纯语言任务和视觉-语言任务。
    • 当时报告的最佳智能体(GPT-4oGPT-4o-mini)在最难的任务上仅达到 21% 的准确率。
  • ScienceAgentBench: evaluate LLM agents for data-driven scientific discovery.
    • 从四个学科(数学、化学、生物学、地理学)的 44 篇同行评审出版物中提取了 102 个任务。
    • 涵盖这些领域的基础数据科学任务:数据处理、模型开发、数据分析和信息可视化。
  • RE-Bench: evaluate frontier AI agents on realistic ML research-engineering envs against human experts.
    • 7 个具有挑战性的、开放式的机器学习研究工程环境。
    • 每个环境 =(评分函数、起始解、参考解);每个环境都可以在 8 块或更少的 H100 GPU 上运行。
    • 示例:优化 kernel、运行缩放律实验、修复嵌入向量、为问答任务微调 GPT-2,等等。
    • 包含来自 61 位不同人类专家的 71 次八小时尝试的数据。
    • 人类专家在 82% 的 8 小时尝试中取得了非零分数;24% 达到或超过了强参考解。
    • 在 2 小时预算下,最佳 AI 智能体的得分是人类专家的 4 倍,但人类在更长预算下的回报更高,并在 8 小时和 32 小时设置下超过了智能体。
  • MLE-bench: evaluate ML engineering agents on offline Kaggle competitions.
    • 包含从 Kaggle 精选的 75 个机器学习工程竞赛。
    • 测试训练模型、准备数据集、运行实验,以及向评分脚本提交预测。
    • 使用 Kaggle 公开排行榜作为人类基线。
    • 论文中的最佳配置,o1-preview 搭配 AIDE 脚手架,在 16.9% 的竞赛中至少达到了 Kaggle 铜牌水平。
    • 包含资源缩放和污染分析。
  • KernelBench: evaluate correctness and speed for generated GPU kernels.
    • 250 个 PyTorch 任务,用于评估 LLM 能否编写快速且正确的 kernel。
    • 评估指标 fast_p = 生成的 kernel 中既正确又比基线更快的百分比。

参考文献

[1] Good, I. J. “关于第一台超智能机器的推测。” Advances in Computers, 6:31–88, 1965.

[2] Yudkowsky, Eliezer. “递归式自我改进。” LessWrong, 2008.

[3] Choi, et al. “用于代码修复的锚定自我对弈。” ICML 2026.

[4] Zhao, et al. “绝对零度:零数据的强化自我对弈推理。” arXiv preprint arXiv:2505.03335, 2025.

[5] Yuan, et al. “自我奖励语言模型。” arXiv preprint arXiv:2401.10020, 2024.

[6] Chen, et al. “自我对弈微调将弱语言模型转化为强语言模型。” ICML 2024.

[7] Zhang, et al. “智能体上下文工程:为自我改进语言模型演化上下文。” ICLR 2026.

[8] Ye, et al. “通过智能体技能演化的元上下文工程。” arXiv preprint arXiv:2601.21557, 2026.

[9] Lee 等,“Meta-Harness:模型 Harness 的端到端优化。” arXiv 预印本 arXiv:2603.28052,2026。

[10] Lu 等,“迈向 AI 研究的端到端自动化。” Nature,651:914–919,2026。

[11] Meng 等,“ScientistOne:通过证据链迈向人类水平的自主研究。” arXiv 预印本 arXiv:2605.26340,2026。

[12] Kulikov 等,“Autodata:一个用于创建高质量合成数据的智能体数据科学家。” arXiv 预印本 arXiv:2606.25996,2026。

[13] Hu、Lu 和 Clune。“智能体系统的自动化设计。” ICLR 2025。

[14] Madaan 等,“Self-Refine:借助自我反馈的迭代式精炼。” NeurIPS 2023。

[15] Zhang 等,“AFlow:自动化生成智能体工作流。” ICLR 2025。

[16] Zelikman 等,“自学优化器(STOP):递归式自我改进的代码生成。” COLM 2024。

[17] Zhang 等,“Self-Harness:能够自我改进的 Harness。” arXiv 预印本 arXiv:2606.09498,2026。

[18] Fernando 等,“Promptbreeder:通过提示词进化实现自指式自我改进。” arXiv 预印本 arXiv:2309.16797,2023。

[19] Agrawal, A. 等,“GEPA:反思式提示词进化可超越强化学习。” arXiv 预印本 arXiv:2507.19457,2025。

[20] Novikov 等,“AlphaEvolve:面向科学与算法发现的编程智能体。” arXiv 预印本 arXiv:2506.13131,2025。

[21] Lange、Imajuku 和 Cetin,“ShinkaEvolve:迈向开放式且样本高效的程序进化。” arXiv 预印本 arXiv:2509.19349,2025。

[22] Wang 等,“ThetaEvolve:在开放问题上的测试时学习。” arXiv 预印本 arXiv:2511.23473,2025。

[23] Zhang 等,“Darwin Gödel Machine:自我改进智能体的开放式进化。” arXiv 预印本 arXiv:2505.22954,2025。

[24] Zhang 等,“Hyperagents。” arXiv 预印本 arXiv:2603.19461,2026。

[25] Yuksekgonul 等,“在测试时学习发现。” arXiv 预印本 arXiv:2601.16175,2026。

[26] Riaz 等,“面向测试时发现的认识不确定性。” arXiv 预印本 arXiv:2605.11328,2026。

[27] Hebbar 等,“SIA:通过 Harness 与权重更新实现自我改进的 AI。” arXiv 预印本 arXiv:2605.27276,2026。

[28] Trehan 与 Chopra。“为什么 LLM 还不是科学家:来自四次自主研究尝试的经验教训。” arXiv 预印本 arXiv:2601.03315,2026。

[29] Bubeck 等,“使用 GPT-5 的早期科学加速实验。” arXiv 预印本 arXiv:2511.16072,2025。

[30] Starace 等,“PaperBench:评估 AI 复现 AI 研究的能力。” ICML 2025。

[31] Wijk 等,“RE-Bench:在人类专家对照下评估语言模型智能体的前沿 AI 研发能力。” ICML 2025。

[32] Chan 等,“MLE-bench:在机器学习工程任务上评估机器学习智能体。” arXiv 预印本 arXiv:2410.07095,2024。

[33] Chen 等,“ScienceAgentBench:面向数据驱动科学发现的语言智能体的严格评估。” ICLR 2025。

[34] Siegel 等,“CORE-Bench:通过计算可复现性智能体基准促进已发表研究的可信度。” TMLR 2024。

[35] Ouyang 等,“KernelBench:LLM 能否编写高效的 GPU 内核?” arXiv 预印本 arXiv:2502.10517,2025。

[36] Lin 等,“Harness 更新不等于 Harness 收益:解耦自进化 LLM 智能体中的进化能力。” arXiv 预印本 arXiv:2605.30621,2026。

[37] Lin 等,“智能体 Harness 工程:可观测性驱动的编码智能体 Harness 自动进化。” arXiv 预印本 arXiv:2604.25850,2026。

[38] Karten 等,“持续 Harness:面向自我改进基础智能体的在线适应。” arXiv 预印本 arXiv:2605.09998,2026。

[39] Che 等,“DemoEvolve:利用演示克服智能体 Harness 进化中的稀疏反馈。” arXiv 预印本 arXiv:2605.24539,2026。

来源:Lilian Weng:Lil'Log(RSS)· lilianweng.github.io