代码智能体学会读提交历史:SWE-Bench Verified 平均解出率从69.2%升到72.9%
核心概要
代码智能体解决仓库级问题时,通常只看当前源码,历史合并请求里记录的设计决策和兼容约束被丢在一边。Chronos 把每个合并请求蒸馏成结构化经验卡,再用代码、开发者意图和组织三类关系连成带类型的图,检索时从语义入口出发做加权多跳扩展。在 SWE-Bench Verified 上,完整流程让 SWE-Agent 在六个模型骨干上全部提升,平均解出率从69.2%升到72.9%,最强配置达到79.8%。
深度剖析
代码智能体在动手改代码之前,可以先检索同一仓库里相关的历史合并请求,而不只是读当前源码树。 此前的经验检索按查询与记录的相似度排序,只把最像当前任务的那条历史排到前面。 在 SWE-Bench Verified 上,完整流程对六个被评测的模型骨干全部有提升,平均解出率从69.2%升到72.9%,其中 MiniMax M2.5 达到79.8%。
历史经验被组织成两层:一层是给人读的经验卡,一层是给检索走的图。 经验卡由 Qwen3.5-Plus 从合并请求的标题、正文、讨论和补丁中蒸馏而来,固定为摘要、信号、动机、方案四个字段。 卡片之间按十一类关系连成有向多重图,分代码演化、开发者意图、组织社交三层,遍历权重从1.0–1.5递减到0.3–0.45。
检索先做语义入口,再沿关系扩展,最后把候选交给智能体选择性阅读。 语义检索只返回与查询最接近的若干条,扩展则把通过文件重叠、显式引用、后续开发等关系连到的历史也纳入候选。 在100个 SWE-Bench Verified 任务、每题取十张卡的人工评测中,图扩展把平均有用卡数从1.24提高到2.87,至少有一张有用卡的任务比例从68%升到89%。
启示与展望
评测覆盖 SWE-Bench Verified 的六个模型骨干,以及 SWE-Bench Pro 和 FEA-Bench Lite 上的 MiniMax M2.5;历史检索按任务实例限定仓库,并以该任务合并请求的时间戳为截止。检索服务与智能体工具接口分离,已接入 SWE-Agent 和 mini-SWE-Agent 两种脚手架。人工评测为研究团队内部两名有软件工程经验的标注者完成,共100个任务、每题十张卡。
关系权重是人工设定的先验,在全部评测设置中保持不变,对权重数值的敏感性尚未测量。人工评测衡量的是任务条件下的有用性,而非卡片对原始合并请求的事实准确性,且标注者来自同一研究团队。重复运行的统计只描述 MiniMax M2.5 的完整配置,基线和其他配置均为单次运行。
