“Natural-Language Agent Harnesses“ 论文笔记
Agent 系统的性能越来越依赖 Harness但这些逻辑通常藏在代码里、框架默认设置里或者特定运行时的各种约定里。结果就是很难把一个 Harness 移植到另一个系统、拿来比较或者系统性地研究改进作者提出把 Harness 的高层控制逻辑从代码中抽出来用自然语言写成一个可编辑、可移植的文档叫Natural-Language Agent Harnesses (NLAH)。然后设计一个共享的运行时Intelligent Harness Runtime (IHR)让 LLM 直接读懂这个自然语言描述并按照里面的规则去执行任务方法本文认为 Harness 是管理任务族的多个模型或智能体的一个模式层其指定控制如何分解和安排工作契约必须生产哪些工件、满足哪些条件、何时停止运行说明每个步骤和分支坚持的内容(1) NLAH与 OpenAI 的报告一样NLAH 是有明确结构的自然语言文档通常放在类似 harness-skill/SKILL.md 的文件里。具体而言其包含以下部分Contracts定义输入输出格式、验证规则、停止条件、重试次数。比如 必须输出有效的 Python 代码文件 solution.py否则重新生成Roles给不同子代理分配职责和 prompt比如 Planner 负责出计划Solver 负责写代码Verifier 负责跑测试Debugger 负责修复Stage Structure描述工作流拓扑比如 先 PLAN → 再 EXECUTE → 然后 VERIFY → 失败就进入 REPAIR最多重试 3 次Adapters/Scripts命名一些确定性的钩子比如跑测试的脚本、解析输出的工具State Semantics说明状态怎么持久化推荐用文件比如通过路径重新打开 artifactFailure Taxonomy给常见失败起名字并定义处理方式比如 test_failure 就跳到 REPAIR 阶段tool_error 就重试一次(2) IHR具体而言IHR是个共享运行时里面有个 in-loop LLM 负责不停解读 NLAH、当前状态和一个叫Runtime Charter运行时宪章的共享规则它把任务拆成父子代理父代理轻量级只管调度子代理干实际活状态用文件持久化放在固定路径下便于重启和审计每次行动前都会检查 contracts失败就按 taxonomy 处理关键是把运行时通用规则 和 具体任务 harness分开避免污染实验可以看到 Harness 显著改变了行为工具调用、LLM 调用、运行时间但 Performance 变化不大此外不是所有模块都有用有些模块如 verifier因为 overhead在小样本上反而没明显提升甚至略降总结这篇工作更像是一次显式化 Harness 的初步探索利用自然语言形态的 Harness 可以增加可解释性和可迁移能力让 Harness 成功抽象出来。但在小样本实验下NLAH 虽然显著影响了智能体的运行逻辑成功率并无显著提升。由于预算有限作者说后续会在大规模实验来继续探究