一个学了三年怎么用螺丝刀的人,换个名字就忘了怎么用——Growing Harness 说的是把"怎么用"从人脑搬进代码
这篇的核心主张很直接:别让模型在每个任务的上下文里重复重建同一套控制逻辑,把这部分变成可复用的代码,LLM 只留给真正需要语义推理的部分。效果是 LLM 调用减少 76.0–91.8%、部署成本降 74.4–98.6%。数字我逐个核过了,方法也核了,有几处论文自己打了折扣而转述没跟。
一、45% 这个稳定性的来源,比"更聪明"朴素
WebArena-Verified 上,Growing Harness 三个模型规模的成功率是 45.3 / 44.7 / 45.3——几乎不随模型变化。而 Tool-Calling 基线是 30.0(120B)→ 12.7(20B)→ 6.7(4B)。
4B 那一格是整篇最刺眼的地方:同一个 harness,4B 干出 45.3%,Tool-Calling 的 4B 只有 6.7%。差 6.8 倍。
反过来看,4B 模型的能力差距并没有消失,只是被 harness 吸收了。原文有一句限定词,转述的时候常被抹掉:
"Its value depends on reusing the learned harness enough to offset offline optimization."
只有同一个 harness 被复用足够多次,省下的在线成本才盖得住离线优化。这是一笔有门槛的账——任务流必须同源。论文自己列了这条限制:目标是把训练任务学到的控制行为迁移到同一分布内的新任务,没有证明一个 harness 能跨完全不同的任务域或工具接口。
【直引】部署侧还有一句硬要求:"Real deployment also requires sandboxing, explicit permission boundaries, and validation of generated code." 生成的 harness 代码不能未经审查直接上线。
二、消融表里有一格被抹掉了:没有回滚会先涨后跌
BrowseComp-Plus、gpt-oss-20b 部署、GPT-5.6-terra 优化器、只跑 10 步优化、单次评测:
- 完整方法:36.0%
- 去掉 function-level 定位:18.0%
- 去掉 gate validation:22.0%
- 去掉多失败联合窗口(K=1):28.0%
这两个数摆在一起看才有意思:定位失败的那一格掉得最多(36→18,掉一半),但 gate 掉到 22 之后还有个先涨后跌的过程。定位是骨架,gate 是刹车——没骨架车开不动,没刹车车开太快会翻。
三、只看百分比会被置信区间骗
原帖说"六个设置中五个取得最高平均成功率,第六个仅差 0.7pp"。这个说法准确,但我核了完整的表,得提醒两件事:
第一,那 0.7pp 的差距,置信区间半宽是 ±11.7 和 ±12.6。Tool-Calling 40.0 ± 11.7,Growing Harness 39.3 ± 12.6。也就是说这两个数在统计上完全分不开。
第二,全篇的区间半宽都在 ±10 到 ±13.4 之间。WebArena-Verified 上 Growing Harness 45.3 ± 13.4,Tool-Calling 120B 是 30.0 ± 11.4。基准只有 50 个 final tasks,跑 3 次。
论文全程说的是"最高平均成功率",没做显著性检验,也没这么宣称。这个自我约束是对的——但读者容易把"五个设置里最高"读成"统计显著领先"。
【判断】比百分比更该看的是那张成本表。BrowseComp-Plus + 120B:Tool-Calling 32.7 次调用 / $6.70,Growing Harness 6.0 次 / $0.87。调用次数从 32.7 掉到 6.0,差 5.5 倍,而成功率还涨了 9.3 个点。这一格的成本收益是硬账,不依赖显著性。
再看 WebArena-Verified + gpt-oss-20B:22.3 次 / $0.39 → 1.8 次 / $0.03。调用次数只剩十八分之一。
四、有一个数论文没写,但它决定这套方法能不能商业化
离线优化那侧的成本,被明确排除在报告之外了——"报告的成本不包括 evaluator 和 offline optimizer 调用"。
所以 74.4%–98.6% 这个降幅是部署侧在线成本,不是端到端。而这套方法要先生成 harness(训练阶段用的是 GPT-5.6-terra 或 GPT-5.4 做 optimizer),还要跑 gate 验证。赚回来的前提是复用次数足够多,而复用的前提是任务流同源。任务流一变,harness 就要重长,成本重新计。
这个前提成立时这门生意很好算:200 个训练任务 + 50 个 gate + 50 个 final,换一个能重复用几千次的 harness。不成立时,账就是反的。
【直引】另有一条边界:只有 harness 可学习,LLM 后端 M 和工具集 T 是固定的,方法不能靠换底层模型拿到额外能力。这跟"写程序增长"的叙事有点张力——代码在长,模型换不了。
下一根钉子:第三种失败情况。第一格(去掉定位)掉一半、第二格(去掉门)会先涨后跌,那"去掉多失败联合窗口"掉 8 个点说明联合修复是有独立贡献的。缺的是:一个 harness 跨任务域的迁移率。50 个任务训练出来的控制结构,换到一族新任务上还剩多少——这个数论文没测,却是"可复用专家智能体"这个说法唯一需要的那一格。