Google 论文:不改权重让 agent 自改 harness,单步最高涨 11.5 分

Harness^2: Recursive Agent Harnessing for an Open World

Ruiyao Xu, Yanfei Chen, Zhongying CuiZhu, Bhavana Dalvi Mishra, Yifei Ming, Han Yu, Rujun Han, Chen-Yu Lee, Tomas Pfister

cs.AI, cs.CL, cs.LG

2026-10-10

Google 提出 Harness²:冻结模型权重,让 agent 在无真值反馈的任务流里对比式自改 harness,单步最高涨 11.5 分,经验跨任务复用。

这篇在解决什么

Agent 的能力不只取决于模型,还取决于 harness:包在模型外面的系统提示、记忆、技能、工具规则和编排逻辑。同一个模型换一套 harness,分数能差出一截。用递归自我改进(RSI,系统自动对自己做持久修改,且改动会影响后续改进的生成方式)来进化 harness 的工作已有不少,放进开放世界就卡在两点:新任务在设计阶段没见过,测试时没有 ground-truth verifier,一次在线编辑到底有没有用,没有可靠信号能判断;为一个任务调出的 harness 高度定制,直接继承给下一个任务,分布一变就成了噪声。论文把问题再推一层:RSI 能不能同时改进当前的 harness,和未来改进 harness 的方式。

方法

Harness² 冻结模型权重,把 harness 拆成 8 个文件级组件:系统提示、guardrails、记忆、工具指引、技能、脚本、子代理、中间件插件,编辑就是改文件、出 diff。框架套在现成的 OpenCode 或 Codex 上,即插即用。

任务级递归是一个对比式三步:

预算 k 可以买宽度(并行探 k 份候选、k 个独立组合会话)或深度(串行 k 步精修)。任务结束后进入 harnessing 级递归:回顾完整改进记录,提炼「什么改动、在什么条件下、解决了什么」,连同被采纳的 harness 存进改进库(可执行组件加 EXPERIENCE.md)。下一个任务仍从公共初始 harness 出发,不继承上一个任务的定制版,库只用来指导新的提议与组合,这是对分布漂移的防御。工程上有一道硬隔离:编辑器的工作目录里不许出现任何评分、rubric 或 grader 判定,benchmark 分数只留给最终评测。默认编辑器是 Claude Opus 4.8。

结果

三个专业 benchmark、四个配置(GLM-5 与 Gemini 3.5 Flash,各配 OpenCode 与 Codex),三次打乱任务顺序的运行取均值:

配置指标baseHarness² 单步增益
GLM-5 + OpenCodeWorkBuddy-Bench Avg64.275.7+11.5
GLM-5 + OpenCodeLAB Partial59.671.4+11.8pp
Gemini 3.5 Flash + OpenCodeJobBench31.536.0+4.5
Gemini 3.5 Flash + OpenCodeWorkBuddy-Bench Avg72.477.5+5.1

k=5 并行递归再叠 2.93.9 分(JobBench 3.04.2,LAB 2.66.7 个百分点);WB-code 和 WB-office 上,两种递归在 k=2 就超过所有基线在 k=5 的成绩。基线侧:ReasoningBank 在 coding 任务最多比 base 低 6.6 分,Harness Scaling 十二组里七组不如 base,Meta-Harness 算力花得比 k=5 的 Harness² 还多、分数更低,唯一例外是 Gemini+Codex 的 LAB。

消融(Gemini+OpenCode,k=1):去掉改进库,WorkBuddy-Bench 掉 3.1 分、JobBench 掉 1.8;去掉双作用域编辑器,掉 2.9 和 3.7;去掉组合步骤,掉 1.6 和 1.9。迁移实验回答了两个质疑:executor 和 editor 用同一个模型(k=2),五个模型全部提升,GLM-5 在 LAB 涨 13.7 分,不依赖更强的编辑器;为 Gemini 调好的 harness 原样搬到 GLM-5,Code 涨 17.3 分(58.5→75.8)。JobBench 攒的库迁到 WorkBuddy-Bench,单步再涨 0.52.9 分。案例研究里,一个 JobBench 任务的基线轨迹暴露的是流程失败(数据没跨文件核对、输出写完不复检),编辑加上强制盘点输入、重开验证的 guardrail 和一个对账 skill,43.1 涨到 77.8。

为什么重要

对做 agent 的人,这组数字指向一个实用结论:预算受限时,调 harness 可能比换模型划算。GLM-5 改完 harness 的 75.7 高于 Gemini 原装配置的 72.4,弱模型加自适应脚手架反超强模型。WorkBuddy-Bench 上分数涨的同时 #Steps 还在降(Gemini+OpenCode 平均 25.4→21.9),没有以拉长执行为代价;从 OpenCode 出发的 k=5 版本比 Claude Code、Codex 等最强的固定生产 harness 再高 4.65.8 分。代码已在 google-research 开源。定位是工程化扎实的渐进改进,不是新学习范式,但每个设计都有消融或迁移实验撑着。

局限与存疑

论文自己解剖了九个回退案例,三类失败:selector 挑错候选,放着 95 分的执行结果选了 55 分的;错误前提跨候选传播,一条「key 不得固定」的错规则让四份候选全部掉分;judge 崩溃和双峰评分干扰归因。方法层面也承认,行为对比不能验证正确性,执行随机性和共享的模型偏差限制了证据可靠性,这是无真值设定的固有软肋。另外几点:主表全部由更强的 Opus 4.8 当编辑器跑出,同模型实验只做到 k=2;k=5 算力开销可观,论文没给成本数字;部分小增益与运行间标准差同量级(GLM-5+Codex 在 JobBench +1.2,SD 约 2.3);改进库按 domain 分目录、域内串行,跨 domain 的在线泛化只有一组离线证据;leave-one-out 复用分析是事后重跑,重复执行本身可能贡献了部分差异。

术语

原文与代码

相关论文

全部论文解读