论文

HealBench与HealGuard:核验真实仓库的运行状态修复

Trustworthy Runtime Error Healing in Real-World Repositories: A Benchmark and Guardrail

智能体系统Agent 动作执行与治理

摘要

运行时错误修复可让崩溃的程序通过生成修复其实时运行时状态的代码来继续运行。最近的研究表明,LLM 可以生成这样的修复代码,但它仅在小型竞赛程序上进行评估,并且在实时进程中执行 LLM 生成的代码会引发尚未解决的安全问题。在本文中,我们将基于 LLM 的运行时修复技术应用于现实世界的存储库中。我们首先构建 HealBench,这是来自 18 个真实存储库的 265 个运行时错误的基准,每个错误都与修补版本上的参考执行配对。 HealBench 还提供了一个统一的框架,让 LLM Agent能够通过跨文件上下文和实时运行时状态进行修复。然后,我们设计了HealGuard,它需要在HealCore(Python的可分析子集)中编写修复代码,并使用静态和动态污点分析来检查修复改变的状态是否到达了开发人员保护的操作。我们评估了一种专用的治疗方法和三种通用编码剂以及三名骨干大语言模型。最佳设置在 38.11% 的实例中恢复执行,并在 28.68% 的实例中通过目标测试,这表明现有Agent已经可以修复大部分实际存储库级崩溃。然而,在通过的执行中,HealGuard 标记了 17.4% 的修复更改状态可能会达到受保护的操作。在 684 个受控病例中,HealGuard 检测到了所有不安全病例,但误报率为 68.42%。