Agentless+开源模型,也能高质量完成仓库级代码修复任务,效果媲美业界 SOTA 。
一、Agentless 、44% 与 NO.1
说到 AI 写代码的实力,大家最关心的还是一个问题:能不能真修 bug ?
首个全自动 AI 软件工程师 Devin 一出场就引爆了技术圈,其江湖地位也在权威基准 SWE-Bench 上被进一步坐实——
独立解决了 13.86% 的问题,远远甩开 GPT-4 仅有的 1.7% ,Claude2 也不过 4.8% 。
没过多久,Genie 又在同一测试中直接将得分拉升至 30.08% ,曾一度登顶全球最强 AI 程序员。
SWE-Bench 为何能赢得工业界、学术界和创业团队广泛关注?因为,它够真实。
这套由普林斯顿大学提出的测试集,任务全部来自真实的 GitHub 项目——
问题要么是开发者在生产环境中遇到的 bug ,要么是功能开发中的典型需求,难度大、上下文复杂,最大程度地还原了程序员在真实开发中的工作状态。
换句话说,能在 SWE-Bench 上拿高分的模型,必须具备一个经验丰富软件工程师的复杂技能和经验,而这些恰恰是传统代码生成 benchmark 中很难覆盖的。
考虑到 SWE-Bench 难度太高,团队也提出了稍微简单些的子集 SWE-Bench Lite ,即便如此,难度仍旧很高。
现有业界 SOTA 全部基于闭源模型,排行榜上的主力选手也大多是「豪华组合」:
闭源大模型(如 GPT-4o、Claude3.5 )+ Agent 架构(如 SWE-Agent ),靠大体量和复杂调度系统「堆」出来能力。
近日,蚂蚁集团另辟蹊径,给出一个完全不同的新解法:代码图模型 CGM( Code Graph Model ),基于开源模型实现了能与闭源媲美的性能——
在 SWE-BenchLite 公开排行榜上,CGM 能成功解决 44% 的问题,秒杀所有开源模型,位列第一;开源系统排名第六。
秒杀所有开源模型,位列第一
开源系统排名第六。
SWE-BenchLite测试平台上的结果
具体而言,此次开源的 CGM 在 SWE-Bench 上实现了三项突破——
首先,打破闭源垄断。首次使用开源的千问大模型,就能做到媲美 SOTA 的性能,并同步开放训练用的代码图数据。
其次,摒弃了复杂 Agent 架构,仅用 4 步轻量级 GraphRAG 流程,即可完成高效问题定位与修复。
第三,首创性地让大模型能直接读懂仓库级的代码图结构,链接了代码和图两个模态,让模型充分理解仓库级上下文。
目前,CGM 已正式开源,模型、代码、数据集均可在 HuggingFace 与 GitHub 获取:
论文:https://arxiv.org/abs/2505.16901
模型:https://huggingface.co/codefuse-ai/CodeFuse-CGM-72B
代码:https://github.com/codefuse-ai/CodeFuse-CGM
数据:https://huggingface.co/datasets/codefuse-ai/CodeGraph
事实上,CGM 的战绩从来不输强敌。
早在 2024 年 10 月,它就以 35.67% 的问题解决率拿下 SWE-Bench Lite 开源榜首;
两个月后再度登顶,解决率升至 41.67% 。
而这次最新版本再次刷新纪录,解决率来到 44%,实现了对开源赛道的「连续三杀」。
二、LLM+Agent 架构?看起来很美
写代码,可以说是 AI 大模型的「天赋技能」。ChatGPT 大火后,各种 AI 代码助手加速融入程序员的日常工作。
2023 年 9 月,蚂蚁推出 AI 代码助手 CodeFuse ,称要支持整个软件开发生命周期,涵盖设计、需求、编码、测试、部署、运维等关键阶段。
经过两年发展, CodeFuse 已逐步构建起较为完整的生态体系,其中,用于处理仓库级别任务的 CGM( Code Graph Model )成为关键支点之一。
现实开发中,真正考验代码模型的不是写几个函数,而是像 Issue 修复、代码审查这类仓库级任务。一个大型项目动辄成千上万行代码,上千个文件、成百上千个函数,类与模块之间继承、调用关系错综复杂——动一行,可能牵一片。看似只改一个函数,实则要理清一整片森林。
为了解决这类复杂任务,当前业内主流路径是基于 LLM Agent 架构。
例如,用户问「如何增加删除按钮」、「密码验证逻辑在哪个函数中」,系统会自动调度多个 Agent 各司其职,同时对仓库内的代码进行切片、embedding 计算、语义检索等操作,最终召回相关代码并生成响应或修改建议。
但这种方案,除了模型的可获取性受限,在真实场景中却暴露出不少「隐藏 bug 」。
首先,软件开发任务往往比较复杂。
「如何添加一个删除按钮」这一看似简单的需求,背后包含多个 agent(「节点」)。节点越多,越不可控。任何一个出错(例如错判了文件位置、召回了无关代码)都会影响后续流程,造成误差积累。
而且,agent 越多,执行路径越长,通信与计算成本也水涨船高。
其次,训练数据跟不上系统复杂度。
像 SWE-bench 这样的评测数据集,虽然真实、权威,但提供的是端到端的样本——只标注了起点(问题)和终点(修复),中间 agent 们「怎么拆解任务、怎么协作」的路径信息往往缺失。
换句话说,任务精细化了,但数据却仍是粗粒度的,训练难度反而上升。
再者,语言模型「线性读代码」的方式本身就存在局限。
传统做法通常把整个文件「铺平」为一长串 token ,忽略了代码天然的结构性。而代码仓库本质上更像一张图——函数之间调用、类之间继承、模块之间依赖,结构复杂但规律明确。
想让大模型真正具备仓库级别的理解力,一个可行的技术路径就是把结构直接喂进去。
三、「结构感知」的 Agentless 路线
是否可以在不依赖 agent 的情况下,使用开源大模型高效完成仓库级代码任务?蚂蚁全模态代码算法团队找到了答案,提出 CGM( Code Graph Model )架构——
不依赖繁复的 agent 调度,而是首创将代码仓库图结构作为模态输入,直接融入大模型中,一举捕获函数调用、模块依赖、类继承等复杂关系。
这相当于给大模型戴上一副「工程眼镜」,让原本隐而不显的代码实体(文件、类、函数、变量等)的各种关系,立刻清晰可见。
而这一能力的实现,离不开三个关键突破。
1、多粒度代码图谱建模,捕捉结构信息
CGM 会将代码仓库建模为图数据结构。为捕捉仓库图结构信息,团队首先利用程序分析技术将整个代码仓库转换为对应代码图(如图1)。代码图中的节点类型和边类型如下:
节点类型:涵盖 7 类代码实体( REPO / PACKAGE / FILE / TEXTFILE/ CLASS / FUNCTION / ATTRIBUTE )
边类型:包含 5 种依赖关系( contains / calls / imports / extends /implements )
图1仓库代码图
在代码图中,contains 边捕捉了代码实体之间的层次依赖,其余边类型则捕捉了代码实体之间的语义依赖。在构建代码图时,也包含对复杂依赖的处理。
继承:支持解析多重继承(基于 CHA 算法)。
调用:保守解析动态调用,确保语义依赖完整。
这一建模方式目前已支持 Python 和 Java 。
通过建模,原本零散的代码会被组织成一个有结构、有方向的网络。CGM 能像程序员第一次阅读陌生仓库时那样,迅速在脑海中生成一张「代码依赖图谱」,看清谁调用谁、谁影响谁。
2、两阶段训练,结构-语义双模态对齐
有了图结构,接下来就要教会 LLM「读懂」它:不仅理解单个节点的语义,还能在图结构上进行高效推理,从而实现结构和语义的深度融合。
首先,用 CodeT5+ 编码每个节点的语义信息,并通过适配器将其映射到大模型输入空间,确保大模型能读懂节点文本内容(语义对齐);
其次,将图的邻接矩阵转化为一个图感知注意力掩码( Graph-awareAttentionMask ),替换掉 LLM 中处理节点 token 时的标准因果注意力掩码。
这一改动巧妙地模拟了图神经网络中的「消息传递」机制,让注意力计算只关注图中相邻节点之间信息流动,从而让 LLM 能够直接感知和利用代码的结构依赖关系。
训练过程包括预训练与微调两阶段,分别夯实「理解力」与「泛化能力」:
子图重构预训练,是根据输入子图重构源代码,建立从代码图到 LLM 语义带格式的空间的映射,夯实结构与语义融合基础;
噪声增强微调,此阶段使用真实的 GitHub 问题-修复补丁数据对 CGM 进行微调。为了提升模型的鲁棒性,团队特意在提示中引入了 10% 的噪声输入。例如,提示中可能包含一个实际上无需修改的不相关文件,或者遗漏至少一个本应被修改的关键文件。在训练中引入这种受控的噪声有助于模型更好地泛化到实际输入信息不完整或包含干扰的场景。
3、GraphRAG 框架:R4 链路高效生成补丁
为了把能力用起来,团队还设计了轻量化的 GraphRAG 框架。
相比于现有的 Agentless 框架,GraphRAG 进一步将核心模块数量从 10 个精简到 4 个关键模块——
改写器( Rewriter )、检索器( Retriever )、重排器( Reranker )和生成器( Reader )。
模块之间顺序执行、高效协同,还原程序员日常修 bug 的思维路径与操作链路,在真实场景中高效、准确地定位问题并生成修复补丁。
当然,对于有 SWE 需求的企业而言,CGM 的吸引力远不止榜单成绩。
在保障核心数据安全可控的同时,CGM 为企业带来了更大的自由度——
不仅规避了隐私泄露风险,也免去了持续支付高昂 API 费用的负担。企业可以基于自身业务需求,对模型进行深度定制和优化部署。
像 DeepSeek-V3 这样的开源高性能大模型已成为不少私有化部署的首选,CGM 架构也会吸引有上述需求企业的注意力。
正如 OpenAI CEO SamAltman 所言:「2025 年底前,软件工程将发生翻天覆地的变化。」CGM,无疑是这场变革中,掷地有声的一步。
如果你对蚂蚁全模态代码算法团队早期提出的代码大模型与代码图研究感兴趣,欢迎进一步阅读:
最全代码大模型综述(TMLR):https://github.com/codefuse-ai/Awesome-Code-LLM
代码图模型早期研究GALLa(ACL 2025):https://github.com/codefuse-ai/GALLa
多任务代码微调框架MFTCoder(KDD 2024):https://github.com/codefuse-ai/MFTCoder
高效注意力架构Rodimus*(ICLR 2024):https://github.com/codefuse-ai/rodimus
