权重侧改进
改变模型内部参数,成本高、更新周期长,能力与行为绑定在模型版本中。
AHE 不再把自进化限制在 prompt 或 playbook,而是联合修改 tools、middleware、skills 与 memory,并用三种 observability 把每次编辑变成下一轮可证伪的文件级实验。
同一个基础模型放进不同的工具、执行控制、记忆与提示系统后,长时程任务表现会明显变化。AHE 将这一整套模型外部组件视为独立适应表面,而不是部署完成后的附属工程。
论文中的 harness 包含 system prompt、tool description、tool implementation、middleware、skill、sub-agent configuration 和 long-term memory。它们共同决定模型能看到什么、能做什么、错误怎样恢复、重要状态会不会在下一步被破坏。模型可能已经知道正确策略,但工具没有执行能力、警告被长输出淹没,或者结束流程允许删除已验证产物,潜在能力仍无法变成任务成功。
改变模型内部参数,成本高、更新周期长,能力与行为绑定在模型版本中。
冻结模型,编辑外部文件与执行结构;可查看 diff、可快速迁移、可按文件回滚。
论文主张Harness engineering 是 coding-agent 性能的 first-class lever。模型快速迭代时,人工阅读轨迹、手工修改外围系统的速度跟不上,会形成模型能力与能力实现之间的差距。
既然 harness 是独立优化层,下一个问题就不是“能否再写一段更好的提示”,而是如何在整个异构系统上联合而稳定地搜索。
Reflexion、Self-Refine 修改输出与语言反馈;prompt optimizer 修改指令;ACE 将经验写成 itemized playbook;TF-GRPO 从成功/失败轨迹中提取训练外语义优势;另一些方法演化 skill、程序或 workflow graph。它们各自有效,但通常预先限定了一个可编辑表面。
Prompt 是文本,tool 与 middleware 是代码,skill 与配置有各自加载规则;耦合框架让一次编辑散落在多处。
一次 campaign 产生百万到千万 token,真正有用的是根因和同任务 passing/failing 分歧点。
多文件同时变化后,下一轮既有修复也有回归;仅凭修改理由无法判断该保留还是撤销。
AHE 没有训练一个新的专用优化器,而是把演化系统重构为三个可观测表面:可改什么、从哪里获得证据、修改后怎样被下一轮证伪。
七类组件固定为 workspace 文件;动作空间明确,Git 提供 diff 和 rollback。
Overview → task report → cleaned/raw trace;根因摘要可核验而非不可追溯。
每次编辑写 manifest,提前声明 predicted fixes 与 regression risks,下一轮给 verdict。
AHE 在 NexAU 上把 system prompt、tool description、tool implementation、middleware、skill、sub-agent configuration 和 long-term memory 放在固定 mount point。松耦合意味着新增 middleware 不需要顺手重写 prompt,新增 skill 也不要求修改 tool。
这种设计把失败模式映射到一个可选组件层:认知规则放 prompt,重复经验放 memory,执行时约束放 tool,跨步骤状态放 middleware。每个逻辑编辑是一次 Git commit,性能变化可以对应具体文件 diff,被否定的编辑也能按文件撤销。
`NexAU0` 只有一个 shell execution tool,没有 middleware、skills、sub-agents 与 long-term memory,system prompt 也很短。这样每个新增组件必须凭 rollout 结果“挣到”自己的位置,避免人工预调 seed 污染自动演化贡献。
每轮对 benchmark 中每个任务运行 (k) 次 rollout。Agent Debugger 把轨迹视为可导航文件环境,每条消息单独存放,通过 shell 和脚本寻找关键步骤,并比较同一任务的 passing/failing traces。它输出 per-task 根因报告,再聚合成 benchmark-level overview。
因此 experience observability 不是用摘要“替代”轨迹,而是让摘要成为索引。Evolve Agent 先消费结构化根因,需要时再 progressive disclosure,避免直接把约千万 token 全量上下文塞进一次调用。
0/2、1/2、2/2 提供任务级 pass-rate 信号。1/2 的 partial-pass task 尤其有价值:它说明基础能力已经存在,Debugger 可寻找同一 query 的成功与失败分歧,把偶然成功变成可靠默认策略。
Evolve Agent 只能写 harness workspace;runs、tracer、verifier 与 LLM configuration 只读,种子 prompt 的原始规则不可删除。它不能通过关闭 verifier、换模型或提高 reasoning budget 获得虚假增益。
每次编辑必须先给出失败证据、根因、针对性修复和预测影响,并写入 versioned manifest。下一轮用 fail→pass 与 pass→fail 的任务变化核验,形成 KEEP、IMPROVE 或 ROLLBACK 的 verdict。
证据:哪些具体 rollout 暴露了共同失败模式。
组件选择:为何修在 middleware,而不是继续堆 prompt。
可证伪预测:下一轮哪些任务应被修好、哪些可能回归。
文件边界:若预测未兑现,精确撤销对应编辑。
Attribution 在新一轮 distillation 之前运行,所以旧 manifest 的 verdict 会进入新证据库。Evolve Agent 不只看到“上轮我为什么这样改”,还看到“我说会修谁,实际修了谁”。
H_best ← H_0
for t = 1 ... N:
T_t ← ROLLOUT(M, H_{t-1}, D, k)
T~_t ← CLEAN(T_t)
if t ≥ 2:
V_t ← ATTRIBUTE(C_{t-1}, T_{t-1}, T_t)
H_{t-1} ← ROLLBACK(H_{t-1}, V_t)
R_t ← AGENT_DEBUGGER(T~_t)
(H_t, C_t) ← EVOLVE(H_{t-1}, R_t, V_t)
COMMIT(H_t, C_t, t)
if pass@1(T_t) > pass@1(H_best): H_best ← H_t
return H_best
算法返回 best-so-far,而非最后一轮,因为即时分数不单调。Iteration 1 还并行运行一次 Explore Agent,从 NexAU 源码和公开资料生成框架参考 skill;这些 skill 从第二轮起同样可被修改或删除。
针对“用 row count、文件存在等 proxy 代替 evaluator”以及前台长命令耗尽超时,加入 mirror evaluator、no-overfit 规则和 `timeout_ms`。
Agent 已验证成功却在清理中删除交付物。Prompt 定义通过检查后的状态即 deliverable,shell tool 记录并保护路径。
扩展保护到 evaluator 入口脚本;middleware 识别浅层验证、只测 localhost、自制 proxy、重复超时等跨步模式。
封堵 override token 绕过;把上一工具步骤的风险在下一次模型调用前提升为 FRAMEWORK reminder。
`path-tracing` 已正确生成并自检 `/app/reconstructed.ppm`,却随后为“整理目录”执行删除,verifier 找不到文件。Iteration 5 的 prompt 解释 publish state,tool guard 则在执行点拦截破坏命令;任务由 0/2 变成 2/2。这个因果链说明,知道原则不等于每次都执行原则,关键状态需要在工具层保护。
`mcmc-sampling-stan` 用近似 grid integration 生成看似合理的数字,中止真正 MCMC,再用“文件存在”结束。Middleware 把 proxy validation 与 shallow validation 标出,tool guard 保护真正 evaluator 入口;之后两个 rollout 都运行完整分析并通过 6/6 verifier tests。跨步骤模式无法被单次 tool description 充分表达。
| RQ | 设置 | 比较 | 指标 | 主张 |
|---|---|---|---|---|
| RQ1 | Terminal-Bench 2,89 tasks | 人工 harness;ACE;TF-GRPO | pass@1 | 联合 harness 演化是否更强 |
| RQ2 | SWE-bench-verified;五个 alternate bases | Frozen seed / evolved harness | success;tokens/trial | 是否过拟合一个 benchmark / model |
| RQ3 | 单组件 swap;9 个相邻轮次 | Full / component-only;random prediction | pass@1;P/R | 增益位置与自归因可靠性 |
Terminal-Bench 2 包含 4 Easy、55 Medium、30 Hard,每任务最长 3600 秒。SWE-bench-verified 是 500 个任务、7 个 repository。三个 role agent 均属于 GPT-5.4 模型家族,避免跨模型能力转移;但原文配置口径并不一致:正文 §4.1 称三者均为 high,Appendix Table 4 则把 Code Agent 列为 high、Evolve Agent 列为 xhigh,且两者运行预算不同。
任务与 rollout 的二元 reward 平均;基础设施异常和 timeout 计为失败,与 leaderboard 对齐。
统计 prompt + completion;基础设施中止 trial 被排除,避免截断调用量扭曲均值。
| 方法 | 类型 | All | Easy | Medium | Hard |
|---|---|---|---|---|---|
| OpenCode | human-designed | 47.2% | 75.0% | 52.7% | 33.3% |
| Terminus-2 | human-designed | 62.9% | 75.0% | 74.5% | 40.0% |
| Codex | human-designed | 71.9% | 75.0% | 80.0% | 56.7% |
| NexAU0 | shared seed | 69.7% | 87.5% | 78.2% | 51.7% |
| ACE | self-evolved | 68.9% | 91.7% | 78.2% | 48.9% |
| TF-GRPO | self-evolved | 72.3% | 100.0% | 79.4% | 55.6% |
| AHE | self-evolved | 77.0% | 100.0% | 88.2% | 53.3% |
直接证据AHE 在所列方法中 aggregate 最高,但 Hard 低于 Codex 与 TF-GRPO。“超过所有基线”只能指总体分数,不应扩展成所有难度层级。
本文解读优化目标是 aggregate pass@1,而 55 个 Medium 决定大部分搜索与优化方向;最终 harness 偏向 Medium 是目标分布的自然结果,不等于它对最长时程任务最稳健。
| 方法 | 演化来源 | Success | Tokens / trial | 相对 seed token | Succ / Mtok |
|---|---|---|---|---|---|
| ACE | Terminal-Bench 2 | 74.6% | 679K | +29.1% | 1.10 |
| TF-GRPO | Terminal-Bench 2 | 74.2% | 582K | +10.6% | 1.27 |
| NexAU0 | seed | 75.2% | 526K | 基准 | 1.43 |
| AHE | Terminal-Bench 2 | 75.6% | 461K | -12.4% | 1.64 |
AHE success 只比 seed 高 0.4 pp,明显证据来自 token:完成 trial 的均值从 526K 降到 461K,同时 aggregate success 未下降。论文认为 tool、middleware、memory 把协调行为固化为执行结构,避免 prompt/playbook 在每次调用中重复携带和推导。
| Base model / reasoning | 类型 | NexAU0 | AHE frozen | 增益 |
|---|---|---|---|---|
| GPT-5.4 medium | within-family | 65.7% | 68.0% | +2.3 pp |
| GPT-5.4 high | evolution point | 69.7% | 77.0% | +7.3 pp |
| GPT-5.4 xhigh | within-family | 72.5% | 74.7% | +2.3 pp |
| gemini-3.1-flash-lite | cross-family | 36.5% | 41.6% | +5.1 pp |
| deepseek-v4-flash | cross-family | 51.7% | 61.8% | +10.1 pp |
| qwen-3.6-plus | cross-family | 56.2% | 62.5% | +6.3 pp |
论文主张跨 family 增益说明组件编码了通用 coordination patterns,而非 GPT-5.4 专属表达习惯。
限制GPT-5.4 family 内增益 medium +2.3、high +7.3、xhigh +2.3,并不单调。Step budget 与 timeout 为 high 调整,结果混合了 harness portability 和 operating-point coupling。
| Variant | 类型 | All | Easy | Medium | Hard |
|---|---|---|---|---|---|
| NexAU0 | seed | 69.7% | 87.5% | 78.2% | 51.7% |
| + memory only | 12 boundary lessons | 75.3% | 50.0% | 83.6% | 63.3% |
| + tool only | 1364-line shell | 73.0% | 75.0% | 87.3% | 46.7% |
| + middleware only | finish/risk hooks | 71.9% | 100.0% | 81.8% | 50.0% |
| + system prompt only | 79 lines discipline | 67.4% | 75.0% | 78.2% | 46.7% |
| AHE full | joint harness | 77.0% | 100.0% | 88.2% | 53.3% |
这是论文支持“harness 是独立优化层”的核心消融。非 prompt 组件单独移植仍有增益,prompt 单独移植反而退化,说明文字策略的可执行性依赖外围机制。
本文解读Single-component swap 提高可解释性,但不是严格因果分解。组件语义互相依赖,独立移植表现不等于它在 full harness 中的 Shapley-style 贡献。
直接证据Fix targeting 不是随机猜测,但 33.7% precision 仍意味着多数 predicted fixes 没有按预期发生。它是有信息的噪声信号,不是可靠因果模型。
Appendix D 的累计结果更直接:9 轮共有 43 个 unique regression predictions,只有 5 个命中;真实发生的回归中有 40 个未被预见。Manifest 较会解释为什么修改应当帮助,却不会系统枚举同一修改的破坏面。
SWE-bench-verified 上 AHE tokens/trial 比 seed 少约 12%、比 ACE 少约 32%、比 TF-GRPO 少约 21%,Success/Mtok 最高为 1.64。该结果支持“把协调策略固化进执行结构,而不是每次在 prompt 中重推导”。
固定参考设置中 69.7%→77.0%;非 prompt 组件承载主要增益;frozen workspace 在跨模型设置均为正向。
经验可从自然语言进一步“编译”为 tool、middleware 与 memory,形成模型权重之外的适应层。
任意生产 harness 都会同幅提升;observability 是唯一瓶颈;每轮编辑都有准确因果归因。
Observability 是主要瓶颈系统结果支持结构化闭环有效,但没有在相同 harness 上系统改变 Evolve Agent 能力,不能完全排除 optimizer capability。
组件编码通用工程经验跨 benchmark/model 提供证据,但仅覆盖两个 benchmark,且 repository 级存在负迁移。
优于 prompt-only 是因为编辑层更广组件消融方向一致,但 AHE 同时增加了 Debugger、manifest、rollback 与 Explore Agent,没有逐项正交控制。
回滚带来稳定演化Best-so-far 上升,但即时曲线波动。稳定更多来自保存历史最好点与可撤销工程,而不是每步编辑不伤害系统。
仅在 Terminal-Bench 2 演化,在 SWE-bench-verified 迁移;更多语言、生产库与 human-in-loop 未测试。
Step budget 与 timeout 针对 GPT-5.4 high;跨模型数字混合了 harness portability 与预算耦合。
Workspace 权限、只读 verifier、Git 与 rollback 不是完整安全栈;长期清理和滥用防护不成熟。
单次 campaign77.0% 来自一次 10 轮 reference run,且每任务 (k=2)。没有多随机种子重复整套演化的均值和置信区间,不能把 best configuration 当作稳定期望。
系统复杂度ACE 与 TF-GRPO 使用同 seed 是重要公平条件,但 AHE 开放更多组件并加入 Debugger、manifest、rollback、Explore Agent。结果证明完整系统更强,不能精确分摊三种 observability 的边际贡献。
回归盲区Regression recall 只有 11.1%,大部分破坏必须等全量 benchmark 后发现。昂贵环境需要提交前静态检查、差分执行与针对风险面的主动测试。
目标分布偏置55/89 的 Medium 支配 aggregate pass@1。Memory-only 在 Hard 更强却被 full harness 部分抵消,提示实际部署需要分层约束或多目标优化。
AHE 可以理解为 experience compilation:ACE 把经验写成下一次供模型阅读的知识,AHE 进一步把重复经验编译成工具接口、状态机、hook 和硬保护。两者不是互斥替代;完整系统可能需要 playbook 层的快速记忆与 harness 层的慢速结构固化。