AB
AiBoss
project

AutoDev - Microsoft's AI programming and application development intelligent agent framework

AutoDev is an AI programming and application development intelligent agent framework developed by Microsoft researchers. It is specifically designed for autonomously planning and executing complex software engineering tasks, such as code writing, debugging, testing, and version control. Au...

What is AutoDev?

AutoDev is an AI programming tool developed by Microsoft researchers. It is specifically designed to autonomously plan and execute complex software engineering tasks, such as coding, debugging, testing, and version control. AutoDev aims to improve the efficiency and quality of software development while reducing the burden on developers for certain repetitive or tedious tasks.

AutoDev's main functions

  • Goal definition and task allocationUsers can define complex software engineering goals, and AutoDev assigns these goals to autonomous AI agents to achieve. These include, but are not limited to, tasks such as code writing, testing, building, and deployment.
  • Code generationAutoDev can generate code based on user needs, which may include the implementation of new features, improvements or optimizations to existing code, etc.
  • Test generation and executionAutoDev can create test cases and execute these tests to verify the correctness of the code. It can analyze the test results and adjust the code to fix errors if necessary.
  • Code maintenance and debuggingAutoDev can review and maintain existing code, including identifying and fixing potential bugs, optimizing code performance, and updating code to meet new requirements.
  • Version controlAutoDev supports Git operations, which can help manage code versions, including commit, push, and merge operations.
  • Document editing and managementAutoDev can perform file editing tasks, such as adding, modifying, or deleting file contents in the codebase.
  • Retrieval and Information ExtractionAutoDev can retrieve information from code repositories to help complete tasks such as code reuse, pattern recognition, and knowledge extraction.
  • Build and ExecuteAutoDev can compile, build, and execute code libraries, ensuring code runnability and performance.
  • Multi-agent collaborationAutoDev's architecture supports multiple agents working collaboratively, each with a specific role and responsibility, to jointly complete complex software engineering tasks.
  • Dialogue ManagementAutoDev interacts with users through a conversation manager, manages conversation history, and ensures effective communication between users and the AI agent.
  • Security and privacy protectionAutoDev executes tasks in a Docker environment, ensuring the security and privacy of operations and preventing potential security risks.
  • Self-assessment and iterationAutoDev can self-evaluate the code and tests it generates, and continuously improve and optimize task execution through an iterative process.

AutoDev's architecture

AutoDev consists of four main functional modules. Its technical architecture is designed to automate complex software engineering tasks while maintaining efficiency, security, and controllability. This architecture allows AutoDev to autonomously complete tasks without human intervention, while also providing flexibility that allows users to customize AutoDev's behavior to their specific needs.

  1. Conversation Manager:
    • Responsible for initializing and managing session history.
    • Maintain the operational results from the AI agent and the evaluation environment.
    • It includes a parser, an output organizer, and a session terminater, which are used to interpret agent responses, organize output information, and determine when to end the session.
  2. Tools Library:
    • It provides a series of commands that enable AI agents to perform operations on the codebase.
    • Commands include categories such as file editing, retrieval, building and execution, testing and verification, Git operations, and communication.
  3. Agents Scheduler:
    • Responsible for coordinating AI agents to achieve user-defined goals.
    • Use a round-robin, token-based, or priority-based algorithm to determine the order and manner in which agents participate in the conversation.
  4. Evaluate the Environment:
    • Run within a Docker container to securely execute file editing, retrieval, building, execution, and testing commands.
    • It provides a simplified interface for AI agents, abstracting away the complexity of underlying commands.
  5. AI agents:
    • It consists of a large language model (such as OpenAI GPT-4) and a small language model optimized for code generation.
    • Receive the target and dialogue history, and configure the specified actions according to rules and actions.
  6. Rules, actions, and goal configuration:
    • Users initiate the process by configuring rules and operations through YAML files.
    • It defines the commands (operations) that the AI agent can execute and the specific commands that users can enable/disable.