@lilianweng: 关于AI自我改进的 Harness 工程新博文:https://lilianweng.github.io/posts/2026-07-04-harness/… 这是……

X AI KOLs Timeline 新闻

摘要

Lilian Weng 的博文探讨了 Harness 工程的概念,将其作为 AI 系统递归自我改进的关键组成部分,讨论了设计模式、工作流自动化以及与操作系统的类比。

关于 AI 自我改进的 Harness 工程新博文:https://lilianweng.github.io/posts/2026-07-04-harness/… 很难预测 RSI(递归自我改进)的未来在多大程度上依赖于 Harness。很可能 Harness 工程会朝着自我改进的方向发展,实现自动研究,而更智能的模型反过来又会保持 Harness 的简单性。 即使很多 Harness 改进最终内化为核心模型,指定目标和上下文的需求也不会消失。
查看原文
查看缓存全文

缓存时间: 2026/07/07 07:25

您在 Harness Engineering for AI Self-Improvement 上发布了新文章:https://lilianweng.github.io/posts/2026-07-04-harness/… 很难预测 RSI 的未来在多大程度上依赖于 Harness。Harness 工程很可能会朝着自我改进的方向发展,并实现自动化研究,进而更智能的模型也能让 Harness 保持简洁。即使许多 Harness 的改进最终被内化到核心模型中,指定目标和上下文的需求也不会消失。


用于自我改进的 Harness 工程

来源:https://lilianweng.github.io/posts/2026-07-04-harness/

递归自我改进(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/))。我特别提及*“部署系统”*,是因为原始模型与现实世界上下文之间的层,似乎与模型的原始智力(即预训练后的评估结果)同等重要。

Harness 是围绕基础模型构建的系统,负责编排执行流程,并决定模型如何思考与规划、调用工具并行动、感知与管理上下文、存储工件以及评估结果。本文重点讨论围绕 Harness 工程的研究及其如何助力 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)),但它们不是本文的重点。

Harness 设计模式

与早期的智能体框架(https://lilianweng.github.io/posts/2023-06-23-agent/)相比,“智能体 = LLM + 记忆 + 工具 + 规划 + 行动”,Harness 工程额外包含工作流设计(如循环工程)、评估、权限控制和持久状态管理。它不再仅仅是提示模板,而更接近于运行时和软件系统设计:模型如何观察、行动、记忆、自我检查并改进。设计应有意保持简洁和通用,以便泛化,很可能需要借鉴现有的软件工程实践,从而利用预训练知识。Harness 与操作系统之间也存在强烈的类比关系。类似于操作系统,Harness 应该封装复杂的逻辑,同时保持接口简单。与此同时,配置、工具接口和其他协议可能会逐渐在整个行业实现标准化。

模式 1:工作流自动化

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

简化的 Codex 智能体循环:智能体调用工具,工具响应影响模型的下一次生成。(图片来源:OpenAI codex agent post (https://openai.com/index/unrolling-the-codex-agent-loop/))

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

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

长时间跨度的智能体系统中一个反复出现的模式是,对丰富状态和工件的简单控制。Harness 不应在上下文里携带整个工作流和所有日志;相反,它应该将持久化状态保存在文件中。在长时间跨度的智能体式展开中,实验日志、代码差异、论文摘要、错误追踪以及过去展开轨迹等工件,其长度往往远超模型训练所用的上下文窗口。学习如何读取、写入和编辑文件系统(通常通过bash命令)是 LLM 的一项基础技能,因此,以简单的文件形式管理持久化记忆能够自然地从核心模型能力的提升中获益。

模式 3:子智能体与后台作业

Harness 可以生成多个子智能体并行执行,并监控后台作业。当主智能体需要搜索多种假设、并发运行实验,或者在不污染主上下文的情况下委派独立的子任务时,这非常有用。父智能体随后需要一个小的进程管理器:启动作业、检查日志、取消失败的运行,并将结果合并回主智能体线程。关键的设计选择是使并行性明确且可检查。如果子智能体的输出只存在于瞬时的聊天上下文中,它们很快就会过时并被隐藏。如果它们作为文件、日志和状态记录存储,模型就可以在中断后恢复,并对其自身的执行历史进行推理。

案例研究:编码智能体 Harness

主流编码智能体的核心接口在 Claude Code、Codex、OpenCode 和 Cursor 风格的智能体中已趋于稳定。它们通常使用如下循环:

借助一组工具,编码智能体能够在给定的仓库中开发和调试问题,类似于人类开发者拥有 IDE。(非详尽列表;仅作演示。如有兴趣请阅读此 (https://github.com/yasasbanukaofficial/claude-code)。)

分组工具定义
文件系统- 文件发现:globgrepls
- 文件读取:readread_many
- 文件修改:write(整个新文件);edit(字符串精确匹配替换);multi_editapply_patch(应用结构化的补丁/差异)
Shell 执行运行命令:bashPowerShell
IOlsp,git 工具如 git_statusgit_diffgit_commit
外部上下文MCP 工具,技能
Web 搜索web_searchweb_fetch,浏览器工具
工件读取文档、图像;生成 HTML、图像
后台进程如:CronCreateCronDeleteCronList
智能体委派如:spawn_agentresume_agentwait_agentlist_agentsclose_agentinterrupt_agent

Harness 层 vs 核心智能?

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

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

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

Harness 优化

Harness 系统中被优化对象的演进大致如下:

指令 -> 提示(https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/) -> 结构化上下文 -> 工作流 -> Harness 代码 -> 优化器代码

随着模型变得越来越智能和强大,我们转向更复杂的目标和更通用的方法。

上下文工程

简单地将所有工具响应和模型生成内容追加到上下文中,随着智能体任务周期的显著增长,会迅速失控。上下文管理是一个层,用于为 LLM 构建更具结构化且简洁的上下文,并管理持久化状态。毫无疑问,长上下文研究会不断取得进展,但目前长上下文智能和上下文工程有时会相互交织。

智能体上下文工程(Agentic Context Engineering, ACE; Zhang et al. 2025 (https://arxiv.org/abs/2510.04618))将上下文视为一个不断演化的行动手册,而不是一个越来越长的提示。它包含三个组件,用于维护一个由带标识符和描述的要点组成的上下文手册:

  1. 生成器(Generator):生成任务轨迹,并引用要点。
  2. 反思器(Reflector):从成功和失败的轨迹中提炼洞察。
  3. 管理员(Curator):以增量、逐条的方式更新结构化上下文。

Agentic Context Engineering (ACE) 的框架。(图片来源:Zhang et al. 2025 (https://arxiv.org/abs/2510.04618))

为了防止在迭代重写过程中出现上下文崩溃和简洁性偏差,ACE 的一个关键设计是管理员不会重写整块提示。它而是输出一组结构化的逐条要点,格式为 (标识符,描述),这些要点通过确定性逻辑合并到结构化的上下文日志簿中。上下文条目会定期进行精炼和去重。ACE 从展开中学习洞察这一事实,帮助我们朝着自我管理的记忆迈进,但更新规则和整体工作流仍然是手工制作的。

为了向更具自我改进能力的循环迈进,元上下文工程(Meta Context Engineering, 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^*;在外部循环中,找到在验证集上提供最佳性能的最优技能:

\text{内层:}c_s^*=\arg\max_{c_s} J_\text{train}(c_s;s) \quad \text{外层:}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}。一个元级智能体对先前的技能执行智能体交叉(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)

Meta Context Engineering (MCE) 的框架:元级技能演化搜索上下文管理机制,而基础级优化任务上下文。(图片来源:Ye et al. 2026 (https://arxiv.org/abs/2601.21557))

MCE 不像 ACE 那样强制执行如何构造上下文的启发式规则。它使用自由形式的技能来存储任务最重要的知识,并让技能和技能条件上下文一起迭代演化。在实现层面,上下文函数 c 被实例化为专用目录中的文件集合,包括静态(skill.md)和动态(上下文和数据展开)组件。元级和基础级优化都在具有标准工具集的智能体编码环境中执行:

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

Meta-Harness (Lee et al. 2026 (https://arxiv.org/abs/2603.28052)) 又深入了一层:被优化的对象变成了代码——决定并优化哪些信息应该被存储、检索并呈现给模型的那些代码。其名称中的“Meta-”意味着它是一个用于优化 Harness 的 Harness。

Meta-Harness 外循环优化算法。(图片来源:Lee et al. 2026 (https://arxiv.org/abs/2603.28052))

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

  • 整个执行历史通过文件系统可访问,因此编码智能体使用 grepcat 等命令来读取它,而不是将所有内容塞进单个提示上下文中。
  • 提议的 Harness 是文件系统中的一个字典,包含其自身的源代码、得分、展开轨迹和状态更新。
  • Meta-Harness 循环迭代地创建新 Harness,只有合格的会被保留。

Meta-Harness 在(左)少量迭代下的文本分类和(右)TerminalBench-2 上的性能。注意,TerminalBench-2 实验中的搜索从 Terminus-KIRA 和 Terminus-2 这两个非常强大的 Harness 开始初始化。(图片来源:Lee et al. 2026 (https://arxiv.org/abs/2603.28052))

尽管如此,重要的教训是明确的:一旦 Harness 设计成为一个可执行的搜索空间,强大的编码智能体就能利用人类工程师所使用的相同设计空间。

工作流设计

Harness 工程中的工作流设计可以由领域专家手工制作。以自动化研究为例,各种框架已被提出和测试。

AI Scientist 系统 (Lu et al. 2026 (https://www.nature.com/articles/s41586-026-10265-5)) 构建了一个流水线,用于提出研究想法、编写代码、运行实验、分析结果、撰写手稿并执行同行评审。Meng et al. (2026) (https://arxiv.org/abs/2605.26340) 将可验证性作为ScientistOne的核心设计约束,其中每一项声明(引文、数值、方法论、结论)都必须追溯到证据来源,并通过证据链检查进行审计。

AI Scientist 流水线,涵盖想法生成、实验、论文撰写和评审。(图片来源:Lu et al. 2026 (https://www.nature.com/articles/s41586-026-10265-5))

Autodata 智能体 (Kulikov et al. 2026 (https://arxiv.org/abs/2606.25996)) 被设计为作为数据科学家工作。

相似文章

Harness Engineering for Self-Improvement(28 分钟阅读)

TLDR AI

这篇博客文章由 Lilian Weng 撰写,探讨了递归自我改进在 AI 中的概念,重点介绍了 harness engineering——即围绕基础模型的系统——如何通过工作流设计和评估实现 AI 代理的自动化和改进。