CommitDistill:软件仓库的轻量级知识记忆层
CommitDistill: A Lightweight Knowledge-Centric Memory Layer for Software Repositories
摘要
软件存储库在提交消息、拉取请求讨论和问题线程中积累了大量非结构化知识,但开发人员和人工智能编码助理很少有效地重用这些历史记录。最近关于 LLM 代理(MemGPT、生成代理和 Yang 等人的 PlugMem 模块)的类型化内存架构的工作认为,智能体记忆应该是经过提炼的类型化知识,而不是原始交互文本。我们在约束机制下将这一立场适应软件存储库自己的 git 历史:确定性、无依赖性、仅限本地、无嵌入。我们提出了 CommitDistill,这是一个开源 Python 原型,它使用确定性正则表达式将本地 git 历史记录挖掘为类型化知识单元(事实、技能、模式),并通过 TF-IDF 检索器 呈现它们,该阈值具有校准的静默阈值(theta = 2.5),该阈值禁止分布外查询。该人工制品是一个信任仪表化的内存基底:确定性、无外部服务、可检查的纯 JSON 存储、可调节的弃权。对涵盖 Python、JavaScript、C 和 Java 的 5 个公共存储库(25,000 次提交,1,167 个提取单元)进行的案例研究报告,在 40 个双注释 Python 单元上,Cohen 的 kappa = 0.633 时的有用精度为 0.525。决定性的发现是预算受限的检索:在每个查询 256 个字符的预算下,CommitDistill 在 12 个查询基准上达到 0.750 的命中率,而 BM25 的命中率为 0.333,git log --grep 的命中率为 0.083。在涵盖控制、CommitDistill、身体预算匹配的 CD-Hybrid 和 BM25 的四臂配对 LLM 作为评委评估(n=200 个时间旅行错误修复,两名评委)中,没有任何条件在标题平均值上产生统计上可检测到的控制提升,并且 CD-Hybrid 与 BM25 无法区分。在笔记本电脑上,提取超过 10,000 个提交可在 4 秒内完成。本文附有来源、注释、基线和重现性脚本。