标题:AI助力大型代码库管理,开发者福音 | 阿里巴巴、新加坡国立大学、西安交大
AI在代码生成和补全方面展现出巨大潜力,但处理大规模、多文件代码库时,大语言模型(LLMs)面临挑战。为解决此问题,研究人员开发了CodexGraph,一个结合代码图数据库与语言模型的系统,旨在提高通用性和泛化能力。
研究方法
- 构建代码图数据库:利用静态分析技术,依据预定义的Schema,将代码库中的元素(如模块、类、函数)及其关系映射到图数据库中。
- 代码结构感知查询:运用灵活的图形查询语言和图数据库结构特性,实现复杂查询和深度检索。
- “Write then translate”策略:主语言模型(LM)分析问题,生成自然语言查询;专门的翻译LM将查询转换为格式化的图形查询语言。
- 迭代式管道:LM根据用户问题和现有信息,逐步优化查询和检索结果。
实验与应用
CodexGraph在多个基准测试(如CrossCodeEval、EvoCodeBench、SWE-bench)上表现出色,覆盖了跨文件代码补全、代码生成和自动化GitHub问题解决等任务。实验结果证实了代码图数据库作为语言模型与代码库接口的有效性。
研究发现,处理不同难度推理任务时,查询策略有所不同。在CrossCodeEval中,多重查询策略更优;而在SWE-bench中,单个查询策略效果更好。移除Cypher LM代理会增加主LM代理的推理负担,影响性能。
基于ModelScope-Agent框架,CodexGraph在多个场景下展现出实际应用价值,包括代码聊天助手、代码调试工具、单元测试生成器、代码生成器和代码注释工具。这些应用展示了CodexGraph在生产环境中的高效性和质量提升能力。
总结
CodexGraph通过代码图数据库为语言模型与代码库提供了一种新交互方式,显著提升了复杂代码库理解能力与整体代码检索导航的准确性。这一解决方案为自动化软件工程领域带来革新,尤其在应对检索辅助代码生成(RACG)挑战时展现出广泛潜力与实际价值。未来,CodexGraph有望支持更多编程语言,并进一步优化工作流程与索引构建效率。
代码链接:https://github.com/modelscope/modelscope-agent/tree/master/apps/codexgraph_agent
arXiv链接:https://arxiv.org/pdf/2408.03910
-
2025-10-26 21:29:49 -
2025-10-26 21:28:42 -
2025-10-26 20:27:28