论文

学习提交:通过在线存储库内存生成有机拉取请求

Learning to Commit: Generating Organic Pull Requests via Online Repository Memory

上下文与知识记忆Agent记忆

摘要

基于 大语言模型 (LLM) 的 编码智能体 在受控基准上取得了令人印象深刻的结果,但经常产生实际维护人员拒绝的拉取请求。根本原因不是功能不正确,而是缺乏有机性:生成的代码忽略了特定于项目的约定,重复了内部 API 已经提供的功能,并且违反了多年开发中积累的隐式架构约束。仅仅将代理暴露给最新的存储库快照是不够的:快照揭示了代码库的最终状态,但没有揭示达到该状态的存储库特定的更改模式。我们引入了 Learning to Commit,这是一个通过在线存储库内存弥补这一差距的框架。给定一个严格按时间顺序划分的存储库,代理对早期提交执行有监督的对比反射:它盲目地尝试解决每个历史问题,将其预测与预言机差异进行比较,并将差距提炼为一组不断增长的技能-可重用模式,捕获编码风格、内部 API 使用和架构不变量。当新的 PR 描述到达时,代理会根据这些积累的技能来调节其生成,从而根据项目自身的演变而不是通用的预训练先验来产生变化。评估是针对真正未来的、合并的拉取请求进行的,这些请求在技能构建阶段是不可能看到的,并且跨越多个维度,包括功能正确性、代码风格一致性、内部 API 重用率和修改区域的合理性。在专家维护的具有丰富提交历史的存储库上进行的实验表明,在线存储库内存有效地提高了未来任务的有机性分数。