MemGovern团队 投稿
量子位 | 公众号 QbitAI
人类程序员碰到棘手bug通常会上网查询前辈经验。
当前AI虽然开始具备联网搜索能力,但仍不能很好地从网络经验中获取修复bug的能力。
让AI学习人类程序员的工作流程或许有助于其提升bug修复能力,名为MemGovern的项目团队在此思路下做出的尝试近期得到了良好的效果。
在自动化软件工程(SWE)领域,大语言模型驱动的代码智能体(Code Agents)虽然在编程范式上带来了变革,但它们目前普遍面临“封闭世界”的认知局限:现有的智能体往往试图从零开始修复Bug,或者仅依赖仓库内的局部上下文,而忽略了GitHub等平台上积累的浩瀚历史人类经验。
事实上,人类工程师在解决复杂问题时,往往会搜索开源社区,借鉴相似问题的历史解决方案。
然而,直接让智能体利用这些“开放世界”的经验极具挑战,因为真实的Issue和Pull Request(PR)数据充斥着非结构化的社交噪音、模棱两可的描述以及碎片化的信息。
为了突破这一壁垒,前沿开源学术社区QuantaAlpha联合中国科学院大学(UCAS)、新加坡国立大学(NUS)、北京大学(PKU)、华东师范大学(ECNU)等团队提出了MemGovern框架。
该框架并未采用简单的检索增强(RAG)路径,而是提出了一套完整的“经验精炼”机制,将杂乱的GitHub数据转化为智能体友好的结构化记忆,并结合了Deep Research的思想提出了“Experiential Memory Search”策略,实现了从历史经验中提取可复用修复逻辑的闭环。
核心痛点:海量数据≠可用知识
现有的Code Agent(如SWE-Agent)在处理复杂Bug时,往往陷入“不知所措”的境地,因为它们缺乏历史记忆。虽然GitHub是一个巨大的宝库,但直接把Issue和PR丢给AI效果并不好,原因在于:
1.噪声极大:原始讨论中充斥着“感谢”、“合并请求”等无关社交用语。
2.非结构化:不同项目的日志、报错信息和修复逻辑混杂在一起,缺乏统一格式。
3.难以检索:简单的语义匹配容易被表面关键词误导,无法触达深层的修复逻辑。
MemGovern的出现,就是为了把这些“原始数据”变成AI真正能用的“经验卡片”。经验精炼机制(Experience Refinement Mechanism)
MemGovern并没有直接将原始的GitHub Issue和PR扔给智能体,而是构建了一套层次化的筛选与内容净化流水线。
层次化选择(Hierarchical Selection):首先,通过综合考量Star数与维护活跃度(Issue/PR频率),筛选出高质量的仓库源;随后,在实例层面进行严格清洗,仅保留包含完整证据链(问题-代码-验证)的“闭环”修复记录。
标准化经验卡片(Experience Card):这是MemGovern的独创设计。原始记录被重构为标准化的经验卡片,每张卡片被显式地解耦为两层:
索引层(Index Layer,):包含标准化的问题摘要与关键诊断信号(如异常类型、错误签名),用于基于症状的高效检索。
决议层(Resolution Layer,):封装了根因分析(Root Cause)、修复策略(Fix Strategy)、补丁摘要(Patch Digest)以及验证方法(Verification)。
这种结构化设计有效解决了检索信号与推理逻辑混淆的问题,显著提升了知识的可用性。目前,团队已成功构建了包含135,000条高保真经验卡片的知识库。
代理式经验搜索(Agentic Experience Search):像人类一样“搜索-浏览”文档
传统的RAG(检索增强生成)往往是一次性把检索结果塞给模型,容易导致上下文超长且充满噪声。MemGovern采用了更符合人类直觉的Search-then-Browse(先搜后看)模式:
智能体首先根据当前Bug的症状(如报错堆栈)在索引层进行广度搜索,快速定位可能相关的候选案例。
智能体自主选择最有希望的案例,查看其详细的“解决方案层”。这种机制允许智能体深入理解修复逻辑,排除无关干扰。
智能体将历史案例中的抽象修复策略(如“增加边界检查”)映射到当前的代码库中,实现知识迁移。
研究团队在SWE-bench Verified上进行了详尽的评测。结果显示,MemGovern在所有测试模型上都取得了显著提升。
主要实验结果(Pass@1修复率):
修复率达到69.8%,相较于基线SWE-Agent提升了3.2%。
修复率从23.2%飙升至32.6%,实现了9.4%的巨大提升。
修复率提升至65.8%。
实验数据清晰地表明,MemGovern的提升是稳健且模型无关的。对于基础能力较弱的模型,MemGovern提供的外部经验能够带来更为显著的性能飞跃。
消融实验验证:
随着经验卡片数量从10%增加到100%,智能体的修复率呈现单调上升趋势,证明了大规模经验记忆的有效性。
对比直接使用原始Issue/PR数据(Raw Experience),经过“精炼”的经验卡片带来了更稳定、更高的性能提升,证明了结构化治理的必要性。
在Django框架的一个真实Bug(order by导致崩溃)中,我们可以清晰地看到MemGovern的价值。
传统Agent(No Experience):
缺乏经验的智能体只能看到报错表象。
它采取了一种“防御性编程”的策略,简单粗暴地加了一个类型检查来绕过报错。但这实际上违反了函数的API规范——它返回了错误的原始对象而非预期的处理结果。
这种“掩耳盗铃”式的修复虽然暂时消除了运行时的报错,却导致下游核心功能因数据类型不匹配而失效,最终依然无法通过测试用例。
MemGovern Agent:
智能体检索到了一条相似的历史经验。
经验卡片中的“Fix Strategy”明确指出:“不要仅仅绕过对象,而应该进行显式的类型检查并提取字段名”。
依据这条指引,智能体写出了完美的修复代码,既修复了Crash,又保留了原有功能。
经验重塑
MemGovern的提出,不仅是性能指标上的突破,更重要的是,它为AI智能体如何有效利用海量的非结构化人类调试经验指明了一条清晰可行的道路。
它证明了将GitHub上杂乱的原始Issue与PR经过经验加工后能被视为可检索、可验证、可迁移的“经验记忆”,而非充满噪声的“干扰数据”,是打破智能体封闭世界的限制、解决复杂现实世界Bug的强大范式。
未来,MemGovern所开创的经验重塑范式,其潜力绝不仅限于代码领域。
这种将非结构化的人类专业经验转化为机器可读记忆的方法,具有极强的通用性与推广价值。它为法律咨询、医疗诊断等同样高度依赖历史案例与专家经验的垂直领域,提供了一套标准化的模版。
期待MemGovern的理念能走出代码仓库,完成更多需要“以史为鉴”的复杂智力任务,为构建跨领域的、通用的智能体记忆基础设施奠定基石。
论文标题:
MemGovern: Enhancing Code Agents through Learning from Governed Human Experiences
论文链接:
https://arxiv.org/abs/2601.06789
开源代码:
https://github.com/QuantaAlpha/MemGovern
关于QuantaAlpha
QuantaAlpha成立于2025年4月,由来自清华、北大、中科院、CMU、港科大等名校的教授、博士后、博士与硕士组成。我们的使命是探索智能的“量子”,引领智能体研究的“阿尔法”前沿——从CodeAgent到自进化智能,再到金融与跨领域专用智能体,致力于重塑人工智能的边界。