自然语言智能体框架:将智能体执行框架外部化为可执行的自然语言文档 Natural-Language Agent Harnesses
提出NLAH将智能体框架策略外部化为可执行自然语言文档,配合IHR运行时实现与代码框架相当的任务性能
前置知识
Agent Harness(智能体框架)
智能体框架是指围绕模型的外部执行系统,负责组织一次完整的任务执行流程。它决定了模型能看到什么信息、可以调用哪些工具、状态如何存储、观察如何返回、何时执行验证、失败如何恢复、何时停止执行以及多个模型调用如何组织。框架工程则是设计、实现、调试和评估智能体框架的实践。论文指出框架工程包含11个主要方面:智能体循环、工具设计与文档、上下文工程、文件系统和工作区管理、记忆与状态、验证与停止条件、安全权限与沙箱、运行时默认配置、可观测性与回放、重试与恢复以及预算控制。
本文的核心研究对象就是智能体框架本身,理解框架的定义和组成是理解论文切入点的基础
SWE-bench Verified
一个用于评估代码智能体解决真实GitHub仓库问题能力的基准测试。它包含经过人工验证的软件工程任务,要求智能体在真实代码库中定位问题、理解上下文、编写修复补丁并通过测试。主要评估指标是问题解决率(issue resolution rate)。这是当前代码智能体领域最权威的基准之一。
本文在SWE-bench Verified上进行了核心实验,Live-SWE框架在该基准上达到了73.0%的解决率
IHR(Intelligent Harness Runtime,智能框架运行时)
IHR是本文提出的一个共享运行时系统,负责解释和执行NLAH文档。它将自然语言策略文档转化为具体的智能体调用、任务移交、状态更新、验证门控和产物契约。IHR设计为轻量级,包含基础智能体和文本形式的运行时策略两层。基础智能体是一个代码形式的最小可执行子层,运行时策略则定义了如何解释和执行框架文档。
IHR是本文方法论的核心技术贡献,它使得自然语言框架文档不再只是被动的提示,而是有了可执行的运行时语义
NLAH(Natural-Language Agent Harness,自然语言智能体框架)
NLAH是本文提出的可执行自然语言文档,用于描述运行级别的框架策略。它指定了任务运行的各个阶段、角色定义、状态规则、验证规则、恢复规则和停止条件。与普通提示不同,NLAH描述的是整个任务运行的生命周期,涵盖多步骤执行。例如,一个NLAH可以规定何时创建任务状态文件、何时要求验证器检查补丁、回答前必须保留哪些证据等。
NLAH是本文的核心概念,代表了一种将框架策略从代码中外部化出来的新范式
Module Ablation(模块消融)
模块消融是一种实验方法,通过逐一移除或添加系统中的特定模块来观察其对整体性能的影响。在本文中,作者将框架中的各个模块(如文件支持的状态管理、验证器分离、自我进化、多候选搜索等)表达为NLAH中的独立部分,然后在共享运行时下逐一添加或移除这些模块,以分析每个模块对任务结果的影响。
模块消融是本文RQ3的核心实验方法,证明了NLAH的一个重要优势:使得框架设计中的各个组件可以被独立分析和比较
研究动机
现代语言模型智能体已经成为多步骤执行系统,它们使用工具、保持状态、从失败中恢复、验证中间结果,有时还将工作委派给其他智能体。这些行为由外部框架(harness)组织,而框架对测量性能有重大影响。问题在于,框架通常不是作为清晰的研究对象存在的。一个代码框架可能将提示、工具适配器、解析器规则、验证脚件、产物路径、重试逻辑、上下文策略和基准特定假设混在一个控制器包中。因此,一个看似很小的框架更改也可能同时改变调用边界、工具中介、状态载体、验证门控和停止语义。这使得框架难以检查、移植、比较和消融,即使框架模式本身往往是系统中可复用的部分。以Live-SWE-Agent为例,其代码材料包含60.1k token和68个文件,将策略逻辑与实现细节深度耦合在一起。
本文的目标是本文的具体目标是研究框架模式是否可以外部化为可执行的自然语言。作者提出了两个核心概念:自然语言智能体框架(NLAHs)将运行级别的框架策略写成可编辑文本,智能框架运行时(IHR)作为共享运行时通过智能体调用执行这一策略。关键分离在于:自然语言承载框架策略,而代码和运行时承载精确机制,如工具执行、解析、沙箱和日志记录。作者希望通过三个研究问题验证这一设计:(1)NLAH能否在保持任务性能的同时控制真实智能体运行;(2)IHR执行的NLAH是否保留了预期的框架机制;(3)一旦框架策略变得显式,各个模块能否被作为模块级别的干预进行分析。
与已有工作不同的是,本文的独特切入角度在于将研究对象从智能体本身转移到智能体框架。现有工作大多关注如何提升模型能力或优化单次提示,而本文关注的是围绕模型的整个执行系统。受AGENTS.md、CLAUDE.md、SKILL.md等可复用自然语言载体的启发,作者考虑将自然语言文档从简单的工具或工作流描述扩展到更广泛的框架级策略。与现有的提示编程、工作流编译等方法不同,NLAHs的目标是完整的任务运行生命周期,超越单个调用、固定管线或形式化工作流图。NLAHs有意保持更自由的自然语言形式以保留可编辑性和广泛表达性,同时依赖IHR和确定性钩子来执行。这种设计使得框架策略可以从不透明的实现逻辑中分离出来,成为可检查、可比较、可消融的研究对象。
核心方法
本文的方法核心思想是将智能体框架的策略层和机制层分离。直觉上,一个智能体框架包含两部分:做什么(策略)和怎么做(机制)。策略包括任务分解、角色契约、证据纪律、重试逻辑、状态移交和验证策略;机制包括工具执行、解析、沙箱和日志记录。传统上这两部分紧密耦合在控制器代码中,本文则将策略外部化为自然语言文档(NLAH),将机制保留在代码和运行时中。技术路线是构建一个四层架构:第一层是基础智能体(代码形式的最小可执行子层,本质是一个LLM循环);第二层是运行时策略(固定指令,将基础智能体转变为IHR);第三层是NLAH(自然语言策略文档);第四层是脚本和适配器(确定性代码,用于运行测试、解析结果等精确操作)。
本文的核心创新是提出将框架模式(harness pattern)作为可执行自然语言的新表示形式。与已有方法的本质区别在于:代码框架(Code Harness)提供最强和最确定性的控制,但策略与实现细节交织;普通提示(Prompted NLAH)将NLAH内容作为普通指令文本提供,没有IHR的共享运行时宪章和执行语义,是被动的信息载体;而IHR执行的NLAH则由IHR解释和执行,具有显式的运行时语义用于子智能体生命周期、产物和状态处理、契约门控和停止条件。这种三路比较的设计使得作者能够分离两个问题:自然语言框架策略是否足够表达,以及共享运行时是否比单纯提示提供了更强的执行语义。IHR的一个关键设计选择是即使对于名义上的单智能体框架,仍然将其实现为父编排器加一个执行子智能体,使得框架控制和任务执行之间的边界保持可见。
方法步骤详情
方法的具体步骤包括:(1)定义NLAH编写规范——首先声明任务契约(输入、预期输出、允许的工具或产物、完成条件),然后将阶段与机制分离(命名检查、计划、编辑、验证、恢复、定稿等阶段,但不重新实现底层工具操作),使状态和证据显式化(指定状态存储位置、哪些产物需要被后续智能体重新打开、什么证据支持某个声明),编写可消融的模块边界(使用清晰的模块名称如验证器、自我进化、多候选搜索等),使用简单可执行的语言(短条款、具体条件、显式产物)。(2)构建IHR运行时——基础智能体通过终端读写文件、运行进程、记录事件、启动子智能体;运行时策略定义如何解释和执行框架文档;子智能体仅接收预期的任务包,IHR监督移交并记录行为。(3)执行流程——IHR解析NLAH文档,通过模型调用、子智能体消息、工具调用、文件和确定性钩子实例化文档中的条款,包括任务状态管理、验证门控、恢复逻辑和停止条件。
技术新颖性
本文的技术新颖性体现在多个层面。首先,将框架模式外部化为自然语言是一个全新的研究视角——之前的工作要么将框架嵌入代码,要么将自然语言仅用作单次提示,没有将框架级策略作为自然语言表示对象来研究。其次,IHR作为共享运行时的设计使得NLAH不再是被动的指令文本,而是有了可执行的运行时语义,这是一个重要的概念飞跃。第三,三路比较的实验设计(代码框架 vs 提示NLAH vs IHR执行NLAH)能够精确分离表达性和执行语义两个维度的贡献。第四,模块消融的设计使得框架中的各个组件首次可以在共享运行时下进行独立分析,这是代码框架难以实现的。论文的贡献还在于探索了自然语言和代码在智能体框架系统中的边界,迈出了将自然语言的范围从局部指令大幅扩展到框架级策略的第一步。
实验结果
实验结果在三个基准上验证了NLAH的可行性和分析价值。在SWE-bench Verified上,IHR执行的NLAH达到73.0%的问题解决率,高于原生代码框架的67.0%,接近提示NLAH的77.0%,同时将可读框架策略从60.1k token的代码材料压缩到仅2.9k token的NLAH(文件数从68个减少到3个)。在Terminal-Bench 2.0上,NLAH达到53.9%的任务成功率,低于提示版本的57.3%但远高于原生代码实现的36.0%,策略材料从10.5k token压缩到0.8k token。在OSWorld上,NLAH达到46.3%,基本匹配代码框架的47.1%,策略材料从47.5k token压缩到1.4k token。机制审计显示IHR执行的NLAH在产物契约、工具调用成功和失败工具继续方面表现优异(Live-SWE上分别达到1.000、0.933和0.992),但信息移交召回率是主要瓶颈(从提示的1.000下降到NLAH的0.322)。模块消融表明文件支持的状态和自我进化是最强模块,而多候选搜索虽改变拓扑但未必提升性能。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| SWE-bench Verified(代码问题解决) | 问题解决率 | 73.0%(IHR执行NLAH) | 代码框架 67.0%,提示NLAH 77.0% | 比代码框架高6.0个百分点,接近提示NLAH |
| Terminal-Bench 2.0(终端任务) | 任务成功率 | 53.9%(IHR执行NLAH) | 代码框架 36.0%,提示NLAH 57.3% | 比代码框架高17.9个百分点 |
| OSWorld(计算机使用) | 任务成功率 | 46.3%(IHR执行NLAH) | 代码框架 47.1%,提示NLAH 47.9% | 基本持平代码框架 |
| SWE Verified 模块消融-自我进化 | 问题解决率 | 78.8% | Basic 73.0% | +5.8个百分点 |
| OSWorld 模块消融-文件支持状态 | 任务成功率 | 58.3% | Basic 44.4% | +13.9个百分点 |
局限与改进
本文的局限性主要体现在几个方面。首先,NLAH的运行时开销显著高于代码框架。在Live-SWE上,NLAH使用了41.0次工具调用和2.20M处理token,而代码框架仅需23.30次工具调用和283.60k处理token;在MHTBA上差异更大,NLAH用了4.20M处理token和13.50分钟运行时间,而代码框架用10.40M处理token和19.50分钟。其次,信息移交召回率是主要机制瓶颈,从提示的直接上下文模式(1.000)下降到NLAH的父子执行模式(Live-SWE 0.322,MHTBA 0.553),说明当前原型运行时在跨越子智能体边界时丢失了大量信息。第三,编排可靠性也低于提示模式(Live-SWE上NLAH为0.83,提示为1.00)。第四,论文仅使用了gpt-5.4-mini一个模型,缺乏跨模型泛化的验证。最后,作者也承认NLAH目前更像是一个原型,其成本特征应被视为工程优化目标而非最终状态。从我的观察来看,论文的模块消融实验中某些模块(如上下文压缩在OSWorld上从44.4降到36.1)出现了明显负面影响,这可能反映了NLAH编写质量对结果的敏感性。
独立分析的弱点
本文存在几个值得独立分析的弱点。第一,信息移交效率低下是当前最严重的问题——NLAH的父子执行模式导致信息传递损失严重,改进方向包括设计更高效的消息格式、引入共享记忆层或优化子智能体的任务包设计。第二,运行时开销过大限制了实际部署——IHR作为通用代理基底的通用性带来了固定开销,可以通过专用化运行时、缓存NLAH解析结果或并行化子智能体执行来优化。第三,NLAH的编写高度依赖人工经验——论文中的编写原则(如状态契约优先、阶段与机制分离)虽然实用但缺乏形式化指导,可以研究自动化的NLAH生成或优化方法。第四,基准覆盖范围有限——仅在三个基准上验证,且OSWorld上的结果(46.3% vs 47.1%)未能超越代码框架,表明NLAH在GUI密集型任务上的优势不明显。第五,缺乏与现有框架工程工具(如LangChain、AutoGen)的直接比较。
未来方向
作者提出了几个未来研究方向。首先,改进IHR的移交和编排可靠性——这是当前最具体的性能瓶颈,需要更好的父子智能体通信机制。其次,探索自我框架(self-harnessing)的设计——论文图1中提到的一个可能的未来设计,即控制器模型直接框架化其他模型而无需任何外部框架。第三,将NLAH扩展到更多任务领域和基准——当前仅覆盖代码、终端和计算机使用三类任务。基于本文成果,还可以延伸出几个方向:研究NLAH的自动合成和优化,类似于代码框架的自动调试优化(如Meta-Harness);探索NLAH的迁移学习,即一个任务的NLAH能否适应到相关任务;研究多智能体系统中的NLAH协调机制;以及将NLAH与形式化验证方法结合,提供更强的正确性保证。
复现评估
论文在复现性方面提供了较好的支持。所有实验使用相同的IHR实例化:Codex CLI版本0.123.0,模型gpt-5.4-mini,推理努力程度xhigh。运行环境为Ubuntu 24.04服务器,64核CPU和251 GiB内存,所有任务在Docker容器中执行(每任务上限32 vCPU、84 GiB内存、40 GiB存储)。这些细节有助于复现实验。然而,论文的开源情况未在提供的文本中明确说明,NLAH文档的具体内容也未完全公开。算力要求方面,NLAH的token使用量显著高于代码框架(如MHTBA上4.20M vs 10.40M处理token),这意味着复现需要相当的API调用预算。总体而言,实验设置较为清晰,但完整的NLAH文档和IHR实现代码的开源将大大提升可复现性。
论文图表