论文

HERMES:用模块化可执行原语构建软件工程 Harness

Harness Engineering for Software Engineering via Modular Executable Dev-Primitives

智能体系统Agent Harness

摘要

配备终端接入的大语言模型(LLM)在自动化软件工程任务方面表现出了强大的能力。然而,现有的智能体在长期工作流程中仍然很脆弱,它们必须重复重建分散在源文件、配置、测试、依赖项和运行时行为中的程序状态,导致交互历史记录越来越长、上下文爆炸和语义漂移。大型存储库使任务相关组件的识别进一步复杂化。为了应对这些挑战,我们引入了 Dev-Primitives (Development Primitives),这是一种模块化且可执行的抽象,可将存储库组件从被动的软件工件转变为软件工程的主动参与者。每个 Dev-Primitive 将存储库工件与驻留的 LLM 配对,这为工件提供了基于其自身实现和依赖项的智能体原生接口,从而实现自然语言推理、组件间通信和本地化自我修改。在 Dev-Primitives 的基础上,我们提出了 HERMES,这是一个通过模块化可执行 Dev-PrimitiveS 进行软件工程的 Harness 工程框架,它通过依赖项感知动态激活机制和错误诊断机制在存储库规模实例化这些原语,将执行证据映射回必须修改的组件。对四个软件工程基准的大量实验表明,HERMES 的性能平均优于匹配基线 Harness 12.4%。此外,当与强大的激活和诊断模型配合使用时,即使使用 Qwen3-8B Dev-Primitives,HERMES 在所有四个基准测试中仍保持在同质 GPT-5.6 Sol 配置的 4.5% 以内,同时在 Terminal-Bench 4.0 上将推理成本降低了 26.2%,凸显了 Harness 设计在软件工程智能体中的重要性。

HERMES:用模块化可执行原语构建软件工程 Harness:论文原图
图 1:HERMES 概述。动态激活选择与任务相关的存储库组件并实例化 Dev-Primitives,这些组件修改自己的工件并以自然语言交换需求。执行修改后的存储库,错误诊断将观察到的故障映射回必须修改的组件,仅重新激活下一轮的组件。