AgileCoder

AgileCoder

基于敏捷方法论的多智能体软件开发框架

AgileCoder是一个基于敏捷方法论的多智能体软件开发框架。该框架通过动态任务列表和迭代冲刺阶段模拟真实软件开发流程,支持OpenAI、Azure OpenAI和Anthropic等多种模型。AgileCoder能够生成复杂软件项目,在HumanEval、MBPP和ProjectDev等评估中展现了优秀性能。

AgileCoder多智能体框架软件开发敏捷方法论任务导向Github开源项目
<p align="center"> <br> <img src="assets/logo_1.svg" width="500"/> <br> <p> <div align="center"> <!-- <a href="https://opensource.org/license/apache-2-0/"> <img alt="license" src="https://img.shields.io/badge/License-Apache%202.0-green.svg"/> </a> <a href="https://www.python.org/downloads/release/python-380/"> <img alt="python" src="https://img.shields.io/badge/python-3.8+-yellow.svg"/> </a> -->

License: MIT Python 3.8 arXiv

Dynamic Collaborative Agents for Software Development based on Agile Methodology

<!-- [![Code License](https://img.shields.io/badge/Code%20License-Apache_2.0-green.svg)](https://github.com/bdqnghi/CodeTF_personal/blob/main/LICENSE) [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/release/python-390/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) --> </div>

Demo Demo

Table of Contents

📖 Overview

AgileCoder is a novel multi-agent framework for software development that draws inspiration from the widely-used Agile Methodology in professional software engineering. The key innovation lies in its task-oriented approach, where instead of assigning fixed roles to agents, AgileCoder mimics real-world software development by creating a backlog of tasks and dividing the development process into sprints, with the backlog being dynamically updated at each sprint.

Website: https://fsoft-ai4code.github.io/agilecoder/

<div align="center"> <img alt="demo" src="assets/overview.jpg"/> </div>

💻️ Quickstart

AgileCoder can be installed easily through pip:

pip install agilecoder

If you want to clone the repository, be sure to switch to the new-flow branch to access the latest source code.

Configuration

AgileCoder currently supports various models, including OpenAI, Azure OpenAI, Anthropic, and your self-hosted models, which can be hosted by Ollama. For instance, to configure the necessary environment variables for the Azure OpenAI service, please set the following:

  • API_KEY: Your Azure OpenAI API key.
  • RESOURCE_ENDPOINT: The endpoint URL for your Azure OpenAI resource.
  • API_TYPE: The type of Azure OpenAI API you are using (e.g., "azure").
  • API_VERSION: The version of the Azure OpenAI API you are using (e.g., "2022-12-01").
  • API_ENGINE: The name of the Azure OpenAI engine you want to use (e.g., "text-davinci-002").

You can set these environment variables either in your system settings or by creating a .env file in the project root directory with the following format:

API_KEY=your_api_key RESOURCE_ENDPOINT=your_resource_endpoint API_TYPE=azure API_VERSION=your_api_version API_ENGINE=your_api_engine

For other models, please refer to setup_model.md

Sample Usage

To generate software using AgileCoder, use the following command:

agilecoder --task "<your software requirements>"

Replace <your software requirements> with a description of the software you want AgileCoder to create.

For example, to generate a Caro game in Python, run:

agilecoder --task "Create a Caro game in Python"

AgileCoder will process your requirements and generate the corresponding software based on the provided task description. You can specify additional options and flags to customize the behavior of AgileCoder. For more information on the available options, run: agilecoder --help

This will display the help message with a list of supported options and their descriptions. Feel free to explore different software requirements and experiment with AgileCoder to generate various types of software projects tailored to your needs.

Demo Web UI

Demo

Watch the video

Evaluation

We will evaluate the performance of AgileCoder on two types of datasets to assess its effectiveness in generating code for different scenarios:

  • Competitive Programming: HumanEval and MBPP
  • Complex Software Requirements: We curate a new dataset called ProjectDev, which contains complex software requirements for generating complete software projects. This dataset will be designed to evaluate AgileCoder's ability to handle more intricate and real-world software development scenarios.

Results

CategoryModelHumanEvalMBPP
LLMs (prompting)
CodeGeeX-13B18.926.9
PaLM Coder-540B43.932.3
DeepSeeker-33B-Inst79.370.0
GPT-3.5 Turbo60.352.2
Claude 3 Haiku75.980.4
GPT 480.180.1
LLMs-based Agents
with GPT-3.5 TurboChatDev61.7974.80
MetaGPT62.8074.73
AgileCoder70.5380.92
with Claude 3 HaikuChatDev76.8370.96
AgileCoder79.2784.31
with GPT 4MetaGPT85.987.7
AgileCoder90.85-

For ProjectDev, we evaluate the practical application of software projects generated by AgileCoder, ChatDev, and MetaGPT. The evaluation will involve human assessment to compare their performance with 3 criterias:

  • Human evaluators will assess the executability of the generated software projects against the expected requirements specified in the ProjectDev dataset.
  • For each generated software project, the evaluators will determine whether it is executable and meets the specified requirements.
  • The success rate will be calculated as the percentage of requirements met by the executable software projects (e.g., if a generated program is executable and meets 4 out of 10 requirements, its executability rate is 40%).
MetricChatDevMetaGPTAgileCoder
Executability32.797.7357.79
Entire Running Time (s)12048444
Avg. Time/Sprint (s)--306
#Sprints--1.64
Token Usage7440302936818
Expenses (USD)0.120.020.44
#Errors6320

Apps Gallery

AgileCoder can generate a wide range of software with high accuracy; a gallery of executable software will be available soon.

<div align="center"> <img alt="demo" src="assets/demo_image.png"/> </div>

More details can be found in screenshots

Citing AgileCoder

More details can be found in our paper.

If you're using AgileCoder in your research or applications, please cite using this BibTeX:

@article{nguyen2024agilecoder, title={AgileCoder: Dynamic Collaborative Agents for Software Development based on Agile Methodology}, author={Nguyen, Minh Huynh and Chau, Thang Phan and Nguyen, Phong X and Bui, Nghi DQ}, journal={arXiv preprint arXiv:2406.11912}, year={2024} }

Contact us

If you have any questions, comments or suggestions, please do not hesitate to contact us.

License

MIT License

Star History

Star History Chart

编辑推荐精选

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

下拉加载更多