“AutoDev: Automated AI-Driven Development” 提出了一种名为 AutoDev 的全自动 AI 驱动软件开发框架,旨在解决现有 AI 编码助手在集成开发环境(IDE)中功能有限的问题。以下是对该论文的详细总结:
1. 研究背景与动机
AI 编码助手的现状与局限:随着 AI 技术在软件开发中的应用,如 GitHub Copilot 等工具已集成到 IDE 中,但它们功能有限,主要集中在代码片段建议和文件操作,缺乏对上下文的理解,无法充分利用 IDE 的全部功能,如调用编译器、执行命令行操作等,开发者仍需手动进行许多操作,如代码验证、执行和错误检查。
AutoDev 的目标:填补现有解决方案的空白,实现复杂软件工程任务的自动化规划和执行,使 AI 代理能够在代码库上执行多种操作,包括文件编辑、检索、构建、执行、测试和 git 操作等,并在安全的环境中运行。
2. AutoDev 框架设计
规则、动作和目标配置:用户通过 yaml 文件配置规则和动作,定义 AI 代理可执行的命令,可根据需求启用或禁用特定命令来定制 AutoDev。同时指定要完成的软件工程任务,如生成测试用例并确保其语法正确、通过测试且无错误。
对话管理器(Conversation Manager)
解析器(Parser):解释代理生成的响应,提取命令和参数,确保格式正确。若解析失败则阻止进一步操作,成功解析后会根据用户定义的权限和语义检查命令,若通过则调用工具库中的相应动作。
输出组织者(Output Organizer):处理评估环境返回的输出,选择关键信息(如状态或错误)并添加到对话历史中,确保用户能清晰了解 AutoDev 的操作和结果。
对话结束判断:当代理发出任务完成信号、达