---
source: arxiv
url: https://arxiv.org/abs/2605.17444v1
published_at: '2026-05-17T13:29:46'
authors:
- Simiao Liu
- Li Zhang
- Fang Liu
- Xiaoli Lian
- Yang Liu
- Yinghao Zhu
topics:
- automated-vulnerability-repair
- code-agents
- repository-level-repair
- memory-augmented-agents
- software-engineering-ai
relevance_score: 0.94
run_id: materialize-outputs
language_code: zh-CN
---

# MemRepair: Hierarchical Memory for Agentic Repository-Level Vulnerability Repair

## Summary
## 摘要
MemRepair 是一个面向仓库级漏洞修复的智能代理系统，为基于 LLM 的代码代理加入了持久化修复记忆。它声称在 SEC-Bench、PatchEval 和 Multi-SWE-bench C++ 上取得了更高的修复率，同时每个任务的成本接近通用编码代理。

## 问题
- 仓库级漏洞修复通常需要跨文件推理、运行时验证，以及不破坏现有行为的修复。
- 现有 LLM 代理往往只根据当前可见上下文生成补丁，因此会重复失败的修复，也会错过项目特有的修复规范。
- 这很重要，因为人工漏洞修复速度慢、成本高，而错误的自动补丁可能删除代码、掩盖崩溃，或者引入回归。

## 方法
- MemRepair 使用三层记忆：History-Fix Memory 记录来自同一项目或相似项目的历史修复，Security-Pattern Memory 记录可复用的防护模式，Refinement-Trajectory Memory 记录从失败补丁到成功补丁的修正路径。
- 检索时先优先查找同一项目、同一 CWE 和同一语言；如果找到的示例太少，就转而搜索其他具有相同 CWE 和语言的项目。
- 修复循环包含 Locator、Patcher 和 Verifier。Verifier 运行漏洞测试和回归测试，然后要么接受补丁，要么要求生成新补丁，要么要求 Locator 找到更好的代码位置。
- Iter_grep 解析仓库结构，并结合堆栈跟踪、sanitizer 报告、符号使用情况和到崩溃点的距离，对可能的代码位置排序。
- 失败尝试会被压缩成紧凑日志，成功的修复过程会更新后续任务使用的记忆。

## 结果
- 在 SEC-Bench 上，使用 DeepSeek-v3.2 的 MemRepair 解决了 58.00% 的任务；OpenHands* with DeepSeek-v3.2 为 38.50%，OpenHands with Claude-3.7 为 34.00%，SWE-agent with Claude-3.7 为 31.50%，Aider with Claude-3.7 为 23.50%。
- 在 SEC-Bench 上，MemRepair 每个任务的成本为 $0.26；OpenHands* 为 $0.18，OpenHands Claude-3.7 为 $0.61，SWE-agent 为 $1.29，Aider 为 $0.44。
- 在 SEC-Bench 上，MemRepair 的定位正确率达到 60.00%。SWE-agent 的定位更高，为 67.50%，但修复成功率更低，为 31.50%。
- 在涵盖 Python、Go 和 JavaScript 的 PatchEval 上，MemRepair 解决了 58.2% 的任务。摘录称这比之前最好的代理高出 20 多个百分点，但没有给出完整的各基线对照表。
- 在 Multi-SWE-bench C++ 上，使用 DeepSeek-v3.2 的 MemRepair 解决了 30.58% 的任务；InfCode-C++ with GPT-5 为 25.60%，MOpenHands with Claude-3.7 为 14.70%，MSWE-agent with Claude-3.7 为 11.60%，MAgentless with Claude-3.7 为 3.90%。
- 在 Multi-SWE-bench C++ 上使用相同的 DeepSeek-v3 后端时，MemRepair 解决了 15.08% 的任务；InfCode-C++ 为 13.20%。

## Problem

## Approach

## Results

## Link
- [https://arxiv.org/abs/2605.17444v1](https://arxiv.org/abs/2605.17444v1)
