论文链接:arxiv.org/abs/2606.05922 代码仓库:github.com/wbopan/retro-harness 项目主页:paper-rho.wenbo.io 发表时间:2026年6月 机构:香港城市大学(Wenbo Pan, Xiaohua Jia)× 微软亚洲研究院(Shujie Liu, Chin-Yew Lin, Jingying Zeng, Xianfeng Tang, Xiangyang Zhou, Yan Lu) 🔑 重点标注:典型的高校学生(港城大博士生 Wenbo Pan)+ 企业研究院(微软亚研)合著模式,学术前沿探索与工业场景落地紧密结合。


一、论文背景

1.1 什么是 Agent、Harness、Skill?

在理解这篇论文之前,我们需要先搞清楚几个核心概念。2026年的AI领域有一个越来越主流的共识:Agent = Model + Harness(智能体 = 模型 + 装备)。这个公式最早由 LangChain 的 Vivek Trivedy 在2026年3月提出,并迅速成为行业共识。

Agent(智能体) 不再只是一个聊天机器人。它是能够感知环境、自主规划、调用工具、执行多步操作的AI系统。你可以把它想象成一个"全能员工"——有推理能力、有学习能力、能使用工具来完成复杂任务。

Harness(装备/框架) 则是围绕模型构建的一整套"工作环境"。如果说模型是员工的"大脑",那Harness就是这位员工手头的所有工具、操作手册、工作流程和技能文档。一个Harness通常包含:

  • Instructions(指令):任务无关的过程规则,比如"在提交代码前先运行测试"
  • Skills(技能):特定领域的策略文档,记录了某个场景下的最佳实践、常见陷阱和应对方案
  • Tools(工具):可执行的脚本程序,Agent 可以在运行时调用来完成特定功能
  • Workflows(工作流):多步骤任务的执行流程定义

举个具体例子:OpenAI的 Codex Agent 是一个软件工程智能体,它的Harness中包含了代码搜索工具、构建检查脚本、Python环境管理技能等。这些"装备"让Agent不仅能"想"(推理),还能"做"(执行)。

1.2 什么是 Harness Engineering?

2025年末,Mitchell Hashimoto 提出了 Harness Engineering(装备工程) 这一概念,2026年由OpenAI内部实验正式确立。这是一门专注于设计约束、工具、反馈循环、文档和验证系统,以引导AI Agent产出可靠输出的工程学科。

其核心哲学可以概括为八个字:人类定义边界,Agent自主执行。工程师不再逐行写代码,而是"架构化AI运行的环境"——设计好规则和工具,让Agent在边界内自主完成工作。

Harness Engineering建立在两个前序范式之上:

范式焦点局限
Prompt Engineering单轮指令优化无状态、无工具、多步骤任务即失效
Context EngineeringAgent"看到"什么(RAG、记忆)Token限制、注意力衰减
Harness EngineeringAgent"如何运行"(环境+循环)专为生产环境设计,系统性可靠

关键数据:OpenAI 2026年初使用Codex Agent构建了一个超过100万行代码的内部产品,零行代码由人工手写,工程速度提升数个数量级。

1.3 核心问题:Harness如何持续进化?

Harness让Agent变得强大,但一个关键问题随之而来:Harness如何持续改进?

在实际部署中,Agent会遇到各种预料之外的情况。比如:

  • 软件工程Agent发现Go工具链安装在非标准路径下,原有指令没有覆盖这种场景
  • 知识工作Agent发现某些信息源需要特殊的身份验证方式
  • 技术工作Agent发现特定类型任务总在某个步骤卡住

这些"失败经验"蕴含着巨大的优化价值。如果Agent能从过去的失败中自动学习,改进自己的Harness,就能在未来的类似任务中表现更好——这就是 Agent持续学习(Continual Learning) 的核心诉求。

1.4 现有方法的瓶颈

在RHO之前,Harness优化的主流方法有一个共同的前提条件:需要一个带有真值标签的验证集。无论是通过搜索优化提示(如 Yang et al., 2023)、声明式管道编译(如 DSPy, Khattab et al., 2023)、文本梯度更新(如 TextGrad, Yuksekgonul et al., 2024),还是反思式提示进化(如 GEPA, Agrawal et al., 2025),它们都需要:

  1. 一组有标准答案的测试任务
  2. 一个能自动评分的验证机制
  3. 多轮迭代搜索

然而,在实际部署环境中,这两样东西都很难获取:

  • 标注数据稀缺:真实任务往往没有标准答案,或者标注成本极高
  • 未来任务分布未知:有限的验证集无法代表Agent将来会遇到的所有情况

与此同时,Agent在日常运行中会产生大量的历史轨迹——记录了它面对每个任务时做了什么、怎么做的、最终结果如何。这些轨迹虽然没有标签,却蕴含着丰富的改进信号。

核心问题由此诞生:能否仅利用这些无标签的历史轨迹来优化Agent的Harness?


二、论文定位与关联工作

2.1 Harness优化方向的前序工作

RHO并非凭空出现。在Harness优化这个研究方向上,有一系列前序工作铺路:

方法优化对象机制局限
LLM-as-optimizer (Yang et al., 2023)提示文本对标签度量的搜索仅优化提示,需要标签
DSPy (Khattab et al., 2023)声明式管道编译对标签度量的搜索仅编译管道,需要标签
TextGrad (Yuksekgonul et al., 2024)文本梯度更新对标签度量的搜索无验证门控,需要标签
GEPA (Agrawal et al., 2025)反思式提示进化对标签度量的搜索搜索成本高,需要标签
ADAS (Hu et al., 2024)完整Agent代码设计对标签度量的搜索设计而非优化,需要标签
Meta-Harness (Lee et al., 2026)Harness代码外层搜索循环最接近RHO但仍需标签
SkillOpt (微软, 2026)Skill文档训练式优化需要可量化评分的验证器

RHO的定位非常清晰:它是第一个同时满足"无标签"“完整Harness"“单次通过"三个标准的方法。

  • 无标签:不使用真值度量或验证集,仅依赖历史轨迹
  • 完整Harness:不仅能优化文本提示,还能创建新的可执行工具和技能
  • 单次通过:一次性回顾过程,不是在线流式学习或多轮迭代搜索

2.2 Agent自我改进方向的前序工作

另一条相关的研究线索是Agent的自我改进。这些方法尝试利用Agent自身经验来提升表现:

方法改进内容与RHO的区别
Dynamic Cheatsheet (Suzgun et al., 2025)可重用策略和代码片段记忆仅丰富记忆,不修改工具和指令
ReasoningBank (Ouyang et al., 2025)可泛化推理策略仅存储推理模式,不优化执行工具
MemMA (Lin et al., 2026)记忆周期协调多Agent协调记忆,不修改Harness
Sleep-time Compute (Lin et al., 2025)离线预处理上下文预计算信息,不优化Harness结构
M* (Pan et al., 2026a)可执行记忆系统程序任务特定记忆,不修改完整Harness

RHO与这些方法的关键区别在于优化范围:上述方法只丰富了Agent的某个组件(记忆、上下文或技能列表),而RHO能够优化完整的Harness——包括可执行工具、技能文档和系统指令。

2.3 RHO在研究版图中的位置

综合来看,RHO处于一个独特的交汇点:

  • 它继承了 Meta-Harness 的"外层优化Harness代码"的思路,但去掉了对验证标签的依赖
  • 它吸收了 Dynamic Cheatsheet 等"从经验中学习"的理念,但将学习范围从记忆扩展到完整Harness
  • 它借鉴了 SkillOpt 的"文本空间优化"思想,但不需要可量化的评分器,而是用自偏好替代

在这个意义上,RHO是Harness优化方向上的一个重要跃迁——从"需要外部监督信号"到"Agent自己就是自己的裁判”。


三、问题定义

3.1 从具体问题到抽象问题

在RHO之前,如果想让Agent的Harness变得更好,标准做法是:

  1. 准备一组有标准答案的任务
  2. 用当前Harness解决这些任务
  3. 根据对答案计算成功率
  4. 根据成功率修改Harness
  5. 重复直到成功率不再提升

这个流程的问题在于:步骤3需要一个客观的评分标准。但真实世界中,很多任务没有标准答案,或者评分成本极高。

RHO的核心洞察是:即使没有客观评分,Agent仍然可以从比较中学习。就像一位学生做同一道题两次——虽然不知道标准答案,但如果第二次的做法比第一次更自洽、更少犯错,那第二次大概率更好。

3.2 形式化定义

将上述直觉形式化:

  • Harness $h$:Agent的一套持久装备(工具、提示、技能集合)
  • 轨迹 $\tau$:Agent使用Harness $h$ 解决任务 $t$ 的完整过程记录,记为 $\tau = \text{solve}(h, t)$
  • 轨迹数据集 $D$:过去运行积累的无标签轨迹集合 $D = \{\tau_1, \tau_2, \ldots, \tau_n\}$

优化目标是找到一个最优Harness $h^*$,使得它在未来任务上的期望效用最大:

$$h^{\star} = \arg\max_{h'} \mathbb{E}_{t, \tau \sim \mathrm{solve}(h', t)} [U(t, \tau)]$$

其中 $U(t, \tau)$ 是一个潜在的效用函数,衡量轨迹质量。

3.3 核心挑战与解法思路

问题来了:$U$ 是潜在的、不可观测的。我们没有办法直接计算它,因为我们没有真值标签。

RHO的核心思路是:用一个"自偏好估计器"来替代潜在的效用函数 $U$。

具体来说,让Agent自己对多条轨迹进行排序:

$$\text{rank}(t, \tau_1, \tau_2, \ldots, \tau_m) \rightarrow (\text{排序}, \text{理由})$$

Agent不需要知道哪条轨迹是"对的”,只需要比较哪条轨迹"更好"——这就像让一个人比较两篇文章的写作质量,虽然不知道标准答案,但能判断哪篇更有条理、更少错误。

这个抽象的核心智慧在于:将"什么是好的"这个主观问题转化为"哪个更好"这个相对比较问题。相对比较比绝对评估要容易得多,也更符合Agent的实际能力。


四、问题解法

RHO的完整方法由三个阶段组成,形成一个从过去经验中提取优化信号的闭环。

4.1 总览:三阶段流程

Stage 1: 核心集选择 → 从海量轨迹中选出最有价值的少量任务
Stage 2: 组Rollout → 对每个选出的任务多次求解,收集对比信号
Stage 3: Best-of-N Harness提案 → 生成多个候选Harness,选最优的

4.2 Stage 1:核心集选择(Coreset Selection)

问题:Agent过去可能积累了数百甚至数千条轨迹。如果对每条都进行优化分析,计算成本太高,而且大量"平凡"的轨迹会稀释掉关键的改进信号。

解法:使用 行列式点过程(DPP) 从过去轨迹中选出一个小而精的核心集(实验中为10个任务),要求这些任务同时满足两个条件:

  • 困难性:选择那些Agent曾经做得不好的任务,因为它们蕴含最多的改进空间
  • 多样性:选择的任务应该覆盖不同类型的失败模式,避免所有选中的任务都卡在同一个地方

具体步骤:

  1. 难度评分:用语言模型作为裁判(judge),对每条轨迹进行分析,给出难度分数 $r_i \in [0, 10]$ 和文本描述(说明具体挑战和失败模式)

  2. 嵌入计算:计算每条轨迹描述的语义向量表示(使用 BAAI/bge-large-en-v1.5 模型),用余弦相似度衡量任务间的相似性

  3. DPP核矩阵构建:

$$K = \text{diag}(\tilde{r}) \, S \, \text{diag}(\tilde{r})$$

其中 $\tilde{r}_i$ 是缩放后的难度分数,$S$ 是相似度矩阵。这个矩阵编码了"难且不同"的双重需求。

  1. 贪心DPP选择:以正比于核行列式的概率选择子集

参数 $\theta$ 的控制作用:

  • $\theta = 1$:纯按难度排名(可能集中在某类难题上)
  • $\theta = 0$:纯按多样性排名(可能选到太简单的任务)
  • 实验使用 $\theta = 0.7$(偏向难度但兼顾多样性,效果最优)

通俗理解:就像一个学生准备考试复习,不能只盯着一种题型刷题(缺乏多样性),也不能把所有时间花在最难的压轴题上(过于聚焦)。RHO的核心集选择就是在"专攻难点"和"广泛覆盖"之间找到最佳平衡点。

4.3 Stage 2:组 Rollout(Group Rollout)与诊断

问题:选出了核心集任务后,如何从这些任务中提取出具体的改进信号?

解法:对每个核心集任务运行 $G$ 次(实验中为3次)并行求解,然后用两种诊断手段分析结果。

4.3.1 自验证(Self-Validation)

原理:让Agent检查自己的每条轨迹是否"自洽"——对照任务需求和环境反馈,检查是否存在逻辑错误、工具调用失误或过早停止等问题。

具体做法:

  • Agent阅读自己的一条轨迹
  • 对照任务要求,检查每一步是否正确
  • 标记:错误工具调用、基于错误假设的操作、未充分利用环境反馈等
  • 将标记出的问题区域作为改进方向提取

举例:在解决一个Python bug修复任务时,Agent可能在第5步错误地假设问题出在文件A,但实际上环境反馈(测试输出)已经暗示问题在文件B。自验证会捕捉到这种"忽略了环境信号"的模式。

4.3.2 自一致性(Self-Consistency)

原理:让Agent比较自己在同一任务上的多次求解尝试。如果三次尝试走了三条完全不同的路径,说明Agent对这类任务缺乏稳定的策略——这正是需要改进的地方。

具体做法:

  • Agent同时阅读自己在同一任务上的多条轨迹
  • 分析轨迹间的矛盾:分歧的规划方向、不同的工具调用序列、不一致的最终答案
  • 低自一致性 = 高不确定性 = 优化空间大
  • 生成优化指令,鼓励更一致的行为

为什么两者都需要? 消融实验证实:

  • 去掉自一致性:SWE-Bench Pro从78%降至56%(-22%!)
  • 去掉自验证:从78%降至70%(-8%)
  • 两个信号缺一不可,自一致性尤其关键

最终,所有核心集任务的改进指令被合并为一个完整的优化指导 $I$。

4.4 Stage 3:Best-of-N Harness提案

问题:有了改进指导 $I$,如何确保Harness的更新是有效的?单次优化可能因为随机性而失败。

解法:采用 Best-of-N(N中选最优) 策略。

具体步骤:

  1. 并行生成:用改进指导 $I$ 并行生成 $N$ 个(实验中为3个)候选Harness $h_1, h_2, h_3$

  2. 重新求解:用每个候选Harness在所有核心集任务上重新求解,得到新轨迹

  3. 成对偏好比较:将每个候选Harness的新轨迹与原始Harness的旧轨迹进行对比,让Agent自己排序。这一步就是"自偏好"的体现——Agent不需要外部评分,只需要比较新旧轨迹哪个更好。

  4. 聚合评分:计算每个候选Harness的平均偏好分数 $S_j$

  5. 严格接受门控:仅当 $S_j > 0$(严格大于零,即使均值恰好为零也拒绝)时才接受更新。这是一个非常保守的策略——宁可保持现状,也不接受可能有害的更新。

通俗理解:就像给一道菜改良配方——你不能只试一次就确定新配方更好。RHO的做法是同时做三个新版本,让品尝者(Agent自己)与原版对比,只有明确更好的版本才会被采纳。

4.5 RHO生成的Harness长什么样?

优化后的Harness不仅包含文本修改,还会创建全新的可执行工具。以SWE-Bench Pro为例:

  • Agent发现Go工具链在默认路径之外的非标准位置 → 新增 check_build_and_lint 工具,自动定位非标准工具链
  • Agent发现生成最终diff前必须清除Python缓存目录 → 将这一经验固化为新的技能文档
  • Agent发现在某些项目中测试运行器需要特殊参数 → 创建专门的测试执行脚本

这些新增内容都是可执行的代码文件,不是简单的文本提示——这正是RHO能实现大幅度提升的原因。


五、必要知识反推

假设让一个完全没有相关背景的人来完成RHO这项工作,他/她必须掌握以下知识和信息:

5.1 领域知识层

  1. Agent架构基础:理解Agent = Model + Harness的架构范式,知道Harness包含工具、技能、指令、工作流四个组件,理解每个组件在Agent执行中的作用。

  2. Harness Engineering实践:了解工业界如何为Agent构建Harness(如OpenAI Codex的实践),知道Harness优化的现实痛点和价值(百万行代码级别的影响)。

  3. 持续学习与自适应:理解Agent在部署后如何从经验中学习,了解在线学习vs离线学习、有监督vs自监督的区别。

5.2 技术方法层

  1. 行列式点过程(DPP):这是一个来自概率论和线性代数的数学工具,用于从集合中选择"代表性"子集。核心思想是:选择一个子集,使得其中元素的"质量"高且彼此"不同"。需要理解核矩阵的构建方式和贪心选择算法。

  2. 语言模型的自评估能力:知道现代大语言模型(如GPT-5.5)具备审视和评估自身输出的能力——它们可以判断一段推理是否自洽、两条路径哪个更合理。这是RHO"自验证"和"自一致性"的基础。

  3. Best-of-N采样与拒绝策略:理解"多候选并行采样+择优"的工程模式,以及为什么需要严格的接受门控(防止有害更新)。

  4. 组相对优势(Group Relative Advantage):来自强化学习的概念——在同一个任务上的多次尝试之间进行相对比较,比绝对评分更稳健。

5.3 研究视野层

  1. 前序工作的局限分析:深入了解Meta-Harness、SkillOpt、Dynamic Cheatsheet等工作,准确识别它们共同的前提假设(需要标签验证),以及这个假设在真实场景中为何不成立。

  2. 问题抽象能力:将"如何在没有标签的情况下优化Harness"这个具体问题,抽象为"如何用自偏好替代外部评分"这个更本质的问题。这需要理解"绝对评估难、相对比较易"的认知科学原理。

5.4 知识融合路径

完成RHO需要的关键融合步骤:

  1. 从问题到约束:现实约束(无标签)→ 优化目标不能依赖外部评分 → 需要内生信号
  2. 从约束到方案:内生信号哪里来?→ Agent自身的轨迹中 → 但轨迹太多且嘈杂 → 需要选择+诊断
  3. 从方案到方法:选择用什么?→ DPP(兼顾难度和多样性)→ 诊断用什么?→ 自验证(内部正确性)+ 自一致性(跨轨迹一致性)→ 更新如何保证有效?→ Best-of-N + 严格门控
  4. 从方法到验证:三个不同领域(软件工程、技术工作、知识工作)× 多个基线对比 → 确认方法的通用性

六、通用性灵感

从RHO中可以提取以下不仅限于当前领域的普适性启示:

灵感1:相对比较比绝对评估更容易,也更实用

RHO最核心的洞见是:不需要知道"什么是好的",只需要能比较"哪个更好"。这个原则远不止适用于Agent优化——在任何难以定义绝对标准的场景中都适用。

  • 教育领域:与其纠结"什么是好的教学方法",不如让同一教师用不同方法教同样的内容,比较效果差异
  • 产品设计:与其定义"完美的用户体验",不如做A/B测试比较两个版本
  • 个人成长:与其追求"理想的自己",不如让今天的自己比昨天的自己更好一点

灵感2:困难+多样性是最有效的学习样本组合

DPP核心集选择揭示了一个深刻的学习规律:从困难中学习最多,但困难必须是不同类型的。只盯着一种困难容易过拟合,只追求覆盖面又可能错过最关键的弱点。

这适用于几乎所有需要"从经验中学习"的场景:刷题备考、复盘项目经验、优化业务流程——都应该优先关注"失败最多的"和"失败方式最不一样的"。

灵感3:自一致性是发现"知识盲区"的利器

当你对同一个问题给出不同答案时,不是答案本身有问题,而是你对这个问题的理解不够深入。RHO用自一致性来发现Agent的不确定区域,这个思路同样适用于:

  • 检验自己是否真正理解一个概念:尝试用不同方式解释它,如果解释互相矛盾,说明还没真正理解
  • 团队决策:如果多次讨论同一议题得到不同结论,说明信息或逻辑有缺口
  • 系统测试:如果同一测试用例多次运行结果不一致,说明系统存在隐藏的不稳定性

灵感4:保守的更新策略比激进的改进更安全

RHO的严格接受门控($S_j > 0$ 才接受)体现了一个重要的工程智慧:在不确定环境中,“不变得更差"比"变得更好"更重要。

  • 软件更新中的灰度发布
  • 投资中的"保本第一”
  • 任何涉及系统性改变的决策,都应该先确保不会造成回退

灵感5:过去的失败是最廉价的优化信号

RHO利用无标签的历史轨迹进行优化,本质上是在说:你不需要额外花代价获取新信息,你已有的数据中就蕴含着改进的方向。

  • 个人层面:反思日记、项目复盘中蕴含的成长信号
  • 企业层面:客服记录、用户反馈中的产品改进方向
  • 科研层面:失败实验中蕴含的假设修正线索

关键不在于获取更多信息,而在于用正确的方式分析已有信息。

灵感6:单次深度回顾胜过多轮浅层迭代

RHO的一个反直觉发现是:一轮精心设计的回顾优化(RHO:103次Agent调用,78%通过率)远胜过多轮简单迭代(Meta-Harness 10轮320次调用,80%通过率)。

这启示我们:做事的质量比次数更重要。与其匆忙地反复试错,不如一次深入分析、精心规划。10次浅层迭代带来的改进,可能不如一次深度复盘。

灵感7:让系统成为自己的质检员

RHO让Agent自己评估自己的输出质量(自验证、自一致性),而不是依赖外部评分。这种"自我监管"的模式在系统设计中非常有价值:

  • 代码系统:让程序自动检查自身日志的一致性
  • 组织管理:让团队定期自我复盘,而不是等待外部审计
  • 知识管理:让文档体系自检信息是否矛盾或过时

前提是:系统必须具备足够的"自我认知"能力(在AI领域,这对应于现代LLM的评估能力)。


七、实验结果速览

指标结果
SWE-Bench Pro 通过率59% → 78%(+19%,无需外部评分)
Terminal-Bench 2 通过率71% → 76%(+5%)
GAIA-2 通过率29% → 37%(+8%)
vs Meta-Harness(同预算)0.78 vs 0.62
vs Meta-Harness(3倍预算)0.78 vs 0.80(接近但无需标签)
自一致性信号消融移除后SWE-Bench Pro降至56%(-22%)
自验证信号消融移除后降至70%(-8%)

八、局限性与未来方向

RHO并非万能的。论文诚实地指出了几个重要局限:

  1. 环境可重置性要求:RHO需要对核心集任务多次重新求解,这在"一次性"或"不可逆"的场景中不适用(比如已发送的邮件、已执行的交易)。

  2. Harness前提假设:RHO假设Agent能力中相当部分通过可编辑的Harness介导。对于能力完全"硬编码"在模型权重中的场景,RHO不适用。

  3. 安全性风险:在开放环境中,过去的轨迹可能被对抗性内容污染,从中蒸馏的Harness更新可能固化有害行为。论文建议在高影响场景中保持人工审核。

  4. 开放问题:如何扩展到不同的Harness表示形式?如何处理任务指纹变化?如何优化rollout预算?这些都有待未来探索。


总结

RHO论文最本质的贡献是回答了一个看似简单但极其重要的问题:Agent能不能自己教自己变好,不需要老师打分?

答案是肯定的。通过精心设计的三阶段方法——选最难最不同的任务、用自验证和自一致性挖掘改进信号、用Best-of-N确保更新有效——Agent可以在没有任何外部评分的情况下,仅从过去的经验中实现显著的自我进化。

在SWE-Bench Pro上19%的绝对提升(59%→78%),证明了"自监督Harness优化"这条路不仅走得通,而且效果惊人。这是Agent持续学习领域的一个里程碑——从依赖外部监督到完全自主进化的关键一步。