学术研究报告:基于LLM的自动化代码库编译框架CompileAgent
本研究由来自University of Science and Technology of China、Qi-Anxin Technology Research Institute和Anhui Province Key Laboratory of Digital Security的团队合作完成,第一作者为Li Hu和Guoqiang Chen(共同一作),通讯作者为Shaoyin Cheng。论文发表于Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (ACL 2025),卷1(长论文),页码2078–2091。
研究领域为软件工程与人工智能交叉领域,聚焦于利用大语言模型(LLM)驱动的智能体(agent)实现代码库级别(repo-level)的自动化编译。随着开源项目规模与复杂度的增长,传统手动编译过程繁琐且易错,而现有自动化工具(如OSS-Fuzz-Gen)仅能处理简单构建场景,无法适应复杂依赖、环境配置等问题。
提出首个基于LLM的编译框架CompileAgent,通过整合多工具和流式策略(flow-based strategy),解决两大核心挑战:
1. 编译指令发现:从代码库的分散文档(如README、安装说明)中精准提取指令;
2. 编译错误解决:通过多代理协作(multi-agent discussion)实时诊断环境依赖、语法错误等问题。
CompileAgent包含两大核心模块:
- CompileNavigator:定位编译指令
- 工具1:Shell工具:基于Docker隔离的交互式环境,执行编译命令;
- 工具2:文件导航器(File Navigator):通过双代理(SearchAgent-I/II)分析代码库结构,识别潜在指令文件;
- 工具3:指令提取器(Instruction Extractor):从文件或网页中提取指令(如调用Google搜索补充缺失信息)。
主控代理(MasterAgent)按固定流程调用工具:
1. 下载代码库至Docker容器;
2. 分析代码结构;
3. 提取并执行编译指令;
4. 若失败,触发ErrorSolver模块;
5. 最终输出编译状态(成功/失败)。
编译成功率提升
策略有效性验证
消融实验
(注:本文未翻译专业术语如LLM、repo-level等,首次出现时标注英文原词。)