摘要
在软件维护中,错误重现对于有效的故障定位和修复至关重要。手动编写重现脚本是一项耗时且对开发者要求很高的任务。因此,错误重现的自动化越来越受到研究人员和实践者的关注。然而,现有的错误重现研究通常局限于特定类型的错误,例如程序崩溃,难以应用于一般的错误重现。本文考虑到基于Agent的方法在代码智能任务中的优越性能,我们专注于设计一个基于Agent的框架来完成这项任务。直接使用Agent会导致错误重现性能有限,因为子任务纠缠、检索上下文冗长以及动作不受规范。为了减轻这些挑战,我们提出了一种名为 AEGIS 的自动化通用错误重现脚本生成框架,这是第一个用于此任务的基于Agent的框架。AEGIS 主要包含两个模块:(1)简洁的上下文构建模块,旨在引导代码Agent从问题描述中提取结构化信息,识别与问题相关的代码并提供详细解释,并将这些元素整合以构建简洁的上下文;(2)基于有限状态机(FSM)的多反馈优化模块,以进一步规范代码Agent在有限状态机(FSM)中的行为,确保基于多维反馈的受控且高效的脚本生成过程。在公共基准数据集上的大量实验表明,AEGIS 在 F->P 指标上比最先进的基线提高了 23.0%。此外,AEGIS 生成的错误重现脚本可以将无Agent方法的相对解决率提高 12.5%。