量子位 2小时前
开源框架让代码AI偷师GitHub!bug修复率飙升至69.8%,性能创纪录
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

人类程序员碰到棘手 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(先搜后看)模式:

Searching(搜索)

智能体首先根据当前 Bug 的症状(如报错堆栈)在索引层进行广度搜索,快速定位可能相关的候选案例。

Browsing(浏览)

智能体自主选择最有希望的案例,查看其详细的 " 解决方案层 "。这种机制允许智能体深入理解修复逻辑,排除无关干扰。

迁移与应用

智能体将历史案例中的抽象修复策略(如 " 增加边界检查 ")映射到当前的代码库中,实现知识迁移。

实验评估:全面超越主流基线

研究团队在SWE-bench Verified上进行了详尽的评测。结果显示,MemGovern 在所有测试模型上都取得了显著提升。

主要实验结果(Pass@1 修复率):

Claude-4-Sonnet+MemGovern

修复率达到69.8%,相较于基线 SWE-Agent 提升了 3.2%。

GPT-4o+MemGovern

修复率从 23.2% 飙升至32.6%,实现了9.4%的巨大提升。

DeepSeek-V3+MemGovern

修复率提升至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 到自进化智能,再到金融与跨领域专用智能体,致力于重塑人工智能的边界。

2026 年,我们将在 CodeAgent(真实世界任务的端到端自主执行)、DeepResearch、AgenticReasoning/Agentic RL、自进化与协同学习等方向持续产出高质量研究成果,欢迎对我们方向感兴趣的同学加入我们!

团队主页:

https://quantaalpha.github.io/

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

—    —

我们正在招聘一名眼疾手快、关注 AI 的学术编辑实习生 

感兴趣的小伙伴欢迎关注  了解详情

点亮星标

科技前沿进展每日见

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

ai 开源 程序员 中国科学院大学 效果
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论