Project Icon

AgileCoder

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

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



License: MIT Python 3.8 arXiv

Dynamic Collaborative Agents for Software Development based on Agile Methodology

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/

demo

💻️ 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.

demo

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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号