AutoDev: Automated AI-Driven Development

📄 arXiv: 2403.08299v1 📥 PDF

作者: Michele Tufano, Anisha Agarwal, Jinu Jang, Roshanak Zilouchian Moghaddam, Neel Sundaresan

分类: cs.SE, cs.AI

发布日期: 2024-03-13


💡 一句话要点

提出AutoDev以解决软件开发自动化不足问题

🎯 匹配领域: 支柱一:机器人控制 (Robot Control)

关键词: 自动化开发 AI助手 软件工程 Docker安全 代码生成 测试生成 自主代理

📋 核心要点

  1. 现有AI助手在软件开发中未能充分利用IDE的潜力,主要局限于代码建议和文件操作。
  2. AutoDev通过自主AI代理实现复杂软件工程任务的自动规划和执行,支持多种操作。
  3. 在HumanEval数据集上,AutoDev在代码生成和测试生成任务中表现出色,分别达到91.5%和87.8%的Pass@1。

📝 摘要(中文)

随着AI助手的出现,软件开发领域发生了范式转变,如GitHub Copilot。然而,现有解决方案未能充分利用IDE中的所有潜力,主要集中在代码片段建议和文件操作上。为此,我们提出了AutoDev,一个完全自动化的AI驱动软件开发框架,旨在自主规划和执行复杂的软件工程任务。用户可以定义复杂的工程目标,由AutoDev的自主AI代理进行实现。这些代理能够在代码库上执行多种操作,包括文件编辑、检索、构建、执行、测试和git操作。AutoDev还通过Docker容器建立安全的开发环境,确保用户隐私和文件安全。在HumanEval数据集上的评估中,AutoDev在代码生成和测试生成任务中分别取得了91.5%和87.8%的Pass@1,展示了其在自动化软件工程任务中的有效性。

🔬 方法详解

问题定义:现有的AI助手在软件开发中功能有限,无法全面支持复杂的开发任务,导致开发效率低下。

核心思路:AutoDev通过自主AI代理实现软件开发的自动化,用户定义目标后,代理能够自主执行多种开发任务,提升开发效率。

技术框架:AutoDev的整体架构包括用户界面、AI代理、任务管理模块和安全环境模块。用户通过界面定义任务,AI代理负责执行,所有操作在Docker容器中进行。

关键创新:AutoDev的最大创新在于其自主AI代理能够全面理解上下文信息,执行复杂的开发任务,而不仅仅是代码建议。

关键设计:AutoDev设计了安全的Docker环境,确保所有操作的安全性,并允许用户定义特定的命令和操作权限。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

在HumanEval数据集上的实验结果显示,AutoDev在代码生成任务中取得了91.5%的Pass@1,测试生成任务中达到87.8%的Pass@1,相较于传统方法有显著提升,展示了其在自动化软件开发中的有效性。

🎯 应用场景

AutoDev可广泛应用于软件开发领域,特别是在需要快速迭代和高效协作的项目中。其自动化能力能够显著提升开发效率,减少人为错误,未来有望在更多开发工具中得到集成和应用。

📄 摘要(原文)

The landscape of software development has witnessed a paradigm shift with the advent of AI-powered assistants, exemplified by GitHub Copilot. However, existing solutions are not leveraging all the potential capabilities available in an IDE such as building, testing, executing code, git operations, etc. Therefore, they are constrained by their limited capabilities, primarily focusing on suggesting code snippets and file manipulation within a chat-based interface. To fill this gap, we present AutoDev, a fully automated AI-driven software development framework, designed for autonomous planning and execution of intricate software engineering tasks. AutoDev enables users to define complex software engineering objectives, which are assigned to AutoDev's autonomous AI Agents to achieve. These AI agents can perform diverse operations on a codebase, including file editing, retrieval, build processes, execution, testing, and git operations. They also have access to files, compiler output, build and testing logs, static analysis tools, and more. This enables the AI Agents to execute tasks in a fully automated manner with a comprehensive understanding of the contextual information required. Furthermore, AutoDev establishes a secure development environment by confining all operations within Docker containers. This framework incorporates guardrails to ensure user privacy and file security, allowing users to define specific permitted or restricted commands and operations within AutoDev. In our evaluation, we tested AutoDev on the HumanEval dataset, obtaining promising results with 91.5% and 87.8% of Pass@1 for code generation and test generation respectively, demonstrating its effectiveness in automating software engineering tasks while maintaining a secure and user-controlled development environment.