论文

ProjAgent:用于存储库级代码生成的程序相似性检索

ProjAgent: Procedural Similarity Retrieval for Repository-Level Code Generation

摘要

存储库级代码生成需要实现目标函数,同时考虑复杂的跨文件依赖性和特定于项目的约定。现有的检索方法主要依赖于词汇、结构或语义相似性,经常忽略尽管标识符或应用程序域不同但实现相似过程逻辑的存储库功能。我们提出了 ProjAgent,这是一个存储库级代码生成系统,它将程序相似性作为显式检索信号引入。 ProjAgent 将目标函数分解为中间推理步骤,并采用代理工作流程来检索在每个步骤中表现出类似过程行为的存储库函数。检索到的过程上下文与传统语义检索相集成,为代码生成构建更丰富的存储库上下文。 ProjAgent 进一步合并了保守的静态分析反馈循环,该循环使用编译器和静态分析反馈迭代修复生成的代码。在 REPOCOD 上进行评估,ProjAgent 达到了 41.14% Pass@1,优于现有的基于检索的基线。这些结果表明,程序相似性是存储库级代码生成的有效且先前未探索的检索维度。