Harness²:面向开放世界的递归智能体脚手架自进化框架 Harness^2: Recursive Agent Harnessing for an Open World
双层递归让智能体脚手架在无真值反馈的开放世界中自我改进并积累跨任务经验
前置知识
Agent Harness(智能体脚手架)
围绕冻结参数的基础模型搭建的运行时外围系统,让模型能作为自主智能体行动,即 Agent = Model + Harness。本文采用文件级分解,把 harness 表示为 $K=8$ 个可编辑组件:系统提示词、护栏、长期记忆、技能、工具指引、脚本、子智能体与中间件插件,每个组件以文件形式挂载并在不同时机激活(如系统提示每次调用注入、技能被调用时载入、中间件在每次工具调用时于模型裁量之外触发)。修改这些文件即可改变智能体行为而无需训练模型。
本文的全部研究对象就是 harness:任务级递归编辑的就是这 8 个组件文件,Compose 输出的也是这些文件的修改版本。不先理解组件构成与激活方式,就无法读懂 Propose/Compose 到底在改什么。
递归自我改进(RSI)
指 AI 系统把执行结果与内部反思转化为对自身的持久修改,且这些修改反过来影响后续改进如何生成、评估与保留,使进步可累积。改进对象可以是模型权重(self-rewarding LM)、改进程序本身(STOP)或 agent 代码(Darwin Gödel Machine)。本文把改进对象扩展到运行时 harness 层,并进一步区分「被改进的执行 harness」与「指导改进的改进 harness」两级递归。
Harness2 的双层递归正是对 RSI 概念的推广:任务级递归改进当前系统,harnessing 级递归改进改进机制本身。不理解 RSI 中「改进影响未来改进」的含义,就看不出第二层递归存在的意义。
无真值验证问题
在开放世界部署中,任务在测试时才出现,既没有标准答案也没有可靠验证器(如单元测试)来判断交付物对错,因此无法用「分数是否提高」来监督在线改进。已有方法只能依赖代理信号、假定的标准答案或成对输出判断,容易被执行噪声误导。
这是本文的出发点:Harness2 用「行为对比」——同一任务、相同模型与环境条件下,候选 harness 与参考执行在轨迹/交付物上的差异——替代真值反馈来支撑每一步编辑决策,理解这一替代关系是读懂方法的关键。
测试时扩展与 Best-of-k
指在推理阶段投入额外计算换取单任务更好的结果,典型如 Best-of-$k$ 采样后用打分器挑最优输出。本文用扩展预算 $k$ 控制并行候选数或串行精修步数,属于 harness 层面的测试时扩展:聚合的不是输出文本,而是可执行 harness 及其行为证据。
论文的并行/串行递归和 $k=1\ldots5$ 的预算实验需要与输出层 Best-of-$k$ 基线区分开,理解这一点才能读懂 Figure 5/6 的对比设计与「+ Recursion」实验行的含义。
研究动机
现有 harness 自我改进方法分两类,各有硬伤。离线方法(如 Meta-Harness)在固定训练任务上借单元测试或验证反馈搜索最优 harness 后再部署,但静态 harness 难以泛化到开放世界中多样且不可预测的新任务;开放世界方法(如 Harness Scaling)为当前任务在线递归改进 harness,或跨任务批次继承执行 harness。两者共同面临两大挑战:其一,开放任务在测试时才出现,没有真值答案或可靠验证器,已有方法只能依赖代理信号、假定的标准答案或成对输出比较,如何安全地用不完美的执行证据指导 harness 修改仍未解决——论文实验显示 ReasoningBank 在 WorkBuddy-Bench 编码任务上最多比基线低 6.6 分,Harness Scaling 在 12 个基准-配置对中有 7 个低于基线;其二,为任务 A 做的 harness 修改并不能改进任务 B 的改进过程本身,任务特定编辑在需求变化时失效,直接继承高度定制的 harness 会随任务分布漂移引入噪声递归。
本文的目标是论文的核心问题是:递归自我改进能否同时改进当前 harness 和未来 harness 的改进方式?具体目标是构建一个即插即用的开放世界递归智能体 harnessing 框架,要求:(1) 在没有真值反馈的条件下可靠地改进当前任务的执行 harness;(2) 把每次改进过程产出的可复用经验——弱点如何被诊断、测试了哪些改动、执行揭示了什么——沉淀为持续改进 harness,指导未来任务的精修;(3) 全程在单遍任务流上完成,模型权重冻结、不重访已完成任务,每任务的额外执行预算有界(由 $k$ 控制)。最终在 3 个专业基准、4 个模型-harness 配置上验证一致性收益。
与已有工作不同的是,独特切入点是作者的一个观察:改进过程本身(如何诊断弱点、提议了什么改动、探测揭示了什么)会产出高度可复用的经验,因此「改进过程也应成为学习的来源」。由此把单层 harness 优化升级为双层耦合递归:任务级递归改进「被改进的系统」(执行 harness),harnessing 级递归改进「改进系统本身」(持续改进 harness 及其经验库)。与改权重的 self-rewarding LM、改改进程序的 STOP、改 agent 代码但依赖基准评分的 DGM 不同,Harness2 用对比式 Propose–Probe–Compose 从不完美执行证据中提取有行为对照支撑的改动,完全不需要真值;与 Harness Scaling 等每任务从零改进不同,它用 harness 改进库(可执行 harness + EXPERIENCE.md)让经验跨任务累积,且新任务总是从公共 $H_0$ 出发做选择性复用而非自动继承,避免任务特定改动带来的噪声传递。
核心方法
直觉上像给同一道题请多位老师分别批改再汇总:先看基线 harness 在当前任务上的参考执行暴露了什么缺陷,再并行提出两类候选修改(跨领域共性缺陷 vs 领域知识),各自真实执行一遍观察行为差异,最后只把「有对照证据支持」的改动组合成新 harness;任务完成后复盘改进过程,把可复用 harness 和教训存入经验库供未来参考。形式化地,harness 为 $K=8$ 个文件组件 $H = (c_1, \ldots, c_K)$,与冻结模型 $M$ 组成智能体 $A(\cdot; M, H)$;执行记录 $e = (\tau, y)$ 含轨迹与交付物。核心对比步定义为 $(H', e', \xi) = \Phi(q_t, H, \mathcal{E}; \mathcal{R}_t)$,输入任务、当前 harness、历史 $\mathcal{E}$ 与固定的改进 harness $\mathcal{R}_t$,返回后继 harness、执行记录和步骤记录 $\xi$;任务结束后以 $\mathcal{R}_{t+1} = \mathrm{Update}(\mathcal{R}_t, H_t^\star, \mathcal{D}_t)$ 更新库,完成第二层递归。
三个本质创新:(1) 用「行为对比」替代真值验证——不判断交付物对错,而是让候选 harness 在相同模型与环境配置下执行同一任务,与参考执行比较轨迹与交付物,得到「改动缓解了目标缺陷 / 无变化 / 引入回归」的对照证据;组合决策必须绑定具体观察而非假想分数增益,这使不完美证据也能被安全使用。(2) 范围化双通道提议——每次同时提出不变候选(针对规划、工具使用、上下文管理、委托等跨领域共性缺陷)与领域特定候选(针对当前领域的知识、流程与约束),消融显示去掉范围化在 WorkBuddy/JobBench 分别损失 2.9 与 3.7 分,是三个组件中贡献最大的。(3) 双层递归解耦——执行 harness 每任务从公共 $H_0$ 重新精修,改进 harness(含经验库)跨任务演化,只传递有对比证据支撑的教训;经验库「仅当选择由执行对比支撑时才保留经验」的保守策略,支撑了 JobBench 到 WorkBuddy 的跨基准迁移(+0.6/+0.5/+2.9 分)。
方法步骤详情
任务级:(1) 参考执行:在当前 harness $H$ 上执行任务 $q_t$ 得 $e_0$,并行递归时收集 $k$ 条参考执行构成 $\mathcal{B}$。(2) Propose:编辑组件文件生成候选——不变候选与领域候选各 $k$ 个,可复用库中组件但任务特定事实须对照当前证据核验,构成候选池 $\mathcal{P}$。(3) Probe:每个候选在同一任务、匹配的模型与环境配置下执行,与参考对比产出行为对比。(4) Compose:并行形式下 $k$ 个独立组合会话各读全部证据,选择性合并受支持的改动、修订冲突、采纳单候选或保留原 harness,输出 $H'_j = \mathrm{Compose}_j(q_t, H, \mathcal{B}, \mathcal{P}; \mathcal{R}_t)$ 并执行;串行形式链式迭代 $(H^{(r)}, e^{(r)}, \xi^{(r)}) = \Phi(q_t, H^{(r-1)}, \mathcal{E}^{(r-1)}; \mathcal{R}_t)$,后步可基于累积证据保留、修订或纠正前步改动。(5) $k>1$ 时由智能体选择器对匿名化交付物比较选出 $H_t^\star$。harnessing 级:(6) Reflect:复盘完整改进记录 $\mathcal{D}_t$,仅保留有执行对比支撑的教训;(7) Update:把 $H_t^\star$ 与 EXPERIENCE.md(适用情形、教训、证据)连同索引写入库,下一任务从 $H_0$ 出发、在 $\mathcal{R}_{t+1}$ 引导下重复上述过程。
技术新颖性
技术新颖性:(1) 首次把 RSI 的改进对象定义为「运行时 harness 层」并形式化双层递归(被改进系统 + 改进机制),区别于改权重的 self-rewarding LM、改改进程序的 STOP、改 agent 代码且依赖基准评分验证的 Darwin Gödel Machine;(2) Propose–Probe–Compose 是一种「无验证器的对照实验协议」,把 A/B 测试思想引入 harness 编辑:候选在匹配条件下探测、以行为对比为证据、组合时逐条绑定观察,这与依赖成对输出判断或假定真值答案的现有方法有本质区别;(3) 并行递归遵循 RSA 的聚合原则,但聚合对象是可执行 harness 及其行为后果而非推理输出;串行递归把 self-refinement 思想搬到 harness 层且历史 $\mathcal{E}$ 可跨步累积修正;(4) 经验库要求「只有行为对比支撑的教训才保留」,选中最优输出本身不构成可迁移证据,这一保守写入策略是跨基准迁移得以成立的技术前提,也是与简单「继承上一任务 harness」方法的分水岭。
实验结果
主实验(Table 1/2,3 次运行均值):单步改进($k=1$)在 3 个基准 × 4 个配置上全部超过基线——WorkBuddy-Bench 上 GLM-5+OpenCode 平均分 64.2→75.7(+11.5,该基准最大单步增益),GLM-5+Codex 64.4→75.3,Gemini 3.5 Flash 两执行器均 77.5;JobBench 上 Gemini+OpenCode 31.5→36.0(+4.5);LAB Partial 上 GLM-5+OpenCode 59.6→71.4(+11.8 pp)。基线明显更弱:ReasoningBank 编码任务最多低于基线 6.6 分,Harness Scaling 12 个配置对中 7 个为负。弱执行器受益更大:改进后 GLM-5 在 WB(75.7)反超原始 Gemini(72.4)。并行递归 $k=5$ 再增 2.9–3.9(WB)、3.0–4.2(JobBench)、2.6–6.7 pp(LAB)。预算实验(Figure 5):$k$ 1→5 时 WB-code 76.5→80.8、WB-office 79.5→83.4 单调上升,$k=2$ 已超所有基线 $k=5$。消融(Table 3):库/范围化/组合各贡献 1.6–3.7 分。元级分析(Figure 7):无执行盲改使 Code 掉到 63.2,$k=5$ 库 +0.9/+4.4/+5.1,JobBench 库跨基准迁移 +0.6/+0.5/+2.9。同模型自改(Figure 8)五模型全提升。案例(Figure 9):单任务 43.1→77.8。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| WorkBuddy-Bench(办公场景交付物:Code/Web/Office 三域) | 平均分(三域宏平均,3 次运行) | GLM-5+OpenCode 75.7(单步 $k=1$),并行递归 $k=5$ 再 +3.9;Gemini 3.5 Flash+OpenCode 77.5,$k=5$ 后 80.8 | GLM-5+OpenCode 基线 harness 64.2;最强离线基线 Meta-Harness 69.7 | 单步 +11.5 分(该基准最大单步增益),递归后相对基线合计约 +15.4 分 |
| JobBench(端到端职业任务,长程执行,基线每任务约 20–64 步) | Score | Gemini 3.5 Flash+OpenCode 36.0,递归后再 +3.0;GLM-5+Codex 24.8,递归后再 +3.1 | Gemini+OpenCode 基线 31.5,Meta-Harness 35.8;GLM-5+Codex 基线 23.6 | 单步最高 +4.5 分,递归后相对基线最高 +7.5 分 |
| LAB(Harvey 法律智能体基准) | Partial(逐条准则通过率,百分点) | GLM-5+OpenCode 71.4,递归后再 +6.7 pp;Gemini+Codex 75.6,递归后再 +2.9 pp | GLM-5+OpenCode 基线 59.6;同配置 ReasoningBank 71.3 | 单步最高 +11.8 个百分点,递归后相对基线最高约 +18.5 个百分点 |
局限与改进
作者承认的局限:行为对比证据受执行随机性与共享模型偏差限制,论文明确指出「执行随机性和共享模型偏差限制证据的可靠性」;每任务仅 3 次重复运行,部分指标依赖模型评判(WB 分数、LAB Partial 的准则判定);递归收益伴随增长的计算开销,$k=5$ 时每任务总计算达 $10^2$ M token 量级。我观察到的局限:(1) 全部实验基于大型专有模型(Gemini 3.5 Flash、GLM-5 执行,Claude Opus 4.8 默认编辑),开源或更小模型上未验证;(2) 经验库只增不减,若有对比支撑但结论错误的教训被写入,没有自动纠错机制;(3) 单遍任务流设定未研究任务分布持续漂移下的库污染与遗忘问题;(4) LAB 上 Meta-Harness 在 Gemini+Codex 配置仍领先(76.5 vs 75.6),说明存在训练任务时离线优化仍有优势;(5) 每任务允许有限次重跑,在延迟敏感的在线生产环境中开销显著,即使 $k=1$ 也需要参考执行 + 2 次候选探测 + 组合后执行共约 4 次运行。
独立分析的弱点
(1) 探测开销与真实任务绑定:每个候选 harness 都要在当前任务上完整执行一遍才能产生对比证据,JobBench 基线每任务即需 20–64 步,$k=5$ 并行时成本急剧膨胀(Figure 6 显示每任务可达 $10^2$ M token)。改进方向:先用轻量代理探测(截短任务、子任务采样)预筛候选,只对进入 Compose 的少数候选做全量执行。(2) 对比证据统计强度弱:参考与探测各只执行一次,执行随机性可能把噪声波动误读为改进信号,论文也承认这一可靠性限制。改进方向:对关键改动做多次重复探测并以显著性检验把关,或为库中每条教训维护置信度并随新证据更新。(3) 经验库无淘汰与合并机制:跨任务只增不减,库膨胀后索引检索会引入无关甚至冲突经验。改进方向:周期性反思压缩库、合并冲突条目、按任务分布聚类淘汰过期组件。(4) $k>1$ 的选择器只看匿名化交付物,丢弃了各组合会话的决策与证据记录。改进方向:让选择器同时读取各候选的行为对比摘要与组合决策依据,做证据充分的选择。
未来方向
作者指出的方向:Figure 7 表明更大的任务级探索预算($k=5$)能积累出更强的改进库,且无需额外探测即可提升后续任务,经验库还能跨基准迁移(JobBench→WorkBuddy 三个域 +0.6/+0.5/+2.9 分),值得定量研究「探索预算—经验质量—迁移增益」的关系;附录 E.3 已初步评估向其他执行器模型的迁移。可延伸方向:(1) 把改进库更新形式化为在线学习问题,研究经验选择、遗忘与冲突消解的理论保证;(2) 多智能体共享经验库的协同 harnessing,以及库的隔离与隐私问题;(3) 在有验证器的领域(如代码单元测试)把对比探测自动升级为真值验证,检验框架的统一性;(4) 研究经验跨域迁移的边界条件——何时 JobBench 经验对法律任务有害;(5) 与 ReasoningBank 类策略记忆统一:消融显示去掉库掉 3.1 分,说明 harness 层与记忆层的经验沉淀存在互补融合空间。
复现评估
代码与项目页公开(github.com/google-research/harness2、harness2.github.io),附录 D/H 提供组件定义与各阶段提示词,方法对模型无关、即插即用。主要复现障碍是数据:三个基准(WorkBuddy-Bench、JobBench、Harvey 的 LAB)均为专业领域基准,论文未说明公开程度,LAB 涉及法律实务数据,可能需要合作获取。算力方面,执行器为 Gemini 3.5 Flash 与 GLM-5,默认编辑器为 Claude Opus 4.8,需要多模型 API 预算;开销集中在探测阶段,Figure 6 显示每任务总计算在 $10^0$–$10^2$ M token 量级,$k=5$ 递归约为单步的数倍。主表为 3 次打乱任务顺序的运行均值±标准差,可统计复核。若能取得基准数据,复现难度中等:核心工程是搭好 8 组件文件系统并实现 Propose/Probe/Compose/Reflect 四阶段编排与库索引,全程无需训练模型。
论文图表