论文链接: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 Engineering | Agent"看到"什么(RAG、记忆) | Token限制、注意力衰减 |
| Harness Engineering | Agent"如何运行"(环境+循环) | 专为生产环境设计,系统性可靠 |
关键数据: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),它们都需要:
- 一组有标准答案的测试任务
- 一个能自动评分的验证机制
- 多轮迭代搜索
然而,在实际部署环境中,这两样东西都很难获取:
- 标注数据稀缺:真实任务往往没有标准答案,或者标注成本极高
- 未来任务分布未知:有限的验证集无法代表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变得更好,标准做法是:
- 准备一组有标准答案的任务
- 用当前Harness解决这些任务
- 根据对答案计算成功率
- 根据成功率修改Harness
- 重复直到成功率不再提升
这个流程的问题在于:步骤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曾经做得不好的任务,因为它们蕴含最多的改进空间
- 多样性:选择的任务应该覆盖不同类型的失败模式,避免所有选中的任务都卡在同一个地方
具体步骤:
难度评分:用语言模型作为裁判(judge),对每条轨迹进行分析,给出难度分数 $r_i \in [0, 10]$ 和文本描述(说明具体挑战和失败模式)
嵌入计算:计算每条轨迹描述的语义向量表示(使用 BAAI/bge-large-en-v1.5 模型),用余弦相似度衡量任务间的相似性
DPP核矩阵构建:
其中 $\tilde{r}_i$ 是缩放后的难度分数,$S$ 是相似度矩阵。这个矩阵编码了"难且不同"的双重需求。
- 贪心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中选最优) 策略。
具体步骤:
并行生成:用改进指导 $I$ 并行生成 $N$ 个(实验中为3个)候选Harness $h_1, h_2, h_3$
重新求解:用每个候选Harness在所有核心集任务上重新求解,得到新轨迹
成对偏好比较:将每个候选Harness的新轨迹与原始Harness的旧轨迹进行对比,让Agent自己排序。这一步就是"自偏好"的体现——Agent不需要外部评分,只需要比较新旧轨迹哪个更好。
聚合评分:计算每个候选Harness的平均偏好分数 $S_j$
严格接受门控:仅当 $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 领域知识层
Agent架构基础:理解Agent = Model + Harness的架构范式,知道Harness包含工具、技能、指令、工作流四个组件,理解每个组件在Agent执行中的作用。
Harness Engineering实践:了解工业界如何为Agent构建Harness(如OpenAI Codex的实践),知道Harness优化的现实痛点和价值(百万行代码级别的影响)。
持续学习与自适应:理解Agent在部署后如何从经验中学习,了解在线学习vs离线学习、有监督vs自监督的区别。
5.2 技术方法层
行列式点过程(DPP):这是一个来自概率论和线性代数的数学工具,用于从集合中选择"代表性"子集。核心思想是:选择一个子集,使得其中元素的"质量"高且彼此"不同"。需要理解核矩阵的构建方式和贪心选择算法。
语言模型的自评估能力:知道现代大语言模型(如GPT-5.5)具备审视和评估自身输出的能力——它们可以判断一段推理是否自洽、两条路径哪个更合理。这是RHO"自验证"和"自一致性"的基础。
Best-of-N采样与拒绝策略:理解"多候选并行采样+择优"的工程模式,以及为什么需要严格的接受门控(防止有害更新)。
组相对优势(Group Relative Advantage):来自强化学习的概念——在同一个任务上的多次尝试之间进行相对比较,比绝对评分更稳健。
5.3 研究视野层
前序工作的局限分析:深入了解Meta-Harness、SkillOpt、Dynamic Cheatsheet等工作,准确识别它们共同的前提假设(需要标签验证),以及这个假设在真实场景中为何不成立。
问题抽象能力:将"如何在没有标签的情况下优化Harness"这个具体问题,抽象为"如何用自偏好替代外部评分"这个更本质的问题。这需要理解"绝对评估难、相对比较易"的认知科学原理。
5.4 知识融合路径
完成RHO需要的关键融合步骤:
- 从问题到约束:现实约束(无标签)→ 优化目标不能依赖外部评分 → 需要内生信号
- 从约束到方案:内生信号哪里来?→ Agent自身的轨迹中 → 但轨迹太多且嘈杂 → 需要选择+诊断
- 从方案到方法:选择用什么?→ DPP(兼顾难度和多样性)→ 诊断用什么?→ 自验证(内部正确性)+ 自一致性(跨轨迹一致性)→ 更新如何保证有效?→ Best-of-N + 严格门控
- 从方法到验证:三个不同领域(软件工程、技术工作、知识工作)× 多个基线对比 → 确认方法的通用性
六、通用性灵感
从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并非万能的。论文诚实地指出了几个重要局限:
环境可重置性要求:RHO需要对核心集任务多次重新求解,这在"一次性"或"不可逆"的场景中不适用(比如已发送的邮件、已执行的交易)。
Harness前提假设:RHO假设Agent能力中相当部分通过可编辑的Harness介导。对于能力完全"硬编码"在模型权重中的场景,RHO不适用。
安全性风险:在开放环境中,过去的轨迹可能被对抗性内容污染,从中蒸馏的Harness更新可能固化有害行为。论文建议在高影响场景中保持人工审核。
开放问题:如何扩展到不同的Harness表示形式?如何处理任务指纹变化?如何优化rollout预算?这些都有待未来探索。
总结
RHO论文最本质的贡献是回答了一个看似简单但极其重要的问题:Agent能不能自己教自己变好,不需要老师打分?
答案是肯定的。通过精心设计的三阶段方法——选最难最不同的任务、用自验证和自一致性挖掘改进信号、用Best-of-N确保更新有效——Agent可以在没有任何外部评分的情况下,仅从过去的经验中实现显著的自我进化。
在SWE-Bench Pro上19%的绝对提升(59%→78%),证明了"自监督Harness优化"这条路不仅走得通,而且效果惊人。这是Agent持续学习领域的一个里程碑——从依赖外部监督到完全自主进化的关键一步。