| sourceTitle | Agentic Harness Engineering: Observability-Driven Automatic Evolution of Coding-Agent Harnesses |
|---|---|
| sourceUrl | https://arxiv.org/html/2604.25850v4 |
| sourceAuthor | Jiahang Lin, Shichun Liu, Chengjun Pan, Lizhi Lin, Shihan Dou, Zhiheng Xi, Xuanjing Huang, Hang Yan, Zhenhua Han, Tao Gui, Yu-Gang Jiang |
| sourcePublishedAt | 2026-05-18 |
| title | Agentic Harness Engineering:可观测性驱动的编码智能体 Harness 自动演化 |
| summary | 本文提出 Agentic Harness Engineering(AHE):一种让编码智能体在固定基础模型下,通过组件、经验和决策三类可观测性来自动演化 Harness 的闭环。AHE 将可编辑组件文件化,把轨迹压缩为可下钻证据,并让每次编辑附带可证伪预测;在 Terminal-Bench 2 上将 pass@1 从 69.7% 提升到 77.0%,并在 SWE-bench-verified 与跨模型迁移中保持收益。 |
| language | zh-CN |
| translationMethod | baoyu-translate skill |
| sourceFigureCount | 10 |
Jiahang Lin 1 ∗‡, Shichun Liu 1 ∗‡, Chengjun Pan 2 ∗‡, Lizhi Lin 3, Shihan Dou 1, Zhiheng Xi 1, Xuanjing Huang 1, Hang Yan 3, Zhenhua Han 3 †, Tao Gui 1 †, Yu-Gang Jiang 1
1 复旦大学 2 北京大学 3 上海奇绩智锋有限公司
china-qijizhifeng/agentic-harness-engineering
Harness 现在已经成为智能体性能的核心:它调节模型如何与工具和执行环境交互。然而,Harness Engineering 仍然主要是一门手工技艺,因为要自动化它会同时遇到三个难点:可编辑组件之间的动作空间异构;海量轨迹会掩埋真正可行动的信号;一次编辑造成的效果也难以归因。本文提出 Agentic Harness Engineering(AHE),这是一个闭环,通过三类相互匹配的可观测性支柱解决这些问题:❶ 组件可观测性 为每个可编辑 Harness 组件提供文件级表示,使动作空间显式且可回滚;❷ 经验可观测性 将数百万个原始轨迹 token 提炼成分层、可下钻的证据语料库,使演化智能体真的能够消费这些经验;❸ 决策可观测性 把每次编辑与自我声明的预测配对,并在下一轮任务级结果中验证。三者合在一起,把每次编辑都变成一个可证伪契约,使 Harness 演化能够自主推进,而不会退化为盲目试错。实验上,十轮 AHE 迭代将 Terminal-Bench 2 上的 pass@1 从 69.7% 提升到 77.0%,超过人工设计的 Harness Codex(71.9%)以及自演化基线 ACE 和 Training-Free GRPO。冻结后的 Harness 无需重新演化也能迁移:在 SWE-bench-verified 上,它以比种子版本少
Figure 1:AHE 将一个只有 bash 的种子 Harness 演化到超过 Terminal-Bench 2 上所有人工设计和自演化基线。三个角色智能体共享同一个基础模型,因此收益可以归因于 Harness 编辑,而不是分析器或编辑器能力差异。
编码智能体越来越多地被部署到长程软件工程任务中,在真实代码仓库的问题修复 1 2 3 和多步终端工作流 4 上都取得了可测量进展。实践中,这类进展不仅依赖底层语言模型,也同样依赖模型周围的工程组件:塑造工作方式的系统提示词、暴露文件系统和 shell 的工具,以及控制上下文、执行和恢复的中间件。这组模型外部、可编辑的组件,统称为智能体的 Harness 5 6 7 8 9 10。
在长程编码基准上,即便保持基础模型不变,Harness 设计也会实质性改变任务完成率 11 7,因此 Harness Engineering 应该被视为提升编码智能体的一等杠杆。此外,最优 Harness 往往是模型特定的:为一个基础模型调好的 Harness,换到另一个模型上常常表现变差,并且基础模型变化后也需要重新适配。当前这种适配主要靠人工完成:开发者检查轨迹,识别反复出现的失败模式,然后在提示词、工具、中间件和 Skills 之间手工编辑。随着基础模型快速进步 12 13 14 15 16 17,这条手工循环越来越难跟上,模型能力与释放这些能力所需 Harness 之间的差距也在扩大 9。
直觉上,可以用一个演化智能体根据经验来优化 Harness 组件,从而自动化这条循环 18 19 20。但已有方法很少共同演化完整的可编辑组件集合 21;多数只关注一个组件,通常是提示词 22 23 24、Skills 25 26 或上下文内 playbook 19。端到端共同演化多个组件会遇到两个结构性障碍:长而无结构的轨迹几乎不给出可行动信号;紧耦合的 Harness 框架又让提示词之外的编辑容易出错。因此,智能体驱动 Harness 演化的核心问题仍然开放:一个演化智能体怎样才能联合且稳定地演化编码智能体 Harness 的所有可编辑组件?
我们的核心洞察是,这个问题的瓶颈不在智能体能力,而在可观测性:只要演化智能体拿到关于清晰动作空间的结构化上下文,它就能可靠地收敛到更好的 Harness 设计 27 28。我们在 Agentic Harness Engineering(AHE,Figure 2)中实现这一点。AHE 是一个由三类可观测性支柱驱动的闭环:❶ 通过解耦 Harness 将七类可编辑组件暴露为文件,实现组件可观测性,让每类失败模式都能清楚映射到单一组件类别;❷ 通过从数百万原始轨迹 token 中提炼分层、可下钻的证据语料库,实现经验可观测性,让演化器消费结构化根因,而不是原始日志;❸ 通过变更 manifest 将每次编辑与自我声明的预测配对,并在下一轮任务级结果中验证,实现决策可观测性,让每次编辑成为可证伪契约,低效编辑则按文件粒度回滚。
我们在 Terminal-Bench 2 4 上验证 AHE:十轮迭代将 pass@1 从 69.7% 提升到 77.0%,超过人工设计的 Codex 29 以及自演化基线 ACE 19 和 Training-Free GRPO 20。无需进一步演化,冻结后的 Harness 可迁移到 SWE-bench-verified 1;跨三个替代基础模型家族也带来
本文贡献如下:
- 我们形式化了编码智能体的智能体驱动 Harness 演化问题,并提出 AHE。AHE 将组件、轨迹和决策层面的可观测性确定为设计枢纽,通过解耦组件底座、分层轨迹蒸馏流水线,以及由下一轮任务差值验证自我预测的变更 manifest,把每次 Harness 编辑变成文件级、可证伪的契约。
- 我们实证表明,AHE 将 Terminal-Bench 2 上的 pass@1 从 69.7% 提升到 77.0%,超过人工设计与自动化基线,并产生一个可跨基准和基础模型家族迁移的冻结 Harness。
- 我们的分析揭示了智能体驱动演化的两个限制:Harness 组件之间存在非加性交互,因此堆叠有效编辑会限制总收益;循环的自归因对修复较可靠,但对回归近乎失明,因此回归预见能力是未来自演化循环最清晰的改进方向。
Harness Engineering 指设计模型周围系统的实践,包括工具、接口、记忆、执行约束和反馈循环;这些要素共同决定智能体能在长程任务上做什么 5 6 11 30 9 10。具体来说,Harness 介导模型如何感知并作用于环境:它暴露工具增强推理所需的动作与观察接口 30,提供用于代码仓库导航、文件编辑和命令执行的定制 agent-computer interface 8,并提供沙箱执行和编排能力,以保持长程运行可复现 7。
验证这些系统是否真的有帮助,推动了编码智能体评估沿两个轴成熟:任务长度和环境真实性。覆盖面从短程函数级基准(重视污染与新鲜度控制)31 32,扩展到代码仓库级可执行补丁修复 1 2 3,再到多小时、终端驱动、贴近真实执行的长程工作流 33 34 4。与之平行的基础设施路线围绕这些基准打包可执行运行时和验证器 35 36 37;它们对可复现、可追踪、可验证执行的关注,直接启发了 AHE 构建的观察系统。
自动化智能体优化方法的差异,主要在于优化器能观察什么证据、能编辑什么对象。有些方法通过情景式批评和反思修改智能体自身输出 24 22 38。另一些方法面向提示词和指令 39:结构化 playbook 19、语义优势先验 20、多阶段程序的指令-示范联合优化流水线 40,以及由 Pareto 前沿轨迹驱动的反思式更新 18。还有一条路线直接编辑程序结构,例如 Skill 库 41、通过变异演化的打分程序和智能体 archive 42 43,以及从 rollout 搜索或学习得到的图结构工作流 44 45。
AHE 调优的是完整 Harness 这个组合整体,而不是单一可编辑表面,因此优化器可以看见跨组件权衡。它也尽量减少人类先验,让方法论从 rollout 中被优化器发现,而不是由人手固定。下面描述实现这些选择的底座、轨迹分析和迭代流程。
AHE 将 Harness 优化变成由另一个智能体驱动的闭环,基础模型保持固定,只编辑显式 Harness。我们的设计原则是:这个循环的每个阶段都必须可观测。AHE 忠实记录每个阶段产生的制品,包括一次迭代写入的 Harness 组件、生成的 rollout 轨迹、提交的编辑决策,并把它们表示成另一个智能体可以读取和行动的结构化分层形式。
三层可观测性落实这一原则。组件可观测性(§3.1)由一个解耦、文件级的 Harness 底座实现,它把每种失败模式映射到单一组件类别。经验可观测性(§3.2)由从原始 rollout 蒸馏并可下钻索引的分层证据语料库实现。决策可观测性(§3.3)由一个变更 manifest 实现,每次编辑都附带下一轮要验证的自我预测。这三层组合成 Algorithm 1 的迭代,并可无人值守地一轮轮运行。
Figure 2:AHE 流水线将三个可观测表面连接成一个闭环。组件、rollout 经验和编辑决策都以结构化制品的形式暴露给另一个智能体读取;每次编辑都会成为下一轮验证的可证伪预测。
我们在 NexAU 框架 46 47 上实例化 Harness
这种解耦实现了组件可观测性:每种失败模式都能映射到单一组件类别,给演化智能体一个清晰动作空间,并把每次 pass-rate 变化定位到一个文件,而不是散落在数百行非结构化提示词中。每次逻辑编辑都会成为工作区 git 历史上的一个提交,自然得到文件级 diff 和回滚粒度。
我们的种子 Harness
对一个基准中的每个任务,我们使用 Harness
除了这些报告,我们还提供原始轨迹,以便智能体在需要时验证报告中的主张。轨迹以原始形式和轻量清理形式同时提供,去除不必要内容。所有内容都作为文件提供,支持渐进式披露 49,节省 token 并改善智能体决策。
Evolve Agent 关闭 AHE 循环。每一轮它读取 Agent Debugger 产生的分层证据语料库,决定添加、修改或删除哪些 Harness 组件,对工作区应用编辑,并记录每次编辑背后的推理。两条约束支配这些编辑,也共同实现决策可观测性:每次编辑都成为版本化 manifest 中记录的可证伪、文件级主张;下一轮结论会确认它,或将它回滚。
第一条约束是可控性。Evolve Agent 只能写 Harness 工作区;runs 目录、tracer、verifier 和 LLM 配置都是只读的,种子系统提示词(Appendix B.1)也标记为不可删除。这些限制阻止无约束自修改器可能采取的捷径,例如禁用 verifier、替换模型或提高 reasoning budget,并确保每个记录到的收益都可归因于 Harness 编辑。
第二条约束是每次变更都必须由证据驱动,并附带记录下来的预测。每次编辑都会附加一条 manifest 记录,写明失败证据、推断根因、目标修复,以及预测影响;预测影响同时包含预期修复和存在风险的回归。这个 manifest 是循环的证据账本(见 Appendix B.2)。下一轮循环会把 predicted-fix 和 predicted-regression 集合与观察到的任务级差值相交,得到每次编辑的 verdict。这样,每次编辑都能被下一次评估证伪,用可测量的轮间契约替代理由驱动的自我辩护。
Algorithm 1 AHE 外循环。
seed harness
for
$T_{t}\leftarrow\textsc{Rollout}(M,H_{t-1},D,k)$
$\widetilde{T}{t}\leftarrow\textsc{Clean}(T{t})$
if
$V_{t}\leftarrow\textsc{Attribute}(C_{t-1},T_{t-1},T_{t})$ $H_{t-1}\leftarrow\textsc{Rollback}(H_{t-1},V_{t})$
else
$V_{t}\leftarrow\emptyset$
end if
$R_{t}\leftarrow\textsc{AgentDebugger}(\widetilde{T}_{t})$
$(H_{t},C_{t})\leftarrow\textsc{Evolve}(H_{t-1},R_{t},V_{t})$
$\textsc{Commit}(H_{t},C_{t},t)$
if
end if
end for
return
Algorithm 1 将三类底座组合成一次迭代:rollout、清理、归因上一轮 manifest 并回滚被拒绝编辑、蒸馏、编辑、提交。我们对每个任务运行
我们围绕三个问题组织实证研究:AHE 在既有 Harness 设计方法版图中的位置;它产出的东西是否能迁移到优化目标之外;循环内部到底是什么带来收益。
- RQ1(§4.2):为什么需要 Agentic Harness Engineering,而不是人工工程化 Harness 或其他自动化方法?
- RQ2(§4.3):Agentic Harness Engineering 会不会过拟合其优化目标?
- RQ3(§4.4):AHE 内部是什么驱动收益?循环的自归因有多可靠?
我们在 Terminal-Bench 2 4 的完整 89 个任务上驱动演化,其中 easy 4 个、medium 55 个、hard 30 个,每个任务 timeout 延长到 1 小时。跨基准迁移时,我们在 SWE-bench-verified 1 上评估 AHE Harness,覆盖 7 个代码仓库的 500 个任务。每个配置报告两个指标:pass@1,即每个任务
在演化循环和 §4.2 主实验中,三个角色智能体(Code Agent、Agent Debugger、Evolve Agent)共享同一个基础模型:GPT-5.4 50,high reasoning 设置。跨模型迁移(§4.3)中,我们在五个替代基础模型上重新评估 Code Agent:GPT-5.4 50 medium 与 xhigh reasoning、qwen-3.6-plus 13 14、gemini-3.1-flash-lite-preview 51 和 deepseek-v4-flash 15。
Table 1:Terminal-Bench 2 共 89 个任务上的 pass@1,按官方难度拆分。NexAU 0 是共享种子;ACE、Training-Free GRPO 和 AHE 是叠在其上的三种自演化循环。粗体表示每列最佳;并列最佳都加粗。
| Method | All | Easy | Med. | Hard |
|---|---|---|---|---|
| 89 | 4 | 55 | 30 | |
| Human-designed harness | ||||
| 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% |
| Self-evolved from NexAU 0 | ||||
| NexAU 0 | 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% |
我们从只有 bash 的 NexAU 0 种子(§3.1)出发,在 Terminal-Bench 2 上运行一次十轮 AHE campaign,约 32 小时完成;最佳结果配置报告为 AHE。两个自演化基线 ACE 19 和 Training-Free GRPO(TF-GRPO)20 使用同一个 NexAU 0 种子。
AHE 超过了面板中的所有基线:三个人工设计 Harness(OpenCode 52、Terminus-2 53 和 Codex 29)以及两个自演化基线。Figure 1 显示收益跨迭代累积,持续演化把 pass@1 推到 NexAU 0 种子之上。按难度看,唯一例外是 Hard 层,AHE 略低于 Codex。我们将这个缺口追踪到 AHE 组件在长程任务上的相互干扰,而不是缺少能力:只把 AHE 的长期记忆换入 NexAU 0 种子,不带其他 AHE 组件,就已经在 Hard 上超过 Codex(§4.4.1)。
AHE 与 ACE、TF-GRPO 的差距来自层次错配。ACE 蒸馏智能体在上下文中读取的自然语言 playbook;TF-GRPO 是 GRPO 的轨迹反馈变体,强化成功工具序列。二者都不打开周围 scaffolding 供编辑。AHE 则共同演化系统提示词、工具、中间件和长期记忆;§4.4.1 显示收益集中在后三层,也正是 ACE 和 TF-GRPO 没有触碰的层。
AHE 的 Harness 是在 Terminal-Bench 2 上用 GPT-5.4 high 演化得到的。我们考察它编码的是通用编码智能体经验,还是对优化目标过拟合:把演化后的 Harness 原样冻结,不再进一步演化,迁移到两个目标外设置:不同任务表面(SWE-bench-verified)和三个替代基础模型。
Table 2:SWE-bench-verified 上的跨基准迁移。ACE、Training-Free GRPO(TF-GRPO)和 AHE 共享 NexAU 0 种子,只是自演化循环不同;四列都运行在 GPT-5.4 上。AHE 和两个自演化基线均在 Terminal-Bench 2 上演化,并在没有领域内再演化的情况下评估。每列粗体表示最佳;并列最佳都加粗。
| Success rate ↑ \uparrow | Tokens k ↓ \downarrow | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Repo | N N | ACE | TF-GRPO | NexAU 0 | AHE | ACE | TF-GRPO | NexAU 0 | AHE |
| All | 500 | 74.6% | 74.2% | 75.2% | 75.6% | 679 | 582 | 526 | 461 |
| django | 231 | 79.2% | 78.8% | 79.2% | 81.0% | 707 | 583 | 527 | 484 |
| sympy | 75 | 69.3% | 68.0% | 70.7% | 70.7% | 602 | 572 | 494 | 479 |
| sphinx-doc | 44 | 61.4% | 65.9% | 68.2% | 70.5% | 990 | 848 | 731 | 656 |
| matplotlib | 34 | 70.6% | 70.6% | 73.5% | 73.5% | 622 | 530 | 486 | 391 |
| scikit-learn | 32 | 93.8% | 93.8% | 93.8% | 87.5% | 451 | 378 | 307 | 257 |
| pydata | 22 | 77.3% | 77.3% | 77.3% | 72.7% | 563 | 516 | 386 | 338 |
| astropy | 22 | 59.1% | 59.1% | 54.5% | 50.0% | 546 | 470 | 667 | 277 |
我们在相同基础设施下,将 AHE Harness 与种子及两个自演化基线(NexAU 0、ACE、TF-GRPO)一起评估到 SWE-bench-verified(Table 2)。
ACE 和 TF-GRPO 的总体成功率都低于 NexAU 0 种子,同时比种子多花
AHE 则取得最高总体成功率,种子相对增益集中在 django 和 sphinx-doc 这两个最大、也最耗 token 的代码仓库;它们的多步编辑-验证循环,与 AHE 在 Terminal-Bench 2 上由工具、中间件和长期记忆压缩出的结构相匹配。边际回退只出现在三个最小仓库上,与小仓库上 pass@1 方差超过单仓库增益一致。AHE 还把总体 token 相对 ACE 降低
Figure 3:Terminal-Bench 2 89 个任务上的跨模型迁移。用 GPT-5.4 high 演化出的 AHE 工作区,不经进一步演化,直接在每个基础模型上重新评估,并与同一基础模型上的 NexAU 0 种子配对比较。所有基础模型都超过种子,跨家族模型的收益大于同家族模型。
我们在 §4.1 列出的五个替代基础模型上重新评估 NexAU 0 种子和 AHE。Figure 3 报告五个正向 pass@1 增益,范围为
跨家族收益大于同家族收益:deepseek-v4-flash 从
同一模型家族内部呈非单调分布:medium
关键结论是五个收益都为正:AHE 工作区不是某个供应商习惯或某个 reasoning depth 的特定产物。收益幅度跟随演化操作点,而不是原始基础模型能力,因此我们把 timeout-budget 耦合视为 Limitations 中讨论的一类泛化风险。
我们沿 §3 强调的两个架构选择分析循环:组件分解(§4.4.1)与自我声明归因(§4.4.2)。
Table 3 在组件层面对 AHE 收益做分解:隔离四个演化层中的一个,即长期记忆、工具、中间件或系统提示词,同时让其他三个保持种子默认。四个单组件变体中有三个超过种子;系统提示词替换是唯一回退。
Table 3:Terminal-Bench 2 上的组件级消融。每个 "+ X only" 行只把一个 AHE 组件换入 NexAU 0 种子;每列最佳加粗。多数单组件替换已经超过种子,且单组件收益超过完整 AHE 的总收益,说明组件之间存在非加性交互,而不是可以干净叠加。
| Variant | All | Easy | Medium | Hard |
|---|---|---|---|---|
| 89 tasks | 4 tasks | 55 tasks | 30 tasks | |
| NexAU 0 | 69.7% | 87.5% | 78.2% | 51.7% |
| + memory only | 75.3% | 50.0% | 83.6% | 63.3% |
| + tool only | 73.0% | 75.0% | 87.3% | 46.7% |
| + middleware only | 71.9% | 100.0% | 81.8% | 50.0% |
| + system_prompt only | 67.4% | 75.0% | 78.2% | 46.7% |
| AHE full | 77.0% | 100.0% | 88.2% | 53.3% |
记忆添加了 12 条边界案例经验(性能余量、queued-over-limit 取消、evaluator 风格收尾、源码打包布局);在 Hard 上,这些经验把它推到完整 AHE 之上,而在 Easy 上则退化为多余复验。工具变成一个 1364 行 shell,会从每条命令附近文件中自动浮现 contract hints;在 Medium 上,它距离完整 AHE 只有
三个正向单组件收益相加,相对完整 AHE 的
每一轮演化中,我们的 evolve model 都会生成一个 change manifest,说明它预计下一轮会修复哪些 Terminal-Bench 2 任务,以及哪些任务存在回归风险。我们将第
Figure 4 的修复面板显示,evolve model 的定位不是猜测,而是证据驱动。跨迭代 fix-precision 为 33.7%,fix-recall 为 51.4%,约为随机预测基线 6.5% 和 10.6% 的 5 倍。因此,每次 Harness 编辑不是落在任意任务子集上,而是命中了真实且被智能体预期到的目标。
Figure 4:GPT-5.4 AHE 循环在 Terminal-Bench 2 上 9 个评估轮次中的跨迭代平均 precision 与 recall,并与随机预测基线比较。左:修复预测。右:回归预测。
回归面板呈现相反图景:跨迭代 regression-precision 为 11.8%,regression-recall 为 11.1%,只约为随机基线 5.6% 和 5.4% 的 2 倍。因此,大多数即将出现的回归都没有被预见。智能体可以解释为什么某个编辑应该有帮助,但无法可靠说出同一个编辑将破坏哪些任务,这正是 §4.2 中演化曲线非单调的来源。弥合这个缺口,是未来自演化循环最清晰的方向。Appendix D 给出逐轮分解。
本文提出 Agentic Harness Engineering(AHE):一个可观测性驱动的循环,它把编码智能体的 Harness 变成基础模型固定时可学习的适配表面。AHE 将组件暴露为文件,把 rollout 蒸馏成分层证据语料库,并把每次编辑绑定到下一轮可证伪预测;十轮迭代把 Terminal-Bench 2 上的 pass@1 从 69.7% 提升到 77.0%,冻结后的 Harness 还可迁移到 SWE-bench-verified 和三个替代模型家族。我们认为 Harness 层演化是模型侧训练之外的互补轴:这是一个外部化、可审计的表面,编码智能体经验可以在这里积累。
本文研究的是一个有前景但高方差的设置,结论范围应据此理解。
我们的评估在 Terminal-Bench 2 上驱动演化,并在 SWE-bench-verified 上探测迁移。虽然冻结后的 Harness 可迁移到第二个任务表面和三个替代基础模型家族,但更广泛的编程语言、代码仓库级部署和 human-in-the-loop 工作流仍未测试。
AHE 的步数预算和每任务 timeout 是在 GPT-5.4 high 演化时拟合的,因此跨模型迁移数字混合了 Harness 可移植性与操作点耦合;在同一模型家族中,收益随 reasoning tier 非单调变化(§4.3)。拆开这些因素需要在多个操作点下重新运行循环。
AHE 将编辑限制在工作区内,在版本化 manifest 中归因每次变更,并按文件粒度回滚无效编辑,但它并不提供完整 guardrail stack。长程 Harness 清理和更强误用防护仍不完整;AHE 应被视为受控研究原型,而不是成熟的自主自改进系统。
参考文献与脚注保留原始编号和链接,以确保正文引用可追溯。
本附录展开 §4.1 中压缩呈现的设置,包括形式化指标定义和运行基础设施。种子配置 NexAU 0 是建立在 §3.1 NexAU 框架上的简单代码智能体,只向模型暴露 bash 工具,没有 Skills、中间件或长期记忆。AHE 外循环的每次迭代都会编辑这个工作区,因此所有报告的收益都以 NexAU 0 为共同起点。
所有运行都使用 NexAU 框架实例化编码智能体。Harbor 分发任务、隔离每条 rollout 并验证通过/失败,每个任务 timeout 为 3600 秒。每条 rollout 都在全新的 E2B 远程沙箱中运行,因此 shell 副作用不会在任务间泄漏。InMemoryTracer 记录轨迹并镜像到 Langfuse。Agent Debugger 以并发 16 执行,每个任务 timeout 为 600 秒。
Table 4 汇总参考 AHE 运行的超参数:Code Agent、Agent Debugger、Evolve Agent 和 Explore Agent 都以 GPT-5.4 为 backing model,只在 reasoning tier、采样和每组件限制上不同;外循环共 10 轮,每任务
Terminal-Bench 2 官方 leaderboard 将 89 个任务划分为 4 个 easy、55 个 medium 和 30 个 hard。对任务集
因基础设施异常(如沙箱崩溃或 API timeout)终止的试验记为
即每百万 token 的期望成功数。Table 5 将 Table 2 的 pass@1 和 Tokens k 折叠为 SWE-bench-verified 各仓库的 Succ/Mtok,数值为
本附录汇总驱动 AHE 外循环的提示词,以及种子 Code Agent 的系统提示词。原论文中的五个块复现了公开仓库 https://github.com/china-qijizhifeng/agentic-harness-engineering 在产生 Section 4 实验的提交上的字面文件内容。Jinja 风格的 {{ var }} 占位符在 Harness 运行时填充。
NexAU 0 在第 1 轮加载的种子系统提示词有意保持最小:一个工具、三条行为规则和三个运行时注入变量。第 1 轮之后,每次迭代都可以向该文件追加规则;Appendix C 的案例研究追踪了第一次这样的追加。
Evolve Agent 的系统提示词编码了 Section 3 描述的三条硬契约:只在 workspace 内可控编辑、证据驱动变更、交付 change manifest。它还嵌入了智能体必须推理的目录布局,以及 manifest 的 JSON 形状。
Explore Agent 在第 1 轮并行运行,用于从 NexAU 源码和公开编码智能体材料中提取少量初始 Skills。源码探索 agent 读取本地代码,Web 研究 agent 读取外部参考;二者的产物并不被特殊保护,后续 Evolve Agent 可以保留、修改或删除。
Figure 5 展示三个 Evolve Agent 编辑示例,分别位于三个可控性层级:新增中间件文件、系统提示词追加、shell 工具编辑。下面四条轨迹和八项变更说明这些编辑如何改变任务结果。
Figure 5:三个 Evolve Agent 编辑示例,分别位于三个可控性层级:新增中间件文件、系统提示词追加、shell 工具编辑。
任务要求从 SQLite WAL 恢复数据。失败 rollout 在同一随机种子的前三步后分叉:智能体信任缓存 stdout、根据少量可见行猜测缺失行、用 guessed values 覆盖数据,并用行数检查替代 verifier 契约。第 2 轮的 chg-1 追加了八条系统提示词规则,其中"先读契约"、"不要从可见样本过拟合"、"完成前镜像 evaluator"等规则分别截获这些失败步骤。通过 rollout 会重新阅读任务说明,把 WAL changes 当作已有行的变更,定位并恢复原始字节,最后用与 verifier 同构的检查收尾。chg-1 是对 workspace/systemprompt.md 的 68 行追加,不包含 SQLite、WAL 或 db-wal-recovery 字样。
path-tracing 要求智能体实现一个 path tracer,把场景描述渲染到 /app/reconstructed.ppm。失败 rollout 已经渲染出正确文件,并通过自检,却在最后执行清理命令删除 /app/reconstructed.ppm,随后以清理命令退出码提交,导致 verifier 找不到输出。第 5 轮引入 publish-state guard 后,同样的清理命令会被 shell guard 拦截,并明确指出该文件已受保护;智能体收到提示后停止,不再重跑清理,verifier 能在磁盘上找到正确文件。
mcmc-sampling-stan 要求安装 rstan 2.32.7,拟合层次 beta-binomial 模型,并把 alpha 与 beta 的 posterior mean 写入两个文本文件。失败模式是 proxy-then-skip:智能体先用独立网格积分估计 posterior,把这些数作为交付物,随后启动真正 MCMC 采样,却为了"保留已创建交付物"提前 kill 掉采样,最后只检查文件存在且能解析为数字。verifier 从头运行 analysis.R,未收敛链产生约 1e19 的值而失败。第 6 轮的两个组件共同修复:工具级 publish-state guard 保护脚本入口点,中间件 ExecutionRiskHintsMiddleware 识别"用代理验证器替代具名 evaluator"、"浅层验证"等模式,促使智能体运行 analysis.R 到 iter = 100000 完成,并在 /tmp 中独立复跑交叉检查。
configure-git-webserver 展示第 8 轮如何修补第 5、6 轮架构的薄弱点。此前智能体在成功部署检查后,带着 override token 删除已验证的 live deliverable 或重置 live root,导致 verifier 404。第 8 轮 chg-1 将两类软原因升级为 hard block:删除任何非 /tmp 的受保护输出,或把任何非 /tmp 的受保护 root 重置为空,都不再能被 ALLOW_POST_SUCCESS_RESET 覆盖。chg-2 则把上一步中间件发出的风险提示提升为下一轮 model turn 顶部的 FRAMEWORK reminder,并添加针对 clean-layout、single-file delivery、official-wrapper 和 named-revision contract 的启发式提醒。
第 2 轮交付 prompt rules 和 shell-timeout argument;第 5 轮交付 publish-state 机制,包括提示词/工具描述规则与 shell guard;第 6 轮把 publish-state guard 扩展到脚本入口点,并引入跨步骤 ExecutionRiskHintsMiddleware;第 8 轮交付 hard blocks 和 FRAMEWORK reminders。所有变更都以相同 JSON manifest 形状记录,并在下一轮 Phase 3 中接受自动归因与回滚。
change manifest 将每个编辑连同 predicted fixes、predicted regressions 和 constraint level 带入下一轮 Phase 3,由 attribution check 决定保留或回滚。Figure 8 到 Figure 11 分别展示四个获胜轮次的 manifest 条目,覆盖 prompt、tool implementation 和 middleware 三个约束层级。
本附录展开 §4.4.2 的总体自归因结果。Figures 12 和 13 展示修复/回归的 precision/recall 四个面板。柱状图把每个分母拆成深蓝 TP 和浅色 FP 或 FN;虚线在右侧
Figure 12:逐轮修复预测。左:precision。右:recall。柱状图把分母拆成 TP 与 FP 或 FN;线条叠加指标和同期 pass@1。
Figure 13:逐轮回归预测。左:precision。右:recall。编码方式同 Figure 12。
本文引入 agentic harness engineering(AHE):一个自演化循环,编码智能体可以从执行反馈中编辑自身 scaffolding(系统提示词、工具、中间件和长期记忆)。AHE 降低了产出有竞争力编码智能体的人类工程成本:没有专门 Harness 团队的实践者,也能从同一基础模型获得比 prompt-only 自演化基线更高的 pass@1 和更低的单试验 token 成本,从而让学术团队、小组织和教育场景更容易获得能力较强的编码助手。由于循环把反复出现的协调模式编码进工具、中间件和记忆,而不是越来越长的提示词,它降低了每次调用的计算量及推理阶段相关能耗。它也支持快速 Harness 迭代,使周围 scaffolding 能跟上基础模型发布节奏。负面社会影响和相应泛化风险见 Limitations。
Footnotes
-
C. E. Jimenez 等 (2023-10) SWE-bench: can language models resolve real-world github issues? External Links: Link. Cited by: §1, §2.1, §4.1. ↩ ↩2 ↩3 ↩4
-
J. Yang 等 (2024-10) SWE-bench multimodal: do ai systems generalize to visual software domains? External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
X. Deng 等 (2025-10) SWE-bench pro: can ai agents solve long-horizon software engineering tasks? External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
M. A. Merrill 等 (2026-01) Terminal-bench: benchmarking agents on hard, realistic tasks in command line interfaces. arXiv. External Links: 2601.11868, Document, Link. Cited by: §1, §2.1, §4.1. ↩ ↩2 ↩3 ↩4
-
P. Rajasekaran (2026-03) Harness design for long-running application development. External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
R. Lopopolo (2026-02) Harness engineering: leveraging codex in an agent-first world. External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
X. Wang 等 (2025-04) OpenHands: an open platform for ai software developers as generalist agents. arXiv. External Links: 2407.16741, Document, Link. Cited by: §1, §2.1. ↩ ↩2 ↩3
-
J. Yang 等 (2024-11) SWE-agent: agent-computer interfaces enable automated software engineering. NeurIPS. External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
P. Steinberger (2026-02) OpenClaw — personal ai assistant. External Links: Link. Cited by: §1, §2.1. ↩ ↩2 ↩3
-
N. Research (2026) Hermes agent — the agent that grows with you. External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
V. Trivedy (2026-02) Improving deep agents with harness engineering. External Links: Link. Cited by: §1, §2.1. ↩ ↩2
-
X. M. Team (2026-04) MiMo-v2.5-pro. External Links: Link. Cited by: §1. ↩
-
Q. Team (2026-04) Qwen3.6-plus: towards real world agents. External Links: Link. Cited by: §1, §4.1. ↩ ↩2
-
A. Yang 等 (2025-05) Qwen3 technical report. arXiv. External Links: 2505.09388, Document, Link. Cited by: §1, §4.1. ↩ ↩2
-
DeepSeek-AI (2026-04) DeepSeek-v4: towards highly efficient million-token context intelligence. External Links: Link. Cited by: §1, §4.1. ↩ ↩2
-
K. Team (2026-04) Kimi k2.6 tech blog: advancing open-source coding. External Links: Link. Cited by: §1. ↩
-
K. Team 等 (2026-02) Kimi k2.5: visual agentic intelligence. arXiv. External Links: 2602.02276, Document, Link. Cited by: §1. ↩
-
L. A. Agrawal 等 (2025-10) GEPA: reflective prompt evolution can outperform reinforcement learning. In The Fourteenth International Conference on Learning Representations. External Links: Link. Cited by: §1, §2.2. ↩ ↩2
-
Q. Zhang 等 (2025-10) Agentic context engineering: evolving contexts for self-improving language models. ICLR. External Links: Link. Cited by: §1, §2.2, §4.2. ↩ ↩2 ↩3 ↩4 ↩5
-
Y. Cai 等 (2025-10) Training-free group relative policy optimization. arXiv. External Links: 2510.08191, Document, Link. Cited by: §1, §2.2, §4.2. ↩ ↩2 ↩3 ↩4
-
Y. Lee 等 (2026-03) Meta-harness: end-to-end optimization of model harnesses. arXiv. External Links: 2603.28052, Document, Link. Cited by: §1. ↩
-
N. Shinn 等 (2023-11) Reflexion: language agents with verbal reinforcement learning. NeurIPS. External Links: Link. Cited by: §1, §2.2. ↩ ↩2
-
A. Zhao 等 (2024-12) ExpeL: llm agents are experiential learners. arXiv. External Links: 2308.10144, Document, Link. Cited by: §1. ↩
-
A. Madaan 等 (2023-11) Self-refine: iterative refinement with self-feedback. NeurIPS. External Links: Link. Cited by: §1, §2.2. ↩ ↩2
-
Z. Ma 等 (2026-04) SkillClaw: let skills evolve collectively with agentic evolver. arXiv. External Links: 2604.08377, Document, Link. Cited by: §1. ↩
-
P. Xia 等 (2026-02) SkillRL: evolving agents via recursive skill-augmented reinforcement learning. arXiv. External Links: 2602.08234, Document, Link. Cited by: §1. ↩
-
R. Sutton (2019-03) The bitter lesson. External Links: Link. Cited by: §1. ↩
-
G. Zunic (2026-04) The bitter lesson of agent harnesses. External Links: Link. Cited by: §1. ↩
-
OpenAI (2025) Codex cli. External Links: Link. Cited by: §1, §4.2. ↩ ↩2
-
Anthropic (2025) Claude-code. External Links: Link. Cited by: §2.1. ↩ ↩2
-
T. Y. Zhuo 等 (2024-10) BigCodeBench: benchmarking code generation with diverse function calls and complex instructions. ICLR. External Links: Link. Cited by: §2.1. ↩
-
N. Jain 等 (2024-10) LiveCodeBench: holistic and contamination free evaluation of large language models for code. External Links: Link. Cited by: §2.1. ↩
-
S. Miserendino 等 (2025-06) SWE-lancer: can frontier llms earn $1 million from real-world freelance software engineering? ICML. External Links: Link. Cited by: §2.1. ↩
-
J. S. Chan 等 (2024-10) MLE-bench: evaluating machine learning agents on machine learning engineering. In The Thirteenth International Conference on Learning Representations. External Links: Link. Cited by: §2.1. ↩
-
J. Pan 等 (2025-06) Training software engineering agents and verifiers with swe-gym. ICML. External Links: Link. Cited by: §2.1. ↩
-
N. Jain 等 (2025-08) R2E-gym: procedural environment generation and hybrid verifiers for scaling open-weights swe agents. External Links: Link. Cited by: §2.1. ↩
-
Y. Zeng 等 (2026-02) SWE-hub: a unified production system for scalable, executable software engineering tasks. arXiv. External Links: 2603.00575, Document, Link. Cited by: §2.1. ↩
-
H. Guo 等 (2025-07) CritiQ: mining data quality criteria from human preferences. ACL 2025. External Links: Document, Link. Cited by: §2.2. ↩
-
O. Khattab 等 (2023-10) DSPy: compiling declarative language model calls into self-improving pipelines. arXiv. External Links: 2310.03714, Document, Link. Cited by: §2.2. ↩
-
K. Opsahl-Ong 等 (2024-11) Optimizing instructions and demonstrations for multi-stage language model programs. EMNLP 2024. External Links: Document, Link. Cited by: §2.2. ↩
-
G. Wang 等 (2023-10) Voyager: an open-ended embodied agent with large language models. arXiv. External Links: 2305.16291, Document, Link. Cited by: §2.2. ↩
-
A. Novikov 等 (2025-06) AlphaEvolve: a coding agent for scientific and algorithmic discovery. arXiv. External Links: 2506.13131, Document, Link. Cited by: §2.2. ↩
-
S. Hu, C. Lu, and J. Clune (2024-10) Automated design of agentic systems. In The Thirteenth International Conference on Learning Representations. External Links: Link. Cited by: §2.2. ↩
-
J. Zhang 等 (2024-10) AFlow: automating agentic workflow generation. ICLR. External Links: Link. Cited by: §2.2. ↩
-
W. Zhou 等 (2024-06) Symbolic learning enables self-evolving agents. arXiv. External Links: 2406.18532, Document, Link. Cited by: §2.2. ↩
-
Nex-AGI (2025) NexAU (au for agent universe), a general-purpose agent framework for building intelligent agents with tool capabilities. External Links: Link. Cited by: §3.1. ↩
-
N. Team 等 (2025-12) Nex-n1: agentic models trained via a unified ecosystem for large-scale environment construction. arXiv. External Links: 2512.04987, Document, Link. Cited by: §3.1. ↩
-
L. Lin (2026-02) Agent debugger: understanding agent trajectory with agentic workflows - dawning road. External Links: Link. Cited by: §3.2. ↩
-
P. Rajasekaran 等 (2025-09) Effective context engineering for ai agents. External Links: Link. Cited by: §3.2. ↩
-
OpenAI (2026-03) Introducing gpt-5.4. External Links: Link. Cited by: §4.1. ↩ ↩2
-
Google (2026-03) Gemini-3-1-flash-lite-model-card. External Links: Link. Cited by: §4.1. ↩
-
Anomaly (2025) Opencode: the open source coding agent. External Links: Link. Cited by: §4.2. ↩
-
Harbor (2026) Terminus-2. External Links: Link. Cited by: §4.2. ↩









