本文永久链接 – https://tonybai.com/2026/10/19/harness2-recursive-agent-harnessing-google-research

大家好,我是Tony Bai。

【导读】

同一个模型,换一套“Harness”,成绩就能差出十几分。谷歌研究团队最近发布 Harness²,让 Agent 在没有标准答案的情况下,自己诊断、自己改装、自己总结经验,而且改装经验还能留给下一个任务用。一步改进,GLM-5 在 WorkBuddy-Bench 上平均提升 11.5 分,反超了原版 Gemini 3.5 Flash。代码已开源。

【文章要点】

  • 问题:开放世界任务没有真值和验证器,手工调Harness成本高,静态Harness又难泛化。
  • 方法:双层递归。任务级用“Propose–Probe–Compose”,Harness级用可复用的“改进库”。
  • 关键设计:靠“同一任务下的行为对照”代替真值打分,改动要有观察到的证据才保留。
  • 结果:单步改进在 4 种配置、3 个基准上全部提升,弱模型受益更大。
  • 消融:去掉改进库、范围划分、合成,都会掉分。
  • 边界:对照证据不等于正确性验证;主实验用更强的模型做编辑器;开源仓库默认网络不受限,评测需自行加限制。


模型一样,“Harness”不同,结果天差地别

今天做 Agent 的人,几乎都有过这样的体验:同一个模型,放进不同的工具框架里,表现可以差得很远。

这个“框架”,业界现在叫 Harness(外壳):提示词、记忆、技能、工具说明、子 Agent 编排,都算在内。近期流行的一个说法是:Agent = 模型 + Harness。

问题来了:Harness谁来调?

人工调,费时费力。让 AI 自己调,也就是递归自我改进(RSI),听上去很美,但落到真实场景就卡壳。

开放世界的两道坎

论文把现有方法的困境归结为两点。

第一,没有标准答案。

开放世界里的任务,设计Harness时见都没见过,运行时又全是新的,既没有真值,也没有可靠的验证器。你怎么知道刚才那处修改是真的变好,还是碰巧?

第二,经验无法沉淀。

为任务 A 精心改出来的Harness,换到任务 B 往往水土不服。直接继承上一个Harness,还会在任务分布变化时引入噪声。

但论文指出了一个被忽视的事实:改进的过程本身就是宝贵的经验,比如问题怎么诊断、试了哪些改动、执行后发现了什么。这些东西,应该被留下来。

于是他们提出了核心问题:

递归自我改进,能不能既改进当前的Harness,也改进“以后怎么改Harness”?

Harness²怎么做:双层递归

名字里的上标 2,指的就是“两层”。整体流程如下:

1. 任务级递归:Propose–Probe–Compose

这是整个框架的发动机,一步分三环:

  • Propose(提出):先用当前Harness跑一遍任务,得到“参考执行”。然后生成两个候选Harness:一个“通用候选”,针对规划、工具使用、上下文管理、任务委派这类可能在各领域反复出现的缺陷;一个“领域候选”,针对当前领域的知识、流程和约束。
  • Probe(探测):把每个候选Harness放到同一个任务、同样的模型和环境下执行,再和参考执行做对比,得到“行为对照”,看它是缓解了目标缺陷、没变化,还是引入了新问题。
  • Compose(合成):综合所有证据,选择性地合并、修订、采纳某个候选,甚至保留原Harness不动。每个决定都要对应一个具体观察,而不是“我觉得会涨分”。

关键点在于:论文明确说,这些对照是为合成提供依据,并不验证答案对不对。因为执行有随机性,模型也有共同偏见,它是证据,不是裁判。

Harness components

2. 两种放大方式:并行与串行

用一个预算参数 k 控制探索量:

并行递归一次性铺开,再让多个合成会话各自融合;串行递归把上一步的Harness和执行证据一路传给下一步,后面的步骤可以修正前面的改动。k=1 时两者等价。

Harness components

3. Harness级递归:把“改进经验”存起来

每个任务结束后,系统会复盘整个改进记录,把被采纳的Harness和有证据支持的经验存进改进库。库里每个条目包含一个可执行Harness,加一份记录适用场景、经验教训和证据的 EXPERIENCE.md。

注意两个细节:

  • 下一个任务依然从统一的初始Harness出发,旧组件只会在 Propose 阶段被选择性复用或改造,不会自动继承。
  • 证据不足时,反思环节宁可不写新经验。仅仅“某个输出被选中”,不算可迁移的证据。

被改动的Harness有 8 类可编辑组件:系统提示词、护栏、记忆、技能、工具说明、脚本、子 Agent、中间件插件。每个组件都以文件形式挂载在运行时里,改动就是改文件。

Harness components

成绩单:数据怎么说

实验在三个专业基准上进行:WorkBuddy-Bench(代码、网页、办公)、JobBench(端到端工作任务)、LAB(法律工作,指标为逐条标准通过率 Partial)。执行模型是 Gemini 3.5 Flash 和 GLM-5,每个模型都跑在 OpenCode 和 Codex 两种Harness下,共 4 种配置。默认的Harness编辑器是 Claude Opus 4.8。

下表摘自论文,为单步改进(k=1)相对基础Harness的变化:

配置 WorkBuddy 平均分 JobBench 分数 LAB Partial
GLM-5 + OpenCode 64.2 → 75.7(+11.5) 20.6 → 24.2(+3.6) 59.6 → 71.4(+11.8)
GLM-5 + Codex 64.4 → 75.3(+10.9) 23.6 → 24.8(+1.2) 58.1 → 65.9(+7.8)
Gemini 3.5 Flash + OpenCode 72.4 → 77.5(+5.1) 31.5 → 36.0(+4.5) 79.9 → 81.9(+2.0)
Gemini 3.5 Flash + Codex 74.5 → 77.5(+3.0) 33.9 → 35.3(+1.4) 71.6 → 75.6(+4.0)

几个值得拎出来的结论:

① 四种配置全部提升。 最大涨幅分别是 WorkBuddy +11.5、JobBench +4.5、LAB +11.8个百分点。

② 弱模型受益更大,甚至能反超。 在 WorkBuddy 上,GLM-5 经过一步改进后拿到 75.7(OpenCode)和 75.3(Codex),超过了 Gemini 3.5 Flash 的原始成绩 72.4 和 74.5。弱模型配上改进后的Harness,可以超过强模型用原Harness。

③ 对手不太稳。 论文称,ReasoningBank 在代码任务上最多比基础Harness低 6.6 分;Harness Scaling 在 12 组“基准—配置”里有 7 组低于基础Harness。Harness²在 WorkBuddy 平均分和 JobBench 分数上,4 种配置全部超过所比较的基线。

④ 加预算继续涨。 并行递归 k=5,在单步基础上再涨:WorkBuddy +2.9 至 3.9,JobBench +3.0 至 4.2,LAB +2.6 至 6.7个百分点。以 Gemini 3.5 Flash + OpenCode 为例,k 从 1 增加到 5,相对基础Harness的收益在 JobBench 上从 4.5 升到 7.5,在 WorkBuddy 上从 5.1 升到 8.4。

⑤ 步数更少。 在 WorkBuddy 上,Harness²的平均执行步数大多低于或接近基线,说明提升不是靠“多跑几步”换来的。论文还提到,在算力与性能的权衡图上,Harness²的两种配置都落在经验帕累托前沿上。

拆开看:哪些设计真正有用

消融实验(Gemini 3.5 Flash + OpenCode,k=1):

版本 WorkBuddy JobBench
完整 Harness² 77.5 36.0
去掉改进库 74.4 34.2
去掉范围划分(通用/领域两类编辑器合并为泛化编辑器) 74.6 32.3
去掉合成(只选一个候选) 75.9 34.1

三个设计都有贡献。其中“范围划分”在 JobBench 上影响最大,掉了 3.7 分。

“直接改”不行,有库才行。

论文做了个对比:不给参考执行、不给候选探测、也不给改进库,直接让编辑器改基础Harness,结果反而退步:Code 从 73.4 掉到 63.2,Web 从 69.9 掉到 65.0。k=1 积累出的改进库能把性能拉回基础水平,k=5 积累的库则带来 Code +0.9、Web +4.4、Office +5.1 的增益。探索越充分,沉淀出的经验越值钱。

经验可以跨基准迁移。

用 JobBench 积累的库去帮 WorkBuddy 做单步改进,三个领域分别有 +0.6、+0.5、+2.9 的提升。不过论文也说明,这是回顾性测试,用于验证跨任务复用,而不是在线适应。

编辑器不必更强。

主实验用 Opus 4.8 做编辑器,难免让人怀疑“是不是强模型教弱模型”。论文给了同模型自我改进的实验:从 GLM-5 到 Claude Opus 5,五个模型在每个基准上都有提升;Opus 5 在三个基准上分别 +3.3、+5.5、+3.0,GLM-5 在 LAB 上 +13.7。

一个案例:43.1分到77.8分

论文给了一个 JobBench 的案例(Gemini 3.5 Flash + OpenCode)。基础Harness得分 43.1,轨迹显示失败原因不是知识缺失,而是流程缺陷:多个源文件的数据没有对账,产出文件写完后也没有重新打开检查。

Harness²做了两处针对性改动:

  • 通用干预:加入过程级护栏,要求先盘点全部输入、把每个数字追溯到来源,并用验证脚本重新打开产出文件检查。
  • 领域干预:补充一个专门的“对账”技能,覆盖日程、场地、人工、预算等文件,并附带数字格式处理的工具说明。

合成阶段对照参考执行后,四处改动全部保留。重跑之后,数据完成交叉核对,备忘录缺失的章节被补齐,得分升到 77.8。

动手:仓库怎么跑

仓库为 Apache-2.0 协议,要求 Linux、Python 3.12 和 uv。无需模型凭证就能跑本地演示:

uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2

演示用确定性编辑器和真实 Python 执行,同时展示两种递归模式。要跑真实基准,需要 Node.js 20+、Google Cloud CLI,并配置 Vertex AI 项目。以 LAB 为例:

harness2-setup lab
harness2 --bench lab --k 1 --mode parallel --only-domains antitrust-competition --max-tasks 1
harness2-judge --bench lab --k 1 --mode parallel
harness2-report --bench lab --k 1 --mode parallel

--k 是任务级递归预算,--mode 选并行或串行,--substrate cx 切换到 Codex 执行器,--dry-run 可以先预览任务选择而不调用模型。运行结果会保存在 runs/ 下,包括交付物、被采纳的Harness、反思笔记和评测结果,重复同一命令即可断点续跑。

冷静看:几个需要注意的地方

  1. 对照不等于验证。 论文自己承认,行为对照受执行随机性和模型共同偏见限制,只是“有依据的证据”,不是“正确性证明”。
  2. 编辑器与执行器的强弱。 主实验用较强的 Opus 4.8 做编辑,同模型实验缓解了这一疑虑,但两种设置下的绝对增益并不能直接比较。
  3. 成本。 改进本身要消耗 token。论文的算力对比把执行和改进成本都算进去了,Harness²仍在帕累托前沿,但具体到你的业务,需要自己算账。
  4. 并非处处第一。 论文也指出,在 LAB 的 Partial 指标上,Gemini 3.5 Flash + Codex 配置下是 Meta-Harness 领先;在个别子项上,离线优化的 Meta-Harness 也有更高分。
  5. 评测安全。 仓库说明,执行器网络访问默认不受限,Codex 沙箱默认关闭,而公开基准的评分标准可能在网上找到。正式评测前,需要自行配置网络限制,避免接触答案和评分标准。
  6. 官方定位。 仓库声明这不是 Google 官方支持的产品。

小结

Harness²给出的思路很清晰:模型权重不动,把“怎么改Harness”本身也当成可学习的对象。它不依赖标准答案,靠同一任务下的行为对照做判断;它不盲目继承旧Harness,而是把经验和证据存起来,按需调用。

当模型能力逐渐拉不开差距,Harness工程可能成为下一个拉开差距的地方。至于这套“自己改装自己”的机制,能在多大范围内稳定复现,还有待社区用真实业务来检验。

资料来源

  • 论文:Harness²: Recursive Agent Harnessing for an Open World,arXiv:2610.14224 - https://arxiv.org/html/2610.14224v1
  • 代码:github.com/google-research/harness2
  • 项目主页:harness2.github.io

还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 《从0 开始构建 Agent Harness》 将带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


还在为“复制粘贴喂AI”而烦恼?我的新专栏 《AI原生开发工作流实战》 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。