---
title: "驾驭设计模式"
title_en: "AI Self-Improvement Starts Outside the Model: Lilian Weng on Harness Engineering"
source: "lilianweng.github.io"
source_url: "https://lilianweng.github.io/posts/2026-07-04-harness/"
published_at: "2026-07-09T00:00:00.000Z"
language: "zh-CN"
topics: ["openai"]
tags: ["研究解读","Harness工程","递归自我改进","AI Agent架构"]
review_status: "unreviewed"
---

# 驾驭设计模式

> 本文探讨了AI部署中“驾驭”（Harness）系统的设计模式与优化方法，以及如何通过驾驭工程实现递归自我改进（RSI）。

## 内容摘要

文章聚焦于AI系统中的“驾驭”层——围绕基础模型的编排系统，负责执行、工具调用、上下文管理和评估。作者提出了三种设计模式：工作流自动化、文件系统作为持久记忆、子代理和后端任务。随后深入讨论了驾驭优化的多个方向，包括上下文工程（如ACE、MCE）、工作流设计（如ADAS、AFlow）、自我改进的驾驭（如STOP、Self-Harness）、进化搜索（如AlphaEvolve、DGM）以及与模型权重的

## 为什么值得关注

驾驭系统是AI从模型到实际应用的关键桥梁，其设计直接影响AI代理的自主性、效率和自我改进能力。理解驾驭工程有助于把握AI系统如何通过优化外部机制而非仅依赖模型权重来实现持续进步，这对AI安全、可扩展性和长期发展至关重要。

## 核心要点

- 驾驭是AI部署中连接模型与真实世界的系统，包含工作流、工具、记忆和评估。
- 三种核心设计模式：工作流自动化、文件系统持久记忆、子代理并行执行。
- 上下文工程从简单提示演进为结构化、自我管理的上下文手册（如ACE、MCE）。
- 自我改进的驾驭通过代码优化自身，如STOP和Self-Harness。
- 进化搜索（如AlphaEvolve、DGM）在代码空间中搜索更优的驾驭方案。
- 未来挑战包括评估器薄弱、记忆管理、多样性崩溃和奖励黑客等。

- [驾驭设计模式](https://lilianweng.github.io/posts/2026-07-04-harness/#harness-design-patterns)

[模式 1：工作流自动化](https://lilianweng.github.io/posts/2026-07-04-harness/#pattern-1-workflow-automation)

[模式 2：文件系统作为持久记忆](https://lilianweng.github.io/posts/2026-07-04-harness/#pattern-2-file-system-as-persistent-memory)

[模式 3：子代理和后端任务](https://lilianweng.github.io/posts/2026-07-04-harness/#pattern-3-sub-agent-and-backend-jobs)

[案例研究：编码代理驾驭](https://lilianweng.github.io/posts/2026-07-04-harness/#case-study-coding-agent-harness)

[驾驭层 vs 核心智能？](https://lilianweng.github.io/posts/2026-07-04-harness/#harness-layer-vs-core-intelligence)

- [模式 1：工作流自动化](https://lilianweng.github.io/posts/2026-07-04-harness/#pattern-1-workflow-automation)

- [模式 2：文件系统作为持久记忆](https://lilianweng.github.io/posts/2026-07-04-harness/#pattern-2-file-system-as-persistent-memory)

- [模式 3：子代理和后端任务](https://lilianweng.github.io/posts/2026-07-04-harness/#pattern-3-sub-agent-and-backend-jobs)

- [案例研究：编码代理驾驭](https://lilianweng.github.io/posts/2026-07-04-harness/#case-study-coding-agent-harness)

- [驾驭层 vs 核心智能？](https://lilianweng.github.io/posts/2026-07-04-harness/#harness-layer-vs-core-intelligence)

- [驾驭优化](https://lilianweng.github.io/posts/2026-07-04-harness/#harness-optimization)

[上下文工程](https://lilianweng.github.io/posts/2026-07-04-harness/#context-engineering)

[工作流设计](https://lilianweng.github.io/posts/2026-07-04-harness/#workflow-design)

[自我改进的驾驭](https://lilianweng.github.io/posts/2026-07-04-harness/#self-improving-harness)

[进化搜索](https://lilianweng.github.io/posts/2026-07-04-harness/#evolutionary-search)

[与模型权重的联合优化](https://lilianweng.github.io/posts/2026-07-04-harness/#joint-optimization-with-model-weights)

- [上下文工程](https://lilianweng.github.io/posts/2026-07-04-harness/#context-engineering)

- [工作流设计](https://lilianweng.github.io/posts/2026-07-04-harness/#workflow-design)

- [自我改进的驾驭](https://lilianweng.github.io/posts/2026-07-04-harness/#self-improving-harness)

- [进化搜索](https://lilianweng.github.io/posts/2026-07-04-harness/#evolutionary-search)

- [与模型权重的联合优化](https://lilianweng.github.io/posts/2026-07-04-harness/#joint-optimization-with-model-weights)

- [未来挑战](https://lilianweng.github.io/posts/2026-07-04-harness/#future-challenges)

- [引用](https://lilianweng.github.io/posts/2026-07-04-harness/#citation)

- [附录：一些有用的基准测试](https://lilianweng.github.io/posts/2026-07-04-harness/#appendix-some-useful-benchmarks)

- [参考文献](https://lilianweng.github.io/posts/2026-07-04-harness/#references)

递归自我改进（RSI）这个概念可以追溯到 [I. J. Good (1965)](https://philpapers.org/rec/GOOSCT)，他定义了一个“超智能机器”——一个能在所有智力活动上超越人类，并能设计出更好的机器来改进自身的系统。[Yudkowsky (2008)](https://www.lesswrong.com/posts/JBadX7rwdcRFzGuju/recursive-self-improvement) 用“递归自我改进”这个词来描述一个特定的反馈循环：AI 利用它当前的智能来改进产生其智能的认知机制。

在现代 AI 中，这个反馈循环可能意味着模型直接重写自己的权重，或者更广泛地说，模型改进了训练流程和部署系统，从而让后续的模型变得更好，在经济上有价值的任务上表现更佳。研究表明，在顶尖实验室（[Anthropic](https://www.anthropic.com/institute/recursive-self-improvement)；[OpenAI](https://openai.com/index/how-agents-are-transforming-work/)），AI 研究开发的速度已经大幅加快。

我特意提到“部署系统”，是因为原始模型和真实世界上下文之间的那一层，似乎和模型的原始智能（也就是预训练后的评估结果）一样重要。驾驭（Harness）是 AI 部署的重要组成部分，像 Claude Code 和 Codex 这样成功的编码代理产品就证明了这一点。驾驭是围绕基础模型的一个系统，它负责编排执行过程，并决定模型如何思考和规划、如何调用工具和行动、如何感知和管理上下文、如何存储产物，以及如何评估结果。

这篇文章将重点讨论围绕驾驭工程的研究，以及它如何为 RSI 做出贡献。最近很多关于自动研究、自我改进代理和进化程序搜索的工作，都可以围绕这个问题来组织。其他关于模型自我对弈、合成数据、测试时训练以及更广泛的持续学习主题的工作，也符合 RSI 的愿景（例如 [Yuan et al. 2024](https://arxiv.org/abs/2401.10020)、[Chen et al. 2024](https://arxiv.org/abs/2401.01335)、[Zhao et al. 2025](https://arxiv.org/abs/2505.03335)、[Choi et al. 2026](https://openreview.net/forum?id=lTbBFAoPSA)），但它们不是本文的重点。

# 驾驭设计模式

与早期的代理框架相比，“代理 = 大语言模型 + 记忆 + 工具 + 规划 + 行动”，驾驭工程还额外包括了工作流设计（比如循环工程）、评估、权限控制和持久状态管理。它不再只是提示模板，而是更接近运行时和软件系统设计：模型如何观察、行动、记忆、自我检查和改进。

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

## 模式 1：工作流自动化

定义一个模型可以操作、测试和迭代的工作流，是实现自动化的关键设计。Karpathy 的 autoresearch 仓库（[https://github.com/karpathy/autoresearch](https://github.com/karpathy/autoresearch)）是一个清晰的例子，展示了如何构建这样一个工作流。一个常见的工作流遵循一个以目标为导向的循环：规划、执行、观察/测试、改进，然后再次执行，直到目标达成。在这个过程中，模型可能会主动向用户请求澄清任务说明或执行偏好。

工作流图还强调了模型分析自己的轨迹和失败案例，然后通过“代理运行时”而不是静态的提示模板来迭代其进展。

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

在长期运行的代理系统中，一个反复出现的模式是对丰富状态和产物的简单控制。驾驭不应该把整个工作流和所有日志都放在上下文中；相反，它应该把持久状态保存在文件中。在长期代理的展开过程中，像实验日志、代码差异、论文摘要、错误追踪和过去的展开轨迹这样的产物，往往会变得比模型训练时使用的上下文窗口长得多。

学习如何读写和编辑文件系统（通常通过 bash 命令）是大语言模型的一项基础技能。因此，以简单的文件形式管理持久记忆，自然会受益于核心模型能力的提升。

## 模式 3：子代理和后端任务

一个驾驭可以生成多个子代理来并行执行，并监控后端任务。当主代理需要搜索多个假设、同时运行实验，或者委托独立的子任务而不污染主上下文时，这非常有用。父代理需要一个小的进程管理器：启动任务、检查日志、取消失败的运行，并将结果合并回主代理线程。

关键的设计选择是让并行性变得明确且可检查。如果子代理的输出只存在于一个临时的聊天上下文中，它们很快就会变得过时和隐藏。如果它们被存储为文件、日志和状态记录，模型就可以在中断后恢复，并基于自己的执行历史进行推理。

## 案例研究：编码代理驾驭

主流编码代理的核心接口在 Claude Code、Codex、OpenCode 和 Cursor 风格的代理中已经趋于稳定。它们通常使用一个类似的循环：

通过访问一组工具，编码代理能够在一个给定的代码仓库中开发和调试问题，就像人类开发者配备了集成开发环境（IDE）一样。

（这不是一个完整的列表；仅用于演示。如果感兴趣，可以阅读[这个](https://github.com/yasasbanukaofficial/claude-code)。）

## 驾驭层 vs 核心智能？

很难预测 RSI 的未来在多大程度上会依赖驾驭工程，但 RSI 在短期内的实际路径不太可能从模型直接重写自己的权重开始。我对近期实际路径的预测是：

- 驾驭工程将朝着元方法论的方向发展（即改进获取更好答案的机制，而不仅仅是改进答案本身）。驾驭系统本身成为一个优化目标，启发式规则更少，通用机制更多。

- 反过来，成熟的驾驭能够实现用于模型自我改进循环的自动研究，而更智能的模型则能防止驾驭过度工程化，保持系统的可持续性。

最终，许多驾驭的改进可能会被内化到核心模型行为中，但与外部上下文和工具的接口应该会保留。我们在[提示工程](https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/)中已经看到了这种模式的较软版本：随着指令微调和模型推理能力的提升，手动提示技巧变得不那么重要，但指定目标、约束、上下文和评估的需求并没有消失。

# 驾驭优化

在驾驭系统中，被优化的对象大致经历了这样的演进：指令[提示](https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/) → 结构化上下文 → 工作流 → 驾驭代码 → 优化器代码。随着模型变得越来越智能和强大，我们朝着更复杂的目标和更通用的方法迈进。

## 上下文工程

简单地将所有工具响应和模型生成内容附加到上下文中，随着代理任务的时间跨度显著增加，会迅速失控。上下文管理是一个层，用于为大语言模型构建更结构化、更简洁的上下文，并管理持久状态。毫无疑问，长上下文研究会不断取得进展，但目前，长上下文智能和上下文工程有时会交织在一起。

代理上下文工程（ACE；[Zhang et al. 2025](https://arxiv.org/abs/2510.04618)）将上下文视为一个不断演化的操作手册，而不是一个越来越长的提示。它有三个组件来维护一个由要点组成的上下文手册，每个要点都有一个标识符和描述。

- 生成器：生成任务轨迹，并引用要点。

- 反思器：从成功和失败的轨迹中提炼见解。

- 策展人：用增量的、逐条列出的条目更新结构化上下文。

为了防止在迭代重写过程中出现上下文崩溃和简洁性偏差，ACE 的一个关键设计选择是，策展人不会重写一个完整的提示块。相反，它输出一个结构化的、逐条列出的要点集合，形式为（标识符，描述），这些要点通过确定性逻辑合并到一个结构化的上下文日志簿中。上下文条目会定期进行精炼和去重。

ACE 从展开过程中学习见解这一事实，帮助我们朝着自我管理的记忆迈进，但更新规则和整体工作流仍然是手工制作的。为了迈向一个更具自我改进能力的循环，元上下文工程（MCE；[Ye et al. 2026](https://arxiv.org/abs/2601.21557)）将机制（如何管理上下文）与产物内容（上下文中有什么）分离开来，在元优化层面运行技能进化，在基础层面运行上下文优化。

一个 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^*$，而外层循环则找到在验证集上提供最佳性能的最优技能：

技能数据库追踪先前技能、上下文函数和评估指标的历史 $\mathcal{H}_{k-1} = \{(s_i,c_i,J_i^\text{train}, J_i^\text{val})\}_{i=1}^{k-1}$。一个元级代理对先前的技能执行代理[交叉](https://en.wikipedia.org/wiki/Crossover_(evolutionary_algorithm))，以针对给定任务 $\tau$ 创建一个新技能：$s_k=\text{crossover}(\tau,\mathcal{H}_{k-1})$。

然后，一个基础级上下文工程师执行技能 $s_k$，并根据当前技能从展开反馈 $\mathcal{R}_k$ 中学习上下文函数：$c_k=\text{engineer}(\tau,s_k;c_{k-1}^*,\mathcal{R}_k)$。

MCE 不像 ACE 那样强制执行如何构建上下文的启发式规则。它使用自由形式的技能来存储任务最重要的知识，并迭代地共同进化技能和技能条件化的上下文。在实现上，上下文函数 $c$ 被实例化为一个专用目录中的文件集合，包括静态（skill.md）和动态（上下文和数据展开）组件。元级和基础级优化都在使用标准工具集的代理编码环境中执行。

元驾驭（[Lee et al. 2026](https://arxiv.org/abs/2603.28052)）又深入了一层：被优化的对象是决定和优化哪些信息应该被存储、检索和呈现给模型的代码。其名称中的“元”意味着它是一个用于优化驾驭的驾驭。

用于创建新驾驭的提议者本身就是一个编码代理，最终输出是帕累托前沿上的一组驾驭候选。

- 整个执行历史可以通过文件系统访问，因此编码代理使用像 grep 或 cat 这样的命令来读取它，而不是把所有东西都塞进一个提示上下文中。

- 提议的驾驭是文件系统中的一个字典，包含其自身的源代码、分数、展开轨迹和状态更新。

- 元驾驭循环迭代地创建新的驾驭，只有合格的才会被保留。

尽管如此，重要的教训是明确的：一旦驾驭设计成为一个可执行的搜索空间，一个强大的编码代理就可以利用人类工程师使用的相同设计空间。

## 工作流设计

驾驭工程中的工作流设计可以由领域专家手工制作。以自动研究为例，各种框架已经被提出和测试。AI 科学家系统（[Lu et al. 2026](https://www.nature.com/articles/s41586-026-10265-5)）构建了一个流程来提出研究想法、编写代码、运行实验、分析结果、撰写手稿和执行同行评审。[Meng et al. (2026)](https://arxiv.org/abs/2605.26340) 在 ScientistOne 中将可验证性作为核心设计约束，其中每个声明（引用、数值、方法论、结论）都必须追溯到证据来源，并通过证据链检查进行审计。

自动数据代理（[Kulikov et al. 2026](https://arxiv.org/abs/2606.25996)）被设计为像一个数据科学家一样工作，用于生成训练和评估数据。主代理管理一个挑战者（提出问题的）、一个弱求解器、一个强求解器和一个验证器/评判者，旨在合成“恰到好处”难度的数据，这意味着强求解器成功而弱求解器失败。

在 Autodata 中，挑战者提示会根据求解器和验证器的反馈进行迭代更新。这里的局限性在于，合成的任务被用来微调弱求解器，而不是强求解器；如果循环不能迭代地改进强模型，它更像是基于生成的提示分布的间接蒸馏，RSI 的味道较少。

工作流的设计空间是巨大的，我们自然可以将工作流设计视为一个搜索问题，因此我们应该能够通过算法找到好的解决方案，而不仅仅是手动制作。沿着这个方向，代理系统的自动化设计（ADAS；[Hu et al. 2025](https://arxiv.org/abs/2408.08435)）将代理设计本身表述为一个优化问题，即“元代理搜索”，其中元代理提出新的代理工作流设计。

- 用一个包含简单代理（如思维链和自我精炼）的存档来初始化代理工作流。

- 要求一个元代理编程新的代理，全部用代码实现，灵感来自存档中的现有解决方案。

元代理首先生成新工作流的高级描述，然后用代码实现它。
草稿程序随后由元代理经过两个自我精炼步骤（即要求模型提供反馈，然后要求同一个模型基于反馈精炼先前生成的输出；[Madaan et al. 2023](https://arxiv.org/abs/2303.17651)）来检查其新颖性。

- 元代理首先生成新工作流的高级描述，然后用代码实现它。

- 草稿程序随后由元代理经过两个自我精炼步骤（即要求模型提供反馈，然后要求同一个模型基于反馈精炼先前生成的输出；[Madaan et al. 2023](https://arxiv.org/abs/2303.17651)）来检查其新颖性。

- 评估每个新候选，并将成功的添加回存档。

- 重复步骤 2-3，直到达到最大迭代次数。

AFlow（[Zhang et al. 2025](https://arxiv.org/abs/2410.10762)）将代理工作流表示为一个图，其中节点代表调用大语言模型的动作，边实现代码中的逻辑操作。工作流优化依赖于 [MCTS](https://en.wikipedia.org/wiki/Monte_Carlo_tree_search)（蒙特卡洛树搜索）：

- 在树中用一个模板初始化起始工作流 $W_0$。

- 使用分数和均匀探索的软混合选择一个工作流节点。

- 通过要求大语言模型根据其评估性能生成一个修改后的工作流来扩展它。

- 执行并评估新的工作流。

- 如果新工作流在 $N$ 轮预算内显示出改进，则将其添加回树中。

- 重复步骤 2-5，直到前 $k$ 个平均分数趋于平稳或达到预算。

AFlow 在问答、代码和数学任务上的实验显示，与手动设计的工作流和 ADAS 相比，AFlow 有显著的改进。

## 自我改进的驾驭

上下文工程或工作流设计都只是驾驭的一部分。我们需要搜索整个设计空间，并同时优化上下文管理逻辑、工作流、权限和许多其他驾驭组件。正如我们在 Meta-Harness、ADAS 和 AFlow 等工作中所看到的，✨代码✨是定义程序和系统的通用语言。简单来说，驾驭就是用来编程提示、工具调用、子代理、控制流、记忆和工作流逻辑如何协同工作的代码。如果大语言模型能够优化执行代理的代码，它就能访问比手写提示大得多的设计空间。

自修优化器（STOP；[Zelikman et al. 2023](https://arxiv.org/abs/2310.02304)）是递归脚手架改进的早期例子之一。在步骤 $t=0$ 时，一个种子改进器 $I_0$ 接收一个初始解决方案 $s$、一个效用函数 $u$ 和一个黑盒语言模型 $M$，并返回一个改进后的解决方案 $s’$，即 $s’ = I(u, s; M)$。STOP 的目标不是直接改进 $s$，而是改进改进器 $I$ 本身。

首先，让我们将元效用定义为给定改进器函数 $I$ 在一组下游任务 $\mathcal{D}$ 上的平均效用：

因为改进改进器函数本身就是一个优化问题，我们可以通过自我改进更新，基于 $I_{t-1}$ 由元效用衡量的性能，递归地得到 $I_t$ 的新版本：

在 Zelikman et al. (2023) 的实验中，改进后的改进器发现了各种策略，例如遗传算法、分解和改进部分、多臂提示赌博机、模拟退火、变化温度以及波束/树搜索。这类似于驾驭工作流如何被表示为优化的对象。

他们发现的一个警示性结果是，STOP 在使用 GPT-4 时迭代地提高了平均下游性能，但在使用 GPT-3.5 和 Mixtral 等较弱模型时性能下降。仅靠递归结构是不够的。基础模型必须有足够的能力来改进机制。这意味着驾驭改进能够实现更好的模型部署，但智能仍然是核心。

最近的一项工作，自我驾驭（[Zhang et al. 2026](https://arxiv.org/abs/2606.09498)），依赖于大语言模型代理通过一个提议-评估-接受循环来改进它们自己的驾驭。

自我驾驭中的循环有三个阶段：

- 弱点挖掘：将失败聚类为基于验证器的失败模式。

当前驾驭 $h_t$ 被用来评估任务，并收集执行轨迹用于分析。
注意，两次运行在表面上可能共享相同的验证器结果，例如超时或缺少产物，但具有不同的因果机制。因此，我们需要一个包含丰富信息的失败记录，包括终端验证器级别的原因、相关代理行为的因果状态，以及轨迹暴露的抽象代理机制，以揭示根本原因。

- 当前驾驭 $h_t$ 被用来评估任务，并收集执行轨迹用于分析。

- 注意，两次运行在表面上可能共享相同的验证器结果，例如超时或缺少产物，但具有不同的因果机制。因此，我们需要一个包含丰富信息的失败记录，包括终端验证器级别的原因、相关代理行为的因果状态，以及轨迹暴露的抽象代理机制，以揭示根本原因。

- 驾驭提议：基于挖掘出的失败模式提出有边界的驾驭编辑。

同一个模型在 $h_t$ 下被调用作为提议者。
模型被提供一个有边界的提议上下文：(1) 当前驾驭的可编辑表面，(2) 来自评估系统的基于验证器的失败模式，(3) 应该保留的通过行为记录，以及 (4) 先前尝试过的编辑的摘要。
驾驭编辑应优先考虑可解决的重复错误模式（例如，不是特定于任务的难度），并且可以通过狭窄的更改来解决。
驾驭编辑候选应该是独特且多样的。

- 同一个模型在 $h_t$ 下被调用作为提议者。

- 模型被提供一个有边界的提议上下文：(1) 当前驾驭的可编辑表面，(2) 来自评估系统的基于验证器的失败模式，(3) 应该保留的通过行为记录，以及 (4) 先前尝试过的编辑的摘要。

- 驾驭编辑应优先考虑可解决的重复错误模式（例如，不是特定于任务的难度），并且可以通过狭窄的更改来解决。

- 驾驭编辑候选应该是独特且多样的。

- **提案验证**：验证并合并合格的编辑，以创建一个新的 harness $h_{t+1}$。

候选编辑会通过回归测试进行评估，测试分为两部分：保留数据 $D_\text{in}$（用于检查弱点是否被解决）和排除数据 $D_\text{out}$（用于检查是否引入了其他未知问题）。
只有那些在保留数据和排除数据上都没有出现回归的候选编辑才会被接受。
被接受的候选编辑会被合并，以更新 harness 到 $h_{t+1}$，而被拒绝的候选编辑会被记录下来，但不会改变当前的 harness。

- 候选编辑会通过回归测试进行评估，测试分为两部分：保留数据 $D_\text{in}$（用于检查弱点是否被解决）和排除数据 $D_\text{out}$（用于检查是否引入了其他未知问题）。

- 只有那些在保留数据和排除数据上都没有出现回归的候选编辑才会被接受。

- 被接受的候选编辑会被合并，以更新 harness 到 $h_{t+1}$，而被拒绝的候选编辑会被记录下来，但不会改变当前的 harness。

当在 Terminal-Bench-2 上运行 MiniMax M2.5、Qwen3.5-35B-A3B 和 GLM-5 时，Self-Harness 被证明能够学习到针对不同基础模型不同弱点的模型特定 harness 指令，并提高排除数据的通过率。

Self-harness 这类工作确实让我担心：如果一个程序被允许编辑操作系统，那么抽象边界就被打破了。可编辑的表面需要被合理设计，权限控制和安全层需要位于这个循环之外。所有关于[奖励黑客](https://lilianweng.github.io/posts/2024-11-28-reward-hacking/)的挑战仍然存在。

## 进化搜索

进化搜索是一种受自然选择启发的优化方法（可以看我之前关于[进化算法](https://lilianweng.github.io/posts/2019-09-05-evolution-strategies/)的帖子）。它通过变异来进化一个解决方案的种群，并只保留那些在群体中“适应度”高的方案。进化搜索在以下情况下非常有用：(1) 搜索空间很大或形状怪异；(2) 很难直接用梯度优化，但很容易评估解决方案。Harness 搜索似乎很适合这里。

进化搜索在过去的提示工程研究中已经被使用过。Promptbreeder（[Fernando 等人，2023](https://arxiv.org/abs/2309.16797)）通过丰富的变异操作集来优化特定任务的提示，有趣的是，变异提示（即给 LLM 的指令，用于变异任务提示）本身也通过进化得到了改进。GEPA（[Agrawal 等人，2025](https://arxiv.org/abs/2507.19457)）将基于[反思](https://lilianweng.github.io/posts/2023-06-23-agent/#self-reflection)的提示与进化搜索相结合，并使用自然语言反思试错轨迹来提出提示更新。

[Novikov 等人（2025）](https://arxiv.org/abs/2506.13131) 引入了 AlphaEvolve，作为一个编码智能体进化搜索系统，它存储了一个候选程序池，并提示冻结的 LLM 生成差异（diffs）以进行改进。随着系统反复评估子程序并保留成功的程序，它会及时找到更好的解决方案。

AlphaEvolve 的设计中有几个细节很重要：

- 提示包括父程序、结果、指令，有时还包括元信息。

- 编码智能体可以访问完整的仓库，但需要改进的代码区域会明确用 `# EVOLVE-BLOCK-START` 和 `# EVOLVE-BLOCK-END` 标记。

- 元提示会随着 LLM 的建议与指令和上下文共同进化，方式类似于我们进化解决方案程序的方式。

消融实验显示了进化过程、提示中的上下文、元提示、全文件进化以及使用更强 LLM 的效果。

最近的变体，如 ThetaEvolve（[Wang 等人，2025](https://arxiv.org/abs/2511.23473)），将进化搜索与强化学习和上下文学习相结合。另一方面，ShinkaEvolve（[Lange 等人，2025](https://arxiv.org/abs/2509.19349)）引入了三个新组件来提高 LLM 的采样效率：

- 通过设计父采样来平衡性能排名和子代数量，实现更高效的探索。

- 代码新颖性拒绝采样：丢弃那些基于嵌入余弦相似度与现有种群过于相似的候选。

- 在元草稿板中识别成功解决方案中的良好模式，以指导未来的变异。

与上述专注于解决方案改进的方法不同，达尔文哥德尔机（DGM；[Zhang 等人，2025](https://arxiv.org/abs/2505.22954)）明确针对使用基于 LLM 的编码智能体进化可编辑的 harness 代码仓库。准确地说，这个智能体被允许修改自己的 harness。后续工作 Hyperagents（[Zhang 等人，2026](https://arxiv.org/abs/2603.19461)）引入了一个元智能体来控制如何修改现有的任务智能体以创建新的智能体。

- 从池中的一个编码智能体开始。

- 在每次迭代中，选择一个父智能体，选择概率与其性能成正比，与其子代数量成反比，然后修改并分支以产生新的智能体。

- 被选中的父智能体会检查自己的基准评估日志，然后对自己的 harness 代码库提出改进建议，以生成新版本的编码智能体。代码编辑通过两个基本工具实现：(1) bash（参数：<bash_command>）和 (2) 编辑器（参数：view/create/edit <file_path>）。

- 新的编码智能体被评估，只有那些性能足够高的才会被添加回池中。

- 重复步骤 2-4，直到达到某个停止条件。

DGM 是在固定模型下的 harness 进化。在使用 Claude 3.5 Sonnet 作为基础 LLM 和简单的初始 harness 配置的实验中，DGM 发现的智能体在 SWE-bench Verified（从 20% 到 50%）和 Polyglot（从 14.2% 到 30.7%）上，与手工制作的智能体相当或更优。

这类方法在候选解决方案可以自动评估且候选适应度容易量化的情况下效果很好，例如矩阵乘法、GPU 内核优化、算法竞赛、数据中心调度。它在评估缓慢、模糊或主要基于启发式的领域会遇到困难。进化的计算效率和有效性也是问题。

## 与模型权重的联合优化

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

SIA（[Hebbar 等人，2026](https://arxiv.org/abs/2605.27276)）是早期尝试在同一个优化循环中结合 harness 改进和模型参数更新的工作，其设计包含三个组件：

- 元智能体：提出初始 harness。

- 特定任务智能体：执行任务。

- 反馈智能体：根据最近的轨迹选择是更新 harness 还是更新模型权重。

SIA 的实验中有一些令人困惑的选择，使得结果难以解释。例如，特定任务智能体比用于元智能体和反馈智能体的模型（gpt-oss-120b 对比 Claude Sonnet 4.6）弱得多，而且基线太弱，无法与相关方法进行清晰的交叉参考。我认为这个方向很有趣，但证据是暂时的。然而，许多挑战，如训练稳定性和古德哈特定律，仍然悬而未决。

# 未来挑战

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

[Trehan & Chopra (2026)](https://arxiv.org/abs/2601.03315) 测试了 LLM 是否可以在最少的脚手架和基本工具（即 read_file、write_file、llm_search、list_files）下，从研究想法到论文。每个想法都有一个专用工作区，智能体可以在其中生成和阅读文档作为上下文的一部分。他们在三个领域（世界模型、多智能体强化学习、AI 安全与对齐）进行了实验，每个领域包含 45-50 篇高质量的种子文档以激发新想法。只有四个想法被人类专家选中进行完整流程，只有一个被完全执行成论文。他们在实验中观察到了六种反复出现的失败模式：

- 偏向训练数据默认值：使用旧库、过时命令、标准格式，或基于不切实际仓库或数据集的假设。

- 执行压力下的实现漂移：当实现变得技术复杂时，模型可能会转向一个常见的更简单的解决方案，而不是提出的方法。

- 记忆和上下文退化：长期项目会丢失关键细节，除非日志被写成持久化的工件。

- 过度乐观：尽管实验有噪声或失败，模型仍宣布成功，类似于 [Bubeck 等人 (2025)](https://arxiv.org/abs/2511.16072) 观察到的“p-hacking 和 eureka-ing”模式，即模型可以引入“数值胶带”，并在信号仍然是噪声时宣布胜利。

- 领域智能不足：模型缺乏隐性工艺知识，例如预测实现复杂性、判断实验结果是否合理，或知道哪些基线重要。

- 科学品味薄弱：实验可能是可执行的，但未能回答正确的问题。

朝着完全 RSI 的方向，研究人员取得了实际进展，但仍存在几个瓶颈。

1. 薄弱且模糊的评估器。许多研究主张没有快速且精确的验证器，许多现实世界的任务也是如此。当前的自我改进循环在评估指标可测量且客观的任务上效果最好，类似于[强化学习的工作方式](https://lilianweng.github.io/posts/2018-02-19-rl-overview/)。

研究品味、新颖性和长期科学价值更难衡量。例如，研究品味通常混合了问题框架、实验设计，以及判断哪些令人惊讶的结果值得追求，哪些失败案例值得重试。

2. 上下文和记忆生命周期。随着 AI 智能体变得更加自主和独立，记忆也在增长。一个有用的 harness 需要管理上下文和记忆，以补充长上下文生成中的现有局限性，同时最大化长期任务的成功。由于人类能够在一生中维持记忆，我在这里看到了一个类比：[上下文工程](https://lilianweng.github.io/posts/2026-07-04-harness/#context-engineering)将并且应该成为智能的核心部分，而不是停留在软件系统层。

3. 负面结果。研究人员有动力发表成功的结果，因此文献偏向于成功。在大量数据（主要是人类创建的，至少目前是这样，哈哈）上训练的 LLM 可能不擅长决定何时放弃一个假设、报告一个负面结果，甚至承认失败，因为数据中成功与失败案例的不平衡。一个研究 harness 应该使失败的尝试易于保存，因为从失败中学习是缩小任务搜索空间的最佳方式。

4. 多样性崩溃。进化和强化学习循环倾向于利用已知的高奖励模式。我们需要[机制](https://lilianweng.github.io/posts/2020-06-07-exploration-drl/)来防止种群崩溃成同一解决方案的变体。这对于开放式研究尤其关键，因为最佳路径在当前的评估器下最初可能看起来更差。

5. [奖励黑客](https://lilianweng.github.io/posts/2024-11-28-reward-hacking/)。一个自我改进循环会优化它收到的任何信号。如果奖励来自单元测试，智能体可能会过度拟合测试；如果来自评判模型，它可能会学习特定于该评判模型的奖励黑客技巧；如果来自基准分数，它可能会利用基准的工件。

评估器和权限控制很可能应该位于进化 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/

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](https://arxiv.org/abs/2504.01848)：从头复制 20 篇 ICML 2024 Spotlight 和 Oral 论文，包括理解论文贡献、开发代码库以及成功执行实验。

每个复制任务被分解为更小的、可单独评分的子任务。
总共 8,316 个评分标准，与论文作者共同开发。
当时最好的模型（Claude 3.5 Sonnet，约 21%）并未超越机器学习博士。
包括 PaperBench、PaperBench Code-Dev（一个更轻量的版本）和 JudgeEval。

- 每个复制任务被分解为更小的、可单独评分的子任务。

- 总共 8,316 个评分标准，与论文作者共同开发。

- 当时最好的模型（Claude 3.5 Sonnet，约 21%）并未超越机器学习博士。

- 包括 PaperBench、PaperBench Code-Dev（一个更轻量的版本）和 JudgeEval。

- [CORE-Bench](https://arxiv.org/abs/2409.11363)：评估已发表研究的计算可重复性。

基于计算机科学、社会科学和医学领域的 90 篇科学论文的 270 个任务。
任务涉及从提供的代码和数据中重现结果。
包括多个难度级别以及纯语言和视觉-语言任务。
当时报告的最佳智能体（GPT-4o 和 GPT-4o-mini）在最难的任务上仅达到 21% 的准确率。

- 基于计算机科学、社会科学和医学领域的 90 篇科学论文的 270 个任务。

- 任务涉及从提供的代码和数据中重现结果。

- 包括多个难度级别以及纯语言和视觉-语言任务。

- 当时报告的最佳智能体（GPT-4o 和 GPT-4o-mini）在最难的任务上仅达到 21% 的准确率。

- [ScienceAgentBench](https://arxiv.org/abs/2410.05080)：评估用于数据驱动科学发现的 LLM 智能体。

从四个学科（数学、化学、生物学、地理学）的 44 篇同行评审出版物中提取了 102 个任务。
涵盖这些领域的基本数据科学任务：数据处理、模型开发、数据分析和信息可视化。

- 从四个学科（数学、化学、生物学、地理学）的 44 篇同行评审出版物中提取了 102 个任务。

- 涵盖这些领域的基本数据科学任务：数据处理、模型开发、数据分析和信息可视化。

- [RE-Bench](https://arxiv.org/abs/2411.15114)：在逼真的机器学习研究工程环境中，评估前沿 AI 智能体与人类专家的对比。

7 个具有挑战性、开放式的机器学习研究工程环境。
每个环境 =（评分函数、起始解决方案、参考解决方案）；每个环境可以在 8 个或更少的 H100 GPU 上运行。
示例：优化内核、运行缩放定律实验、修复嵌入、微调 GPT-2 用于问答等。
包括来自 61 位不同人类专家的 71 次八小时尝试的数据。
人类专家在 82% 的八小时尝试中获得了非零分数；24% 达到或超过了强参考解决方案。
在 2 小时预算下，最佳 AI 智能体的得分比人类高 4 倍，但人类在更长的预算下有更好的回报，并在 8 小时和 32 小时设置下超过了智能体。

- 7 个具有挑战性、开放式的机器学习研究工程环境。

- 每个环境 =（评分函数、起始解决方案、参考解决方案）；每个环境可以在 8 个或更少的 H100 GPU 上运行。

- 示例：优化内核、运行缩放定律实验、修复嵌入、微调 GPT-2 用于问答等。

- 包括来自 61 位不同人类专家的 71 次八小时尝试的数据。

- 人类专家在 82% 的八小时尝试中获得了非零分数；24% 达到或超过了强参考解决方案。

- 在 2 小时预算下，最佳 AI 智能体的得分比人类高 4 倍，但人类在更长的预算下有更好的回报，并在 8 小时和 32 小时设置下超过了智能体。

- [MLE-bench](https://arxiv.org/abs/2410.07095)：在离线 Kaggle 竞赛中评估机器学习工程智能体。

包含从 Kaggle 精选的 75 个机器学习工程竞赛。
测试训练模型、准备数据集、运行实验以及向评分脚本提交预测。
使用 Kaggle 公开排行榜作为人类基线。
论文中的最佳设置，o1-preview 与 AIDE 脚手架，在 16.9% 的竞赛中至少达到了 Kaggle 铜牌水平。
包括资源缩放和污染分析。

- 包含从 Kaggle 精选的 75 个机器学习工程竞赛。

- 测试训练模型、准备数据集、运行实验以及向评分脚本提交预测。

- 使用 Kaggle 公开排行榜作为人类基线。

- 论文中的最佳设置，o1-preview 与 AIDE 脚手架，在 16.9% 的竞赛中至少达到了 Kaggle 铜牌水平。

- 包括资源缩放和污染分析。

- [KernelBench](https://arxiv.org/abs/2502.10517)：评估生成的 GPU 内核的正确性和速度。

250 个 PyTorch 任务，用于评估 LLM 能否编写快速且正确的内核。
评估指标 fast_p = 正确且比基线快的内核百分比。

- 250 个 PyTorch 任务，用于评估 LLM 能否编写快速且正确的内核。

- 评估指标 fast_p = 正确且比基线快的内核百分比。

# 参考文献

[1] Good, I. J. [“Speculations Concerning the First Ultraintelligent Machine.”](https://philpapers.org/rec/GOOSCT) Advances in Computers, 6:31–88, 1965.

[2] Yudkowsky, Eliezer. [“Recursive Self-Improvement.”](https://www.lesswrong.com/posts/JBadX7rwdcRFzGuju/recursive-self-improvement) LessWrong, 2008.

[3] Choi, et al. [“Anchored Self-Play for Code Repair.”](https://openreview.net/forum?id=lTbBFAoPSA) ICML 2026.

[4] Zhao, et al. [“Absolute Zero: Reinforced Self-play Reasoning with Zero Data.”](https://arxiv.org/abs/2505.03335) arXiv preprint arXiv:2505.03335, 2025.

[5] Yuan, et al. [“Self-Rewarding Language Models.”](https://arxiv.org/abs/2401.10020) arXiv preprint arXiv:2401.10020, 2024.

[6] Chen, et al. [“Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models.”](https://arxiv.org/abs/2401.01335) ICML 2024.

[7] Zhang, et al. [“Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models.”](https://arxiv.org/abs/2510.04618) ICLR 2026.

[8] Ye, et al. [“Meta Context Engineering via Agentic Skill Evolution.”](https://arxiv.org/abs/2601.21557) arXiv preprint arXiv:2601.21557, 2026.

[9] Lee, et al. [“Meta-Harness: End-to-End Optimization of Model Harnesses.”](https://arxiv.org/abs/2603.28052) arXiv preprint arXiv:2603.28052, 2026.

[10] Lu, et al. [“Towards end-to-end automation of AI research.”](https://www.nature.com/articles/s41586-026-10265-5) Nature, 651:914–919, 2026.

[11] Meng, et al. [“ScientistOne: Towards Human-Level Autonomous Research via Chain-of-Evidence.”](https://arxiv.org/abs/2605.26340) arXiv preprint arXiv:2605.26340, 2026.

[12] Kulikov, et al. [“Autodata: An agentic data scientist to create high quality synthetic data.”](https://arxiv.org/abs/2606.25996) arXiv preprint arXiv:2606.25996, 2026.

[13] Hu, Lu, and Clune. [“Automated Design of Agentic Systems.”](https://arxiv.org/abs/2408.08435) ICLR 2025.

[14] Madaan, et al. [“Self-Refine: Iterative Refinement with Self-Feedback.”](https://arxiv.org/abs/2303.17651) NeurIPS 2023.

[15] Zhang, et al. [“AFlow: Automating Agentic Workflow Generation.”](https://arxiv.org/abs/2410.10762) ICLR 2025.

[16] Zelikman, et al. [“Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation.”](https://arxiv.org/abs/2310.02304) COLM 2024.

[17] Zhang, et al. [“Self-Harness: Harnesses That Improve Themselves.”](https://arxiv.org/abs/2606.09498) arXiv preprint arXiv:2606.09498, 2026.

[18] Fernando, et al. [“Promptbreeder: Self-Referential Self-Improvement Via Prompt Evolution.”](https://arxiv.org/abs/2309.16797) arXiv preprint arXiv:2309.16797, 2023.

[19] Agrawal, A. et al. [“GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning.”](https://arxiv.org/abs/2507.19457) arXiv preprint arXiv:2507.19457, 2025.

[20] Novikov, et al. [“AlphaEvolve: A coding agent for scientific and algorithmic discovery.”](https://arxiv.org/abs/2506.13131) arXiv preprint arXiv:2506.13131, 2025.

[21] Lange, Imajuku, and Cetin. [“ShinkaEvolve: Towards Open-Ended And Sample-Efficient Program Evolution.”](https://arxiv.org/abs/2509.19349) arXiv preprint arXiv:2509.19349, 2025.

[22] Wang, et al. [“ThetaEvolve: Test-time Learning on Open Problems.”](https://arxiv.org/abs/2511.23473) arXiv preprint arXiv:2511.23473, 2025.

[23] Zhang, et al. [“Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents.”](https://arxiv.org/abs/2505.22954) arXiv preprint arXiv:2505.22954, 2025.

[24] Zhang, et al. [“Hyperagents.”](https://arxiv.org/abs/2603.19461) arXiv preprint arXiv:2603.19461, 2026.

[25] Yuksekgonul, et al. [“Learning to Discover at Test Time.”](https://arxiv.org/abs/2601.16175) arXiv preprint arXiv:2601.16175, 2026.

[26] Riaz, et al. [“Epistemic Uncertainty for Test-Time Discovery.”](https://arxiv.org/abs/2605.11328) arXiv preprint arXiv:2605.11328, 2026.

[27] Hebbar, et al. [“SIA: Self Improving AI with Harness & Weight Updates.”](https://arxiv.org/abs/2605.27276) arXiv preprint arXiv:2605.27276, 2026.

[28] Trehan and Chopra. [“Why LLMs Aren’t Scientists Yet: Lessons from Four Autonomous Research Attempts.”](https://arxiv.org/abs/2601.03315) arXiv preprint arXiv:2601.03315, 2026.

[29] Bubeck, et al. [“Early science acceleration experiments with GPT-5.”](https://arxiv.org/abs/2511.16072) arXiv preprint arXiv:2511.16072, 2025.

[30] Starace, et al. [“PaperBench: Evaluating AI’s Ability to Replicate AI Research.”](https://arxiv.org/abs/2504.01848) ICML 2025.

[31] Wijk 等人。 [《RE-Bench：评估前沿 AI 研发能力——语言模型智能体 vs. 人类专家》](https://arxiv.org/abs/2411.15114)。ICML 2025。

[32] Chan 等人。 [《MLE-bench：评估机器学习智能体在机器学习工程中的表现》](https://arxiv.org/abs/2410.07095)。arXiv 预印本 arXiv:2410.07095，2024。

[33] Chen 等人。 [《ScienceAgentBench：严格评估用于数据驱动科学发现的语言智能体》](https://arxiv.org/abs/2410.05080)。ICLR 2025。

[34] Siegel 等人。 [《CORE-Bench：通过计算可复现性智能体基准提升已发表研究的可信度》](https://arxiv.org/abs/2409.11363)。TMLR 2024。

[35] Ouyang 等人。 [《KernelBench：大语言模型能写出高效的 GPU 内核吗？》](https://arxiv.org/abs/2502.10517)。arXiv 预印本 arXiv:2502.10517，2025。

---

英文原文：[AI Self-Improvement Starts Outside the Model: Lilian Weng on Harness Engineering](https://lilianweng.github.io/posts/2026-07-04-harness/)
