Harness^2:面向开放世界的递归式 Agent 执行框架改进
Harness^2: Recursive Agent Harnessing for an Open World
Harness2两级递归改harness;GLM-5在OpenCode上WB平均分单步升11.5分。
- 开放世界任务设计时通常未见过,测试时没有真值验证器;只改当前任务或继承定制执行harness,都难稳定服务后续任务。作者要同时改进当前harness,以及未来如何改进harness。
- 任务级用Propose–Probe–Compose:提不变式与领域候选,匹配条件下比行为差异再合成;可平行或顺序扩大预算。任务后把有执行对比支持的经验写入改进库。下一题仍从初始harness出发,由库指导,权重不更新。
- 四配置单步均高于base。作者称WB上GLM-5+OpenCode单步+11.5分,JobBench与LAB Partial最高+4.5分、+11.8个百分点。k=5再增加;LAB有一处Meta-Harness更高。
- 作者指出递归增加推理成本,只刻画了有界预算内的权衡,未给普遍最优分配。无真值时靠行为对比与模型判断,不保证正确或跨任务迁移。递归形式和预算需预先指定。主结果为两执行器、两初始harness、三基准上的三次打乱顺序流。
- 被测模型
- Gemini 3.5 FlashGLM-5Gemini 3.7 FlashClaude Opus 4.8Claude Opus 5
- 基准
- WorkBuddy-BenchJobBenchLAB
- 指标
- ScorePartial#Steps
论文提出 Harness^2,一个可插拔的递归式 Agent 执行框架改进方法,通过任务级与改进级两层递归,在缺少真值验证器的开放世界任务中自动编辑执行框架。任务级递归使用对比式 Propose-Probe-Compose 步骤引导编辑,可用并行或串行递归进一步扩展;改进级递归则从这些编辑中提取经验,更新持续改进框架,使 Agent 更好适配未来任务。在三个专业基准和四种模型-框架配置上,单步递归均提升 GLM-5 与 Gemini 3.5 Flash 相对基础框架的表现,WorkBuddy-Bench 最高提升 11.5 分、JobBench 提升 4.5 分、LAB 提升 11.8 个百分点,并随任务级递归预算增加而进一步提高。
深度解读
这篇论文试图解决什么问题?
开放世界无真值时,同时改进当前harness与未来的改进过程。
开放世界任务缺少真值验证器,单任务 harness 修改也难以迁移。
- 场景:作者认为智能体效果取决于冻结模型之外的 harness(提示词、记忆、技能、工具与编排)。任务扩到办公与法律等领域后,手工反复设计 harness 成本高,因而需要递归自我改进(RSI)。
- 现有不足:早期方法对着固定训练任务、单元测试或验证反馈选出静态 harness,作者称其往往难泛化到开放世界。在线方法或只为当前任务改 harness,或把成功的执行 harness 带到后续批次,并依赖代理信号、假定答案或成对输出判断。
- 核心观察:单任务编辑在需求变化时失效,直接继承高度定制的执行 harness 会在分布变化时引入噪声。改进过程本身——如何诊断、测了哪些改动、执行揭示了什么——作者认为可以复用。
- 本文做法:作者提出 Harness2。任务级递归用对比式 Propose–Probe–Compose,在无真值时改当前执行 harness;harness 级递归把采纳结果与经验写入持续改进 harness,以指导后续任务。
有哪些相关研究?
作者将本文定位为无真值、单遍任务流上的两级harness递归改进。
递归自我改进
- RSI 的定义与对象:Duan et al.(2026)与 Weng(2026)把 RSI 写成:系统把执行结果变成对自身的持久改动,并影响后续改进如何生成、评估与保留。对象可以是权重(Yuan et al., 2024)、改进程序(STOP,Zelikman et al., 2024)或 agent 代码(Darwin Gödel Machine,Zhang et al., 2026b)。
- 元层与技能:Hyperagents(Zhang et al., 2026c)使元层修改过程可编辑。MetaSkill-Evolve(Wang et al., 2026b)与 MCE(Ye et al., 2026)共演化任务产物和支配其构造的技能。输出级方法包括 Self-Refine(Madaan et al., 2023)与 Reflexion(Shinn et al., 2023)。
- 作者的对照:作者称这些系统多通过效用、基准或验证信号优化。Harness2 研究的是部署任务流上、无真值、且不重放已完成任务时,如何把任务特定改进变成可复用经验。
Harness 优化与在线演化
- 从组件到完整 harness:自动优化从提示词与工作流(DSPy,Khattab et al., 2024;GEPA,Agrawal et al., 2026;ADAS,Hu et al., 2025;AFlow,Zhang et al., 2025)扩到记忆与技能,再到完整可执行 harness(Meta-Harness,Lee et al., 2026b;AHE,Lin et al., 2026;HarnessX,Chen et al., 2026)。
- 离线与测试时:离线方法在固定训练或开发任务上反复评估候选。测试时方法为当前任务改 harness,或在批次间携带演化中的 harness(RHI,Lee et al., 2026a;Harness Scaling,Wang et al., 2026a;TTHE,Nie et al., 2026b)。Adaptive Auto-Harness(Liu et al., 2026)使用任务解决后才揭示的结果。
- 同期工作:Continual Harness(Karten et al., 2026)在连续 episode 内改进。HCL(Kang et al., 2026)与 HSI(Zhou, 2026)分别研究保留感知的适应和可编辑的改进策略。作者称 Harness2 在单遍部署流中同时做对比式任务级改进和对改进 harness 的更新,且不更新模型权重。
比较表中的定位
- Table 4:作者用对象、阶段、是否有外部正确性标签、是否单遍流式、是否做测试时缩放、是否更新改进器来对照。Harness2 标为 Online、无 Label、Streaming、Scaling、Improver Update 均为是。作者把区别放在:无标签任务流上同时改两种 harness,并从任务级探索中学习,而不是只具备其中一项。
基线方法与基准
- 基线:Base harness 不改初始配置。ReasoningBank(Ouyang et al., 2026b)固定 harness,把过去轨迹蒸馏的策略检索回上下文。Meta-Harness(Lee et al., 2026b)在训练划分上离线搜索,再原样部署。Harness Scaling(Wang et al., 2026a)对每个评测实例花额外推理改 harness,不跨实例携带状态。
- 基准:WorkBuddy-Bench(Team et al., 2026)、JobBench(Li et al., 2026)、LAB(Harvey AI, 2026)。
论文如何解决这个问题?
Harness2用对比式探测合成改当前harness,并把经验写入改进库。
Harness2 在冻结基座模型上做递归 agent harnessing:任务级改进当前执行 harness,harness 级更新指导未来修订的改进 harness。
设定与可编辑表面
- 执行智能体:模型 M 权重冻结。harness H 由 K 个可编辑组件组成,与 M 组合成智能体,不改参数。作者采用 AHE 的文件级分解并多一个组件,K=8:system prompt、guardrails、memory、skills、tool guidance、scripts、subagents、middleware plugin。各组件以文件挂载。Figure 2 与附录 Table 5 给出激活时机。
- 开放世界流:N 个任务,无真值答案或带标签的验证反馈。每题从共同的初始执行 harness H0 出发,可在有界预算内重跑当前任务后再交卷。已完成任务不重放。
- 两级分工:任务级递归用生成的 harness 与执行证据改当前执行 harness。harness 级递归在交卷后,用采纳的 harness 与改进经验更新改进 harness。改进 harness 在任务级递归期间固定。
对比式 Propose–Probe–Compose
一步对比改进记为 (H′, e′, ξ)=Φ(qt, H, E; Rt):输入当前任务、执行 harness、任务内历史与固定的改进 harness,返回后继 harness、其执行记录,以及含参考执行、候选、探测、合成决定与后继执行的步骤记录。
- Propose:先采样参考执行,只观察 harness 如何行为,不判定交付物是否正确。再提两个候选。不变式候选针对可能跨域复发的缺陷,如规划、工具使用、上下文管理或委派。领域候选针对当前领域的知识、流程与约束。候选是对组件文件的可执行编辑,可改写库中组件,但任务特定事实须对照当前证据核对。
- Probe:每个候选在同一任务、匹配的模型与环境配置下执行。与参考比较轨迹和交付物,看编辑是缓解目标缺陷、行为不变,还是引入退步。作者写明,对比指导合成,并不验证任务正确性;执行随机性与共享模型偏差会限制证据可靠性。
- Compose:阅读参考、候选、diff 与任务内执行证据,可合并有支持的改动、修改冲突、采纳其一或保留当前 harness。决定须绑到具体观察,而不是假定的分数增益。合成后再执行,决定与证据记入步骤记录。
平行与顺序递归
- 预算 k:正整数。平行时每个范围 k 个候选、k 次合成;顺序时链式 k 步。改进 harness 在整个任务级递归中固定。
- 平行:先收集当前 harness 的 k 次参考执行,再独立提议并探测 k 个不变式候选与 k 个领域候选。k 个合成会话各自看到全部候选池,选择性组合后执行。作者称实现上只做一次群体更新,k 控制宽度而非深度。
- 顺序:从 H0 起做 k 个对比步,每步以上一步 harness 和累积执行历史为条件。初始历史含 k 次 base 执行,每步后追加步骤记录。后步可依据先前证据保留、修改或纠正更早改动。
- 交卷选择:k>1 时,选择器对照任务请求与源材料比较匿名交付物,返回已有输出,看不到来源 harness,也不合成新内容。对应 harness 记为采纳,作者写明星号表示采纳而非已验证的最优。选择不再改 harness。k=1 时两种形式都退化为基本对比步并跳过选择。附录 H 给出各阶段完整提示词。
Harness 级递归
- 反思:交卷后审阅完整改进记录,包括参考执行、候选与探测、合成决定和选中结果。只保留有执行对比支持的经验。仅因某输出被选中,不建立可迁移性。证据不足则不新增经验条目。
- 库更新:Rt+1=Update(Rt, Ht★, Dt)。每条含可执行 harness 与 EXPERIENCE.md(适用情境、经验、支持证据),另有索引供后续按需查看。附录 D.2 描述库组织。
- 下一题如何用:仍从 H0 开始,不自动继承上一题的执行 harness。先前组件经 Propose 选择性复用或改写;累积经验也进入 Probe 与 Compose。模型权重、阶段指令和决策规则固定,库演化。更大的任务级探索产生更多执行证据与合成决定。
运行设置
- 角色:主实验执行器为冻结的 Gemini 3.5 Flash 与 GLM-5,初始 harness 为现成 OpenCode 与 Codex,并加上基准的参考说明。默认编辑器与选择器为 Claude Opus 4.8,在 OpenCode 中以高推理强度运行;证据放在工作目录,不内联进提示词。
- 校验与上限:无效树(技能无触发句、脚本不能编译、技能调用了未附带的助手)带验证信息重试一次;再失败则继承该阶段开始时的树并记录回退。单次 rollout 上限 200 个模型回合、3600 秒;WorkBuddy-Bench 使用其容器超时,为基准默认的两倍。一次 rollout 不记忆其他任务。含评分裁决、量表或分数的目录不会交给改进会话。
论文做了哪些实验?
单步在四配置三基准上高于base;k=5继续加分,LAB有一处例外。
实验设置
- 四种配置:冻结执行器 Gemini 3.5 Flash、GLM-5,初始 harness 为 OpenCode、Codex。默认编辑器与选择器为 Claude Opus 4.8。另有同一模型兼任执行器与编辑器,以及把为 Gemini 3.5 Flash 改进的 harness 原样用于其他执行器。
- 基准规模:WorkBuddy-Bench 按类别对半划分,报告测试半 Code 40、Web 35、Office 25。JobBench 用冻结的 31/34 划分,报告 34 题。LAB 报告 100 个测试任务;24 个开发任务只给 Meta-Harness 作搜索集。训练半仅 Meta-Harness 使用。
- 指标与评审:WorkBuddy-Bench 的 Score 为通过检查的比例,含确定性检查,以及需要时由 Gemini 3.5 Flash 做的 LLM/VLM 评审;期望值不暴露给流水线。JobBench 的 Score 为加权量表得分除以满分,评审为 Claude Opus 4.8,量表不给执行器、编辑器或选择器。LAB 无可执行检查,由 Claude Sonnet 4.6 按条目判分,报告 Partial。另报告每题 #Steps。
- 协议:主表为三次运行的均值和标准差,每次打乱任务顺序。Harness2 为单步 k=1;+ Recursion 为平行递归 k=5 后均值的变化。每个基准流开始时库为空,每题后更新。
- 基线:Base harness、ReasoningBank、Meta-Harness(离线,表中标 †)、Harness Scaling。基线的修订与反思也用 Claude Opus 4.8。ReasoningBank 用 gemini-embedding-001 做嵌入检索。附录 C 另有 Best-of-k;Figure 5 图例包含它,正文未给出其读数。
- 未在正文列出的量:Figure 6 以交卷前全部 token 计每题总计算量,横轴单位为 M tokens,正文未给出各点读数。
主结果
据 Table 1–2。格子为 k=1 的 Harness2 均值,括号为同一配置的 base。标准差见原表。
表格较宽,可左右滑动
配置 WB Avg JobBench LAB Partial Gemini 3.5 Flash / OpenCode 77.5(72.4) 36.0(31.5) 81.9(79.9) Gemini 3.5 Flash / Codex 77.5(74.5) 35.3(33.9) 75.6(71.6) GLM-5 / OpenCode 75.7(64.2) 24.2(20.6) 71.4(59.6) GLM-5 / Codex 75.3(64.4) 24.8(23.6) 65.9(58.1) - 单步方向:作者称四种配置上,单步都高于各自 base。作者指出 WB 上最大单步增益是 GLM-5、OpenCode 的平均分提高 11.5 分;JobBench 与 LAB Partial 的增益最高为 4.5 分与 11.8 个百分点。
- 相对基线:作者称四种配置的 WB Avg. 与 JobBench Score 上,单步高于所比较基线。例外在 LAB Partial:Gemini 3.5 Flash、Codex 下,递归前最高是 Meta-Harness 的 76.5,高于表中该格的 Harness2(Table 2)。
- 不对称与低于 base 的基线:作者称 GLM-5 在 WB 与 LAB 上的绝对增益大于 Gemini 3.5 Flash;JobBench 上则是 Gemini 更大,OpenCode 与 Codex 下为 4.5 与 1.4 分,GLM-5 为 3.6 与 1.2 分。作者称单步后 GLM-5 的 WB 平均分高于表中对应的 Gemini base。作者称 ReasoningBank 在编程任务上最多比 base 低 6.6 分;Harness Scaling 在十二个基准–配置组合中有七个低于 base。原表 #Steps 有增有减。
任务级递归与计算
- Figure 1 与 Figure 5:Figure 1 左为 Gemini 3.5 Flash、OpenCode 的 WB 分领域结果。作者称平行 k=5 在每个领域都超过该图中最强基线 Meta-Harness;Code、Web、Office 为 80.8、78.3、83.4,相对 base 的标注增量为 +7.4、+8.4、+9.4。Figure 5 比较 WB-code 与 WB-office 的平行和顺序递归,该段未写明模型。作者报告两者在 k 从 1 到 5 时单调上升;平行在 Code 从 76.5 到 80.8,在 Office 从 79.5 到 83.4。这些端点与 Table 1 中 Gemini 3.5 Flash、OpenCode 的 Harness2 行及上述 k=5 分数相同。作者称 k=5 时平行高于顺序,k=2 时顺序在 Code 上更高;两种递归在 k=2 时都高于图中各基线在 k=5 的点。Harness Scaling 在两个领域都从 k=2 退到 k=3。
- 相对单步:作者称 k=5 平行递归在单步之上再增加 WB 2.9 至 3.9 分、JobBench 3.0 至 4.2 分、LAB Partial 2.6 至 6.7 个百分点。作者称 JobBench 上 Gemini 与 GLM-5 的 OpenCode–Codex 初始差距(2.4 与 3.0 分)都缩到 0.5;WB 上 Gemini 从 2.1 降到 0.4,GLM-5 从 0.2 增到 1.3。作者称递归并不一律缩小初始 harness 差距。
- 计算:Figure 6 计入交卷前全部 token。作者称所评估的两种 Harness2 配置落在经验帕累托前沿上。Gemini 3.5 Flash、OpenCode 下,k 从 1 到 5 使相对 base 的增益在 JobBench 从 4.5 到 7.5 分,在 WB 从 5.1 到 8.4 分。作者称 Meta-Harness 在 k=5 时计算量高于 Harness2、表现更低。正文未列各点 token 读数。
改进库与复用
- 不再探测:Figure 7 左,作者报告不看参考执行、候选探测或库、直接改 base 时,Code 从 73.4 降到 63.2,Web 从 69.9 降到 65.0。该段未写明执行器;73.4 与 69.9 与 Table 1 中 Gemini 3.5 Flash、OpenCode 的 base 相同。k=1 的库恢复到 base 水平;k=5 的库在不再探测时,于 Code、Web、Office 分别支持 0.9、4.4、5.1 分增益。
- 跨题与跨基准:作者称 JobBench 来源的库使 WB 单步改进分别提高 0.6、0.5、2.9 分(Figure 7 右)。去掉本题自己的条目后,WB 从 77.5 到 79.4,JobBench 从 36.0 到 37.7(Figure 11)。作者称这是离线复用分析,不是在线适应估计,重复执行也可能造成差异。
- 改动来自哪里:Figure 10,库来源出现在 LAB 与 WB-office 已修改文件的 22%、JobBench 的 47%;仅 2–10% 的修改文件至少一半行来自库条目。作者称改编比大段复制更常见;技能与脚本约占各基准编辑的一半。
同模型、迁移与失败案例
- 同一模型两角色:Figure 8,OpenCode、k=2。作者称从 GLM-5 到 Claude Opus 5 的五个模型在每个基准上都有提高。正文给出的增益:Opus 5 在 WB、JobBench、LAB 为 3.3、5.5、3.0 分;GLM-5 在 LAB 为 13.7 分。中间三个模型名称正文未列出。作者称改进不必依赖更强的编辑器。
- 跨执行器:Figure 12 把为 Gemini 3.5 Flash 改进的 harness 不经再适应用于其他执行器。作者报告 GLM-5 的 Code 从 58.5 到 75.8(+17.3 分);Gemini 3.7 Flash 在 Code +0.3、Office +6.4;Claude Opus 4.8 +2.6 与 +1.1。作者称收益随执行器与领域变化。
- 低于参照的案例:附录 Figure 14 把九个结果分成三类。选择器选了更弱候选,如 WB-code 从 96 到 55,池中有 95 分候选;LAB 从 54 到 26。错误前提在候选间传播,如 75 到 64、83 到 81。另有结果波动、评审未返回裁决、编辑未触及被评条目,如 WB-web 从 44 到 10;作者称评审会话崩溃,三次 stock 运行也遇到。作者称这些案例指向覆盖与精度的平衡、挑战共享假设的探测,以及用重复执行区分编辑效应与结果波动。
其他消融与分析
- Table 3(Gemini 3.5 Flash、OpenCode、k=1):完整 WB / JobBench 为 77.5 / 36.0;去掉库 74.4 / 34.2;去掉范围分工 74.6 / 32.3;去掉合成 75.9 / 34.1。作者给出的降幅为 3.1 与 1.8、2.9 与 3.7、1.6 与 1.9 分。
- Table 6(同执行器,完整为平行 k=5):完整三域平均 80.8;去掉 prompt 组 79.3、去掉 skills 75.5、去掉 scripts 77.1,均高于 base 72.4。技能在 Code、Web 损失 3.6、6.9 分,脚本在 Office 损失 7.4 分。作者称不能据此建立可加效应。
- Table 7(同执行器、k=1):工具错误率 WB 从 0.8% 到 0.5%,JobBench 从 14.4% 到 9.1%,LAB 从 2.0% 到 1.6%。调用次数 WB 减少,JobBench 与 LAB 增加。作者称改进可以在不缩短执行的情况下提高分数。
- Figure 13:未改动的 CodeBuddy、OpenCode、Codex、Claude Code 中,没有一个在每个领域都领先;Claude Code 在 Code 与 Office 最高,Codex 在 Web 领先。从 OpenCode 出发的 Harness2(k=5)比最强固定对照高 4.6、5.8、4.9 分,相对自身起点高 7.4、8.4、9.4 分。作者注明改进用了额外测试时计算。
- 单题案例:Figure 9 在 JobBench、Gemini 3.5 Flash、OpenCode 上,base 为 43.1,合成后重跑为 77.8。作者称轨迹显示的是流程失败而非知识缺口。附录 E.7 另有多领域单题,含 60.0 到 100.0、23.6 到 100.0、44.4 到 94.5、72.0 到 100.0。
有什么可以进一步探索的点?
作者指出递归有额外推理成本,行为对比不保证正确或可迁移。
作者指出的局限与后续方向
- 递归成本(附录 F):改进需要额外执行和编辑会话;提高预算会增加推理成本。平行会话在资源允许时可以降低延迟,但不消除这部分计算。实验只在有界预算内刻画权衡,而不是给出普遍最优分配。
- 执行反馈(附录 F):没有真值监督时,改进依赖行为对比与模型判断。这些信号对执行波动和共享模型偏差敏感,不保证正确,也不确立采纳的改动会迁移到不同任务。
- 库的管理(附录 G):当前库是简单索引。作者提出库变大后可以合并重叠组件、修订过时经验,并按当前任务与可用证据改进检索,以保持紧凑并保留复用所需上下文。
- 自适应递归(附录 G):目前预先指定递归形式与预算。作者提出未来可按任务难度和已有经验的相关性分配探索,或在额外探测几乎不带来新证据时停止,以平衡当前成本与对未来 harnessing 的价值。
实验覆盖范围
- 主结果为两个冻结执行器(Gemini 3.5 Flash、GLM-5)与两个初始 harness(OpenCode、Codex),基准为 WorkBuddy-Bench 测试半(40/35/25)、JobBench 34 题、LAB 100 题(附录 B,Table 1–2)。
- 主表每个数字是三次独立流、任务顺序打乱后的均值和标准差。单步为 k=1,平行递归的主对比为 k=5。Figure 5 另报告 k 从 1 到 5 的平行与顺序曲线,该段未写明模型。
- 对照为 Base harness、ReasoningBank、Meta-Harness、Harness Scaling。Meta-Harness 使用训练半或 LAB 的 24 题开发集;Harness2 与其他基线不使用这些划分。
- 默认编辑器与选择器为 Claude Opus 4.8。另报告同一模型兼任两角色(OpenCode、k=2),以及把 Gemini 3.5 Flash 的 harness 原样用于 GLM-5、Gemini 3.7 Flash、Claude Opus 4.8。
- 论文未报告 LLM/VLM 评审与人工判定的一致性;正文未列出 Figure 6 各点的 token 读数。
总结一下论文的主要内容
两级递归在无真值任务流上改harness,并积累可复用改进经验。
Harness2 是面向开放世界任务流的递归 agent harnessing:冻结模型不变,同时改当前执行 harness 和未来的改进机制。
- 问题:新任务在设计阶段未见过,没有真值验证器。只为当前任务改 harness,或把高度定制的执行 harness 继承下去,都难以稳定服务后续任务。作者要让 RSI 既改当前 harness,也改未来如何改进。
- 方法:任务级用对比式 Propose–Probe–Compose。先看参考执行,再提不变式与领域两类候选,在匹配条件下比较行为差异,按具体观察合成,而不是按假定分数。预算 k 可平行加宽或顺序迭代;k>1 时由匿名交付物选择器交卷。任务后只把有执行对比支持的经验与采纳的 harness 写入改进库。下一题仍从共同的 H0 出发,由库指导提议与合成。默认编辑器为 Claude Opus 4.8。附录 H 给出阶段提示词。
- 结果:在 WorkBuddy-Bench、JobBench、LAB 上,Gemini 3.5 Flash 与 GLM-5 配 OpenCode 或 Codex,单步都高于各自 base。作者报告最大单步增益为 GLM-5、OpenCode 的 WB 平均分 11.5 分,以及 JobBench 4.5 分、LAB Partial 11.8 个百分点。平行 k=5 在单步上再增加,作者称最多再加 3.9 分、4.2 分与 6.7 个百分点。LAB 上 Gemini 3.5 Flash、Codex 的 Partial,递归前 Meta-Harness(76.5)高于单步 Harness2。Figure 1 中 Gemini 3.5 Flash、OpenCode、k=5 的分领域分数为 80.8、78.3、83.4。
- 作者的结论:作者称范围化提议、合成和累积的 harnessing 经验有贡献,递归 harnessing 可以把任务特定改进变成开放世界在线适应的可复用基础。附录 F 同时写明,这依赖额外推理,且行为对比不保证正确或跨任务迁移。