Skip to content

第二十二章 Harness 进化:从失败病理到版本化变更 ​

证据地位:本章综合截至 2026-09-19 已核验的公开研究与作者工程推导。论文结果均受版本、模型、任务和费用口径限制,本书没有重跑作者的大规模实验。

Harness 进化直接改变模型的决策环境:提示、工具接口、上下文编译、检索与压缩、路由和工作流都可成为候选。模型配置在这里只指选择哪个模型及怎样调用;更新可学习参数属于第二十三章。沙箱与权限设置也可由组织调整,但不能因此交给同一候选自行扩大授权。

1. 本层的证据模板实例 ​

字段Harness 实例
可变对象提示、工具视图、上下文与执行规则、运行配置
观测信号失败簇、工具错误、轨迹、在线对照、成本与安全事件
归因方法失败分类、条件消融、模型×Harness 交叉实验
候选生成人工假设、演化代理、搜索与重组、模型适配
评价隔离方式冻结评价器、数据用途与环境,候选及其代码不可读封存资产
门禁判据构建有效、机制可触发、全分母差值满足目标、关键切片非劣、硬门通过
发布方式影子运行、有限灰度,按任务、模型与租户启用
回滚粒度完整 Harness 配置包及兼容状态
失败模式规则堆积、过拟合、未激活补丁、指标投机、组合漂移

2. 把失败描述改成可检验提案 ​

“工具调用失败”可能是选错工具、参数定义不清、缺少校验、返回噪声、网络故障或权限拒绝。提案先说明改哪里、针对哪种可观察失败,再列出仍未排除的解释。服务返回 500 时,追加“认真选择工具”通常没有触及故障机制。

一个可审计提案应包含父版本、目标组件、失败簇、贡献假设、补丁、预期收益、风险、激活事件、评测计划和回退组合。下面是本书的平台记录示意:

json
{
  "base": "harness-42",
  "target": "tool_catalog.retrieval",
  "pathology": "wrong_tool_when_catalog_gt_80",
  "hypothesis": "static schemas overload selection",
  "mutation": "server-grouped on-demand discovery",
  "activation_beacon": "tool_catalog_lookup",
  "rollback": "harness-42"
}

单因素试验方便诊断,但不是所有有效组合的必经前置。存在交互时,可以预先设计小规模因子试验;只要多个对象一起改动,就不能把全部收益归给其中某一句提示。版本规范化、重写注释或合并配置后也要重测,文字看似同义不代表模型行为相同。

3. 用不同信号诊断,保留替代解释 ​

Self-Harness 将弱点挖掘、最小提案和验证连接起来,在冻结模型与指定 Terminal-Bench-2.0 留出子集上报告改善。它的启发是针对具体弱点修改,而非寻找一套万能提示。Self-Harness v3

HarnessEvolve 给执行代理正确答案来生成参考轨迹,再由评价代理检查是否真正经过必要的执行过程,避免只是照抄答案。优化者比较失败路径与参考路径,并聚合错误提出修改;质量门检查泄漏与提示膨胀,性能门比较当前及近期批次,另用留出验证选择快照。这里的验证集已经参与选型,不能改称封存终测。正确路径可能不唯一,首次分歧是诊断线索,不是自动获得的因果根因;没有可验证答案的开放任务也不能直接照搬此法。HarnessEvolve v1

Ecdysis 从多个任务聚合失败,让不同角色诊断后形成修改规范,试图区分系统性 Harness 缺陷与针对某个模型弱点的临时迎合。它称这一过程为 training,但所述优化阶段固定任务模型参数与环境,更新的是 Harness;接受候选主要看训练集整体分数,冻结后再评价留出任务。多角色讨论仍可能共享偏差,训练分数提高也不等于通过本书的独立非劣与安全门。Ecdysis v1

三种方法分别增加弱点定位、参考路径和跨任务共性信号。工程上可以把诊断变成可证伪提案,再用对照检查;不能把诊断代理的确信当作已经排除了模型、环境或接口的其他解释。

4. 从搜索档案到生成器 ​

本书统一采用 HarnessBank v2;GSME 是同一工作的 v1 历史名称。v2 以“修改位置×失败病理”组织语义基因库,保存不同机制并支持重构与跨单元重组;先用小样本筛选,再作更完整的训练集评价。有效性、激活、配对显著性和增益检查分别约束不同问题,不能把这些条件统称为“通过以后天然可信”。其 SWE-bench 测试仅 26 题,作者将该结果视为初步信号,未通过其统计门槛。这里采用机制解释,不移植旧版摘要的大幅增益数字。HarnessBank v2

JIT-Agent 使用记忆、计划、动作和能力编排四模块协议,部署时由已经训练的生成器按任务产出 Harness。静态模式可生成多个候选再选择一个执行,只执行一个环境 rollout 不等于只付一份生成和选择费用。训练生成器、训练中的有界修复和部署时固定参数分别在第二十三章说明;本层需要封存实际生成的代码、配置及所用经验库,不能只保存生成提示。JIT-Agent v2

HSI 允许冻结模型承担任务执行、演化与元演化角色,并保留外层锚点。NLE 的全称是 NetHack Learning Environment。NLE 官方说明 在 BALROG 的这一环境中,作者在所测冻结模型和实验设置下没有观察到实质改善;模型初始能力、任务复杂度和稀疏反馈未被完全分离,不能据此证明模型存在不可逾越的普遍上限。HSI v1

5. 激活证据与四组门禁 ​

正确性门检查必需能力和回归,安全门检查权限、注入与信息流,运营门检查费用、时延和稳定性,治理门检查版本、负责人、来源许可和回退。严重硬门失败不能由平均收益抵消。统计优效、非劣和零观测风险采用第十九章的定义,不用“不显著下降”替代非劣。

激活还要区分三个阶段:代码里存在机制,专用探针能触发,正式任务中实际触发。HarnessDev 的代码与轨迹审计发现,声明的组件不总在运行中出现相应事件。这支持记录“已加载、已发现、已执行”的事件链,却不能证明未触发的机制永久无用。HarnessDev v1

专用探针可在正式试验前拒绝无效构建;进入正式分配后,未激活任务仍属于主分析。另报激活子集只能说明机制在被使用时的条件表现,不能筛掉这些任务后声称总体收益更高。例如 240 次已分配运行中只有 228 次触发机制,主成功率仍以 240 为分母,并列出其余 12 次的完成、失败或未完成状态。

6. 按模型、任务和预算选择配置 ​

组件价值依赖模型、任务与资源约束。Harness 组件实证研究固定执行循环,比较上下文、计划和动作接口;其中计划与动作接口只在 T4/128k 设置下比较,176 个设置不等于所有因素的完整交叉。收益可能来自避免上下文溢出、减少重复验证或适配模型的 shell 使用习惯,不宜归成“记忆无用”或“只留 bash 更好”。该研究使用配对差异检验与多重比较校正,但“不显著”仍不等于非劣。Harness 组件实证研究 v1

因此可维护按任务、风险和模型区分的配置,但必须控制数量。一个配置对应一组兼容与回归义务,不能无限复制。换执行模型后,要重新验收终止规则、工具消息和预算;生成器能为不同模型产出适配方案,也不证明同一冻结产物可直接迁移。

交互可以很具体:简短工具描述与按需发现分别减少 token,组合后却可能使索引缺少足够区分信息,增加选错工具。应记录每个上下文项的来源、选择原因和费用,再按第二十三章的差分方法检查交互,而非只看最终均分。

7. 效率优化要保留质量让步 ​

SoL-Pi 在搜索后保留四类机制:合并适宜的动作与后续命令,按预计收益选择压缩时机,以句柄保存大观察结果,以及委派较便宜模型提取日志证据。最后一种机制检查来源摘要、退出状态和原文摘录等,失败时回退原日志。需要先查看编辑结果才能决定的命令仍应分开,不能把动作合并解释为取消验证。SoL-Pi v1

这项工作把“少一次模型往返”和“少重发一段大日志”变成了具体优化对象,同时暴露费用口径的细节:压缩门比较缓存重写与未来输入节省,并未单独定价摘要调用;工程总账仍应补上这部分。第十九章所列 44.8 到 42.0 分是效率配置的得分让步,不能和论文另选的性能配置混为“同一方案全面领先”。是否接受这种取舍,要按任务损失、质量非劣界和完整费用决定。

8. 发布半径与退役 ​

风险由权限和后果决定,不能只看文件名。工具描述里的生产地址或绕过授权示例也可能带来严重风险;工作流更改会影响顺序、并发和在途状态。沙箱、审批策略与执行身份的变化须走对应授权流程,不能让候选借优化之名扩大能力。

每个变更面记录发现延迟、回退延迟、在途兼容性和最大外部动作范围。影子运行可检查行为而不提交,灰度再限制任务与用户。若串行审批改并行后发生重复资源预留,恢复配置不会自动取消已预留资源,仍需副作用账本、冲突检测和补偿。动态插件可以提供可逆装配,但治理与发布权应在候选插件树之外,软件可逆性不代表业务结果可逆。

最后要防规则堆积。每条承重提示绑定失败编号、负责人、测试和退役条件;可由接口、校验器或工具默认值保证的内容,尽量移出自由文本。模型升级后可以消融旧补丁,只有证据支持移除后非劣或满足既定容忍界,才删除,不凭一次未观察到下降判断。

任务少、规范稳定或根因已经明确时,人工修配置、接口与确定性流程可能比自动搜索便宜。衡量本层产出应看确认过的差值、关键切片回归、激活、回滚、实验总费用和有效期,而不是配置仓库增长速度。

公开阅读版本