本文提出了 Natural-Language Agent Harnesses (NLAH) 框架,通过将 Agent 的高层控制逻辑(如多步推理、工具调度、状态管理)从硬编码中剥离,转化为可执行的自然语言制品。结合智能支架运行时 (Intelligent Harness Runtime, IHR),该方法在 SWE-bench Verified 和 OSWorld 任务中实现了标准化的模块化消融与代码到文本的迁移。
TL;DR
在 Agent 开发领域,我们正处于一个转折点:决定成败的不再仅仅是模型(Model),而是包裹在模型之外的支架(Harness)。清华大学与哈工大的研究团队提出了 Natural-Language Agent Harnesses (NLAHs),试图将那些复杂的 Reason-Act 循环、反思机制、记忆调度从碎片化的 Python 代码中解放出来,变成一种可移植、可读、且可直接执行的自然语言制品。
1. 痛点:Agent 的“暗逻辑”
如果你开发过 Agent,一定深有体会:为了让 GPT-4o 跑完一个复杂的编程任务,你可能写了一堆 Python 脚本来控制什么时候该搜索、什么时候该报错退出。
- 黑盒化:这些逻辑散落在各种框架的
defaults和工具适配器里。 - 不可迁移:换一个运行时,你的 Agent 就“废了”。
- 难以比较:当我们说 A 模型比 B 模型在某个榜单上强 5% 时,我们分不清这是因为模型更聪明,还是 A 模型的“支架”代码写得更鲁棒。
图 1:现代 Agent 常用的支架模式(如搜索、编排、验证等)
2. 核心架构:NLAH + IHR
作者提出了一个极具启发性的思路:既然大模型能理解代码,为什么不直接让它理解并执行关于“如何执行任务”的自然语言规范?
Natural-Language Agent Harnesses (NLAH)
NLAH 不仅仅是一段 Prompt。它是一个结构化的、包含以下要素的协议对象:
- Contracts (合同):明确输入输出规范、预算限制和停止规则。
- Roles (角色):如 Solver, Verifier, Researcher 的职责边界。
- Stage Structure (阶段):Plan -> Execute -> Verify 的拓扑结构。
- Failure Taxonomy (失败分类学):定义“超时”、“工具错误”等模式,驱动自动化恢复。
Intelligent Harness Runtime (IHR)
这是一个特殊的运行时,它将一个 LLM 放在循环中(In-loop),通过读取 NLAH 协议、当前环境状态和“运行时章程(Charter)”来决定下一步动作。它将传统的“模型调用”提升为具有责任边界的“Agent 调用”。
图 2:IHR 运行 NLAH 的流程,实现了逻辑与执行的分离
3. 深度洞察:结构化真的越多越好吗?
在 SWE-bench (编程) 和 OSWorld (电脑使用) 上的实验揭示了一些反直觉的真相:
- Resolved Rate 并非唯一指标:研究发现,增加复杂的支架逻辑在短期内可能不会大幅提升成功率( Resolved Rate),但会显著改变过程指标(如 Token 消耗、工具调用分布)。
- 模块化的威力:当支架变成模块化的 NLAH 后,作者通过消融实验发现:
- Self-evolution (自我进化):对性能提升最明显 (+4.8%),因为它让 Agent 在尝试失败后能进行有纪律的复盘。
- File-backed State (文件状态备份):能显著提升系统鲁棒性,因为它提供了一个持久化的状态表面(State Surface),防止 Agent 在长上下文中由于“忘记”之前操作而失败。
- 对齐风险:更复杂的验证阶段(Verifier)有时反而会导致失败,因为本地的验证逻辑可能与测评基准(Benchmark)的判定逻辑发生偏移(Drift)。
表 1:不同支架模块在 SWE-bench 和 OSWorld 上的增益分析
4. 迁移实验:从代码到文本
最硬核的实验段落在于 Migration (迁移)。作者将原本由原生 Python 代码编写的 OS-Symphony 支架改造成了 NLAH 文本格式。
- 惊人发现:迁移后的文本支架在 OSWorld 上表现得更好(47.2% vs 30.4%)。
- 背后逻辑:原生代码往往陷入具体的 GUI 交互(点选、截图),而 NLAH 版本在 IHR 的解释下,会自动倾向于选择更稳健的文件级、Shell 级操作。这证明了自然语言支架具有更强的行为适应性和策略韧性。
5. 总结与反思
这篇论文的真正价值不在于刷榜,而在于它提供了一种**“支架表示学 (Harness Representation Science)”**。
- 未来展望:一旦支架变成显式的文本对象,我们就可以像优化权重一样去优化支架——通过自动搜索、检索和重组 NLAH 模块,让 Agent 真正具备“自我定制”控制逻辑的能力。
- 局限性:自然语言毕竟没有代码精确,在需要高度确定性的沙箱操作中,依然需要底层的代码脚本作为支架的“肌肉”。
一句话总结:Agent 的未来,是把高层的控制交给可解释的语言,把底层的执行交给可靠的代码。
本文由资深学术技术主编重构。
