论文

MemRepair:用于代理存储库级漏洞修复的分层记忆

MemRepair: Hierarchical Memory for Agentic Repository-Level Vulnerability Repair

上下文与知识记忆Agent记忆

摘要

现代软件生态系统面临着数量迅速增加的已披露漏洞,增加了对能够在存储库规模上可靠运行的自动修复技术的需求。尽管基于 大语言模型 (LLM) 的代理最近显示出自动漏洞修复 (AVR) 的前景,但大多数现有系统仍然将修复视为当前可见代码上下文的单个生成步骤。因此,它们缺乏重复使用先前修复或从失败的验证尝试中学习的持久机制,这限制了它们在复杂的多文件修复任务上的有效性。我们提出了 MemRepair,一个记忆增强的代理框架,它将漏洞修复制定为一个迭代的、经验驱动的过程。 MemRepair 将三个互补的记忆层(即历史修复、安全模式和细化轨迹记忆)与动态反馈驱动的细化循环相结合。这种设计允许代理检索特定于存储库的修复约定,应用可重用的安全防御,并利用先前的“失败到成功”轨迹来根据运行时证据修改语义上无效的补丁。我们在三个具有代表性的存储库级漏洞修复基准测试上评估 MemRepair:SEC-Bench、PatchEval(Python、Go、JavaScript)和 Multi-SWE-bench 的 C++ 子集。 MemRepair 分别实现了 58.0%、58.2% 和 30.58% 的最先进分辨率,优于 OpenHands 和 SWE-agent 等强大的通用代理以及专用 AVR 工具 InfCode-C++,同时保持具有竞争力的修复成本。这些结果表明,持久的分层修复记忆可以显着提高跨不同语言和存储库设置的代理漏洞修复的可靠性。