论文
AOCI:使用 LLM 进行实用存储库规模代码理解的符号语义索引
AOCI: Symbolic-Semantic Indexing for Practical Repository-Scale Code Understanding with LLMs
摘要
大语言模型 很难理解超过一定规模的代码库——具有数十万行代码的存储库。现有的方法——检索、总结、代理探索——每种方法在查询时构建不同的视图。运行之间的视图有所不同,并且持续存在的内容通常是临时的而不是系统的。本文介绍了 AOCI(面向人工智能的代码索引):一种符号语义存储库表示,这是一种结构化蓝图,LLM 可以一次性读取该蓝图,以便在执行任何任务之前获得系统架构、依赖关系和关键设计决策的完整存储库级图片。 AOCI 索引由编码规则和条目组成,每个代码单元(文件或数据库表)有一个条目。每个条目将符号标签与语义内容配对。符号组件提供了建筑坐标;语义成分承载着功能、依赖性和约束。它们共同构成了整个系统的一致、稳定的表示。索引维护是增量的:当代码更改时,只有受影响的条目才会根据协议规则重新生成。 AOCI 平台自动执行此过程,使蓝图与代码保持一致。我们对 3 个 LLM 和 6 个背景条件下的 4 个项目进行了 AOCI 评估(2,160 项评估)。 AOCI 的性能优于所有可部署基线,并且在整体准确度方面排名第二,仅次于 Oracle 上限。在五个系统的 19 项工业任务中,AOCI 产生了零最终状态缺陷,而三种主流的基于代理的工具在 12 项任务中引入了缺陷,并消耗了 4--130$\times$ 的词元 ($p < 0.001$)。优势随着任务的复杂性而增加。