Administrator
Published on 2026-10-19 / 2 Visits
0
0

Harness² 自我改进 Agent 审计:过拟合、泄漏、成本与回滚

Harness² 证明了一件重要的事:模型权重保持不变,Agent 仍可通过修改外围系统提升能力。系统提示词、护栏、记忆、工具说明、Sub-agent、Skills、脚本和插件,都属于可优化的参数。

这项结果值得实验,但还不足以授权 Agent 把自我修改直接写进生产。真正的采用门槛有四道:改进能否泛化,评测是否隔离,收益是否覆盖完整成本,错误修改能否被发现并回滚。

生产系统需要回答的核心问题很具体:Agent 改错以后,我们能否知道错了,能否定位污染来自哪次修改,能否阻止它继续传播,能否恢复到上一个已知良好版本。

证据核验日期为 2026 年 10 月 19 日。Harness² 是 2026 年 10 月发布的 arXiv 预印本,官方仓库采用 Apache 2.0 许可证。文中基准结果属于作者评测,本文提出的生产门禁属于基于公开工件的工程化推导。

Harness² 改的到底是什么

Harness² 论文和官方仓库把两个递归层连接起来,同时保持模型权重不变。

任务层递归使用 Propose、Probe、Compose:先提出 Harness 修改,在当前任务上执行候选版本,再比较行为差异,最后组合出改进版。这个阶段不依赖任务的真实评分作为即时反馈。

Harnessing 层递归会把采用过的 Harness 和有证据支持的经验写入持久改进库,供后续任务调用。一次任务产生的修改由此可能跨任务传播。

增加递归预算有两种方式:

  • 并行递归同时探测多个通用候选和领域候选,再组合多个后继版本。它扩大搜索宽度。
  • 串行递归把改进后的 Harness 和执行证据带入下一步。它增加搜索深度。

论文在 JobBench、LAB 和 WorkBuddy-Bench 三个职业任务基准、四种模型与 Harness 组合上测试。一次 Harness² 改进使 GLM-5 和 Gemini 3.5 Flash 的表现超过基础 Harness。作者报告的最大提升分别是 WorkBuddy-Bench 11.5 分、JobBench 4.5 分、LAB 部分通过率 11.8 个百分点。增加递归预算后,测试区间内还出现进一步提升。

这些数字支持一个结论:Harness 适配可以在不训练模型权重的情况下改变系统能力。它们仍然无法单独证明持久修改能够泛化,也无法证明评测输入未受污染,更无法证明额外推理成本在生产中划算。

第一关:在改进循环之外证明泛化

只要 Agent 根据重复任务的结果修改 Harness,基准就已经发挥了训练数据的作用。把过程称为推理时改进,不会消除过拟合。

最低限度要准备三组任务:

  1. 探测集:对改进循环可见,用于生成修改和观察行为差异。
  2. 选择集:用于比较候选 Harness。只要选择过程读取结果,它就应与探测执行分离。
  3. 密封集:编辑器、执行器、记忆、检索和工具在最终评测前都无法访问。

随机切分仍然不够。近重复任务、同一模板、公开评分规则和已经被索引的答案都可能跨越边界。更稳妥的做法是按任务簇去重,再加入时间切分:完整任务家族只能位于一侧,最终测试尽量采用最近一次改进之后收集的新任务。

评测同时记录平均提升和尾部退化。整体多五分但关键工作流出现一次严重失败,这个 Harness 仍然不具备生产资格。至少要报告分领域变化、置信区间、最差回退和多次运行方差。

Harness² 的论文也明确承认:缺少真实评分监督时,改进依赖行为对比和模型判断,因此会受执行随机性与共同模型偏差影响。这些信号适合指导搜索,却不能保证正确,也不能保证迁移到不同任务。

论文也给出了一部分迁移证据。排除当前任务自身的 Library Entry 后,WorkBuddy-Bench 与 JobBench 仍有提升;JobBench 的经验库迁移到 WorkBuddy-Bench 后也出现正收益。这削弱了纯粹记住当前任务的解释,但测试任务流中的在线适配,与冻结后在独立生产分布上验收,仍然属于两种证据。

第二关:关闭基准泄漏路径

官方仓库写明了一个关键风险:执行器拥有无限制网络访问,Codex 运行时还会关闭沙箱,公开基准的评分规则可能直接出现在网上。仓库要求评测前配置网络限制,防止访问答案和评分标准。

实验指南还披露了一次更直接的现象:在发布验证运行中,Codex 主动下载了公开的 JobBench Rubric。论文说明 Rubric 没有被直接提供给执行器、编辑器或选择器,但没有记录正式实验是否启用了主机级网络隔离。因此,当前可以确认的是发布版存在已验证的泄漏路径;现有证据不足以断言论文成绩已经受到污染。

这条提醒应该升级为默认评测策略。

每次运行都冻结并记录:

  • 网络白名单与 DNS 策略;
  • 挂载文件、依赖缓存和基准工件;
  • 搜索、浏览器和检索索引;
  • 模型版本与 Harness 版本;
  • 任务 ID、随机种子、递归模式与预算;
  • Judge 配置和评分规则版本。

还可以在不可访问的答案文件中埋入唯一字符串,作为泄漏金丝雀。一旦字符串出现在 Agent 轨迹中,整次运行直接失效。日志还应搜索任务标题、评分规则片段和答案片段。

对 Harness 优化而言,泄漏比一次性模型评测更危险。误取到的规则可能被保存为 Skill、记忆、脚本或工具指导,从一次意外曝光演化为跨任务污染。

第三关:分级晋升持久状态

Harness² 会把采用的 Harness 和经验保存在索引库中。论文把经验合并、过期经验修订和检索优化列为后续工作,这意味着生产采用者要先补上状态治理。

可以把状态分成四层:

层级 生命周期 允许用途 晋升条件
探测状态 单次执行 探索候选修改 对比完成后删除
任务状态 单个任务 复用同一任务证据 禁止跨任务检索
候选记忆 一个评测周期 测试跨任务迁移 具备来源、回归和成本证据
生产 Harness 版本化发布 服务真实工作负载 审批、回滚工件和监控齐全

每个持久组件至少携带:来源任务、支撑轨迹、影响面、评测结果、成本变化、负责人、生成时间、失效条件和兼容版本。检索过程也必须可观测,否则出现回归时无法判断是哪条长期经验影响了决策。

安全默认值是先追加候选状态,再显式晋升。直接重写生产 Harness,会让学习系统和服务系统失去边界。

第四关:把回滚变成合并条件

Git 可以恢复文本文件,但 Harness 修改还可能改变记忆、脚本、插件注册、工具 Schema、外部资源和缓存状态。回滚因此需要语义合同。

每项修改都要保留五类工件:

  1. 修改前的完整 Harness 与依赖锁文件;
  2. 候选 Diff 与它声明的影响范围;
  3. 独立观测到的文件、进程、工具和外部副作用;
  4. 回滚或补偿程序;
  5. 能证明相关行为恢复的往返测试。

本站此前对 EvoUndo 的分析关注单项 Harness 修改的反事实恢复。Harness² 又增加了一层问题:经验和组件会跨任务累积。两者结合后,合适的控制面是版本化发布列车。先晋升一批组件,再跑密封回归、部署金丝雀、持续观测,并始终保留一条命令恢复到上一批稳定版本。

回滚测试还要保留修改之后发生的合法变化。全量旧快照虽然简单,却可能把后续正常状态一起覆盖。优先使用影响范围明确的恢复、事务日志;无法精确逆转的外部动作则使用补偿和人工介入。

第五关:给完整改进循环做预算

递归优化会额外调用执行器和编辑器。并行运行可以用更多资源换墙钟时间,但不会消除算力消耗。论文只在有限预算内刻画收益,没有给出普适最优值。

正确的经济口径是:

净价值 = 新 Harness 带来的后续收益 - 改进成本 - 评测成本 - 回归成本 - 运行风险

至少记录:

  • 提案、探测、组合、评分和报告的全部输入输出 Token;
  • 墙钟时间和峰值并发;
  • 每次采用修改对应的候选执行次数;
  • 密封任务上的能力提升;
  • 回归率和回滚频率;
  • 组件保持有效的生命周期。

多两分的提升,如果要求每个任务额外执行十次,可能适合法律研究,也可能完全不适合高并发客服。预算属于具体工作流,不能从基准标题直接迁移。

工具调用的变化也取决于任务。论文报告单步 Harness² 让 JobBench 和 LAB 的工具调用分别增加 19.7% 与 21.2%,同时让 WorkBuddy-Bench 降低 11.0%。质量提升既不自动代表更快,也不自动代表更便宜。

系统还需要停止规则:新探测无法提供新的行为差异、置信区间高度重合、候选修改开始重复、达到成本上限,或密封集表现下降时,停止递归。更多递归是一项实验变量,而不是默认优势。

一份可执行的生产审计合同

允许持久自我改进前,要求下面这组证据:

控制项 必需证据 失败动作
泛化 密封、去重、时间后移的测试集 拒绝修改或缩小范围
泄漏 网络、检索、文件与评分规则访问账本 整次运行失效
归因 组件 Diff 与任务、轨迹建立关联 只保留候选状态
安全 关键任务回归和策略测试 阻止晋升
成本 完整 Token、延迟和并发账本 降低预算或拒绝
恢复 影响范围内的回滚与往返测试 阻止晋升
运行 金丝雀指标、告警阈值和上一稳定版 自动暂停并回退

规则可以压缩成一句话:分数提升只产生候选,证据才获得晋升资格。

常见问题

什么是 Agent Harness?

它是模型外围、让模型具备 Agent 行为的系统,包括提示词、工具、记忆、Skills、编排、护栏、脚本与插件。

Harness² 会更新模型权重吗?

不会。公开框架保持模型权重不变,修改的是执行 Harness 和改进 Harness。

并行递归和串行递归有什么区别?

并行递归在同一深度探索多个候选和组合;串行递归把一个改进版连续带入后续步骤。

没有训练模型,为什么仍会过拟合?

Agent 会根据重复任务反馈修改持久提示词、记忆、工具或策略。这些都是完整系统的参数,对固定基准反复优化同样会过拟合。

为什么泄漏在自我改进系统里更危险?

一次泄漏获得的答案或评分规则可能被写进持久 Harness,继续影响后续任务和评测。

用 Git 回滚够不够?

只有全部相关影响都存在于版本化文件中时才够。记忆、缓存、插件、资源和外部副作用仍需按影响范围回滚或补偿。

参考资料


Comment