把 harness 变成可编辑、可追责、可回滚的优化对象
AHE 不训练 base model。它让另一个 agent 读执行证据,直接修改 prompt、tool、middleware 与 memory,再用下一轮真实 task delta 判断这次修改是否成立。
作者兴趣度 10 / 10自动改 prompt 很容易;自动改完整 harness 有三个结构性难点
修改面不是一种文本
system prompt、tool schema、Python implementation、middleware、skills、sub-agent config 与 memory 的语义完全不同。
轨迹长,因果链又散
一次 rollout 可跨数百步。最后的 PASS/FAIL 很难说明是哪条命令、哪个 guard 或哪次 cleanup 造成结果。
三个 observability 分别解决“改什么、根据什么改、怎么知道改对了”
01 / COMPONENT组件可观测
七类组件都落成固定路径下的文件。一个逻辑修改对应一个 Git commit,可以逐文件回滚。
02 / EXPERIENCE经验可观测
Agent Debugger 把约 10M tokens 的 raw traces 压成 benchmark overview、per-task report,并保留逐步回钻。
03 / DECISION决策可观测
change manifest 写下 failure evidence、root cause、predicted fixes 与 risk tasks;下一轮按 task flip 结算。
一个闭环里,三种 artifact 都能被另一个 agent 直接读取

第 t 轮先评估第 t-1 轮的修改,再生成第 t 轮候选
每题 k 次
同一个当前 harness 在 fresh E2B sandbox 中执行。
规范化轨迹
原始 message、tool output 与 verifier result 写成文件。
结算旧预测
用 task-level flips 检查上一轮 manifest,回滚无效修改。
压成证据层
先读 overview,需要时回钻 detail 与 raw trace。
修改 harness
选正确组件层,写 change manifest。
版本化
一项逻辑修改一个 commit;保留 best-so-far。
同一种失败模式,应落到最有执行力的组件层
跨 89 题汇总 recurring failure classes。
逐题根因、pass/fail 对照与证据定位。
只有摘要不足时才回看原始消息和工具调用。
runs、verifier、tracer、model config 不可写,防止 optimizer 改考试本身。
每个 edit 在落地时就写明:预计修谁,也可能伤到谁
// change_manifest.json { "id": "chg-8", "files": ["tools/.../run_shell_command.py"], "failure_pattern": "post-validation state destruction", "predicted_fixes": ["path-tracing", ...], "risk_tasks": [...], "constraint_level": "tool_impl" }
path-tracing:从 0/2 到 2/2,靠的是执行层保护
任务与 judge
Agent 要生成 /app/reconstructed.ppm。Terminal-Bench 2 verifier 只读这个文件,并与 reference image 做逐像素比较。
失败 rollout 已经生成正确图片并做过自检,随后为了“清理”执行 rm -rf ... /app/reconstructed.ppm。
render 正确,结构性 acceptance check 通过。
最后一步 cleanup 删除唯一 deliverable;shell exit code 为 0,Agent 误以为可提交。
final/evaluator-style check 通过后,shell tool 记录 protected files/roots;后续 destructive command 在执行前被拦截。
Agent 收到明确 block,保留图片并结束。下一轮 2/2,verifier 找到且逐像素匹配。
mcmc-sampling-stan:proxy result 骗过自检,骗不过 verifier
任务与 judge
安装 rstan 2.32.7,用 30 条观测拟合 hierarchical beta-binomial model,写出 alpha、beta posterior means。
Verifier 会重新运行 analysis.R,要求 alpha ∈ [2.84, 2.91],beta ∈ [16.1, 16.7]。
用 grid integration 得到 proxy 数值并写文件;真实 MCMC 放后台后被提前 kill。最终只检查“文件存在且可解析”。Verifier 重跑未收敛脚本,得到约 1e19 / 2.60e17,2/6 tests fail。
publish-state guard 保护 analysis.R;ExecutionRiskHintsMiddleware 识别 inline proxy 与 shallow validation,并在下一次 model turn 以 FRAMEWORK reminder 提升显著性。
完整跑 iter=100000,再在 /tmp 独立复跑,约 2.872 / 16.43;6/6 tests pass,后四轮保持 2/2。
同一个 failure pattern,可以用软规则、动态提醒或硬拦截处理

同一 GPT-5.4 high,AHE 达到 77.0%,但 Hard 仍低于 Codex
| Harness / loop | All | Easy | Medium | Hard |
|---|---|---|---|---|
| OpenCode | 47.2 | 75.0 | 52.7 | 33.3 |
| Terminus-2 | 62.9 | 75.0 | 74.5 | 40.0 |
| Codex | 71.9 | 75.0 | 80.0 | 56.7 |
| NexAU₀ | 69.7 | 87.5 | 78.2 | 51.7 |
| ACE | 68.9 | 91.7 | 78.2 | 48.9 |
| TF-GRPO | 72.3 | 100.0 | 79.4 | 55.6 |
| AHE | 77.0 | 100.0 | 88.2 | 53.3 |
跨 benchmark 的主要收益是省 token;跨模型则五个 operating point 全部为正
