• Stars
    star
    20,167
  • Rank 1,182 (Top 0.03 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created 9 months ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create Customized Software using Natural Language Idea (through LLM-powered Multi-Agent Collaboration)

Communicative Agents for Software Development

【English | Chinese | Japanese | Korean | Filipino | French | Slovak | Portuguese | Spanish | Dutch | Hindi

【📚 Wiki | 🚀 Local Demo | 👥 Community Built Software | 🔧 Customization

📖 Overview

  • ChatDev stands as a virtual software company that operates through various intelligent agents holding different roles, including Chief Executive Officer , Chief Product Officer , Chief Technology Officer , programmer , reviewer , tester , art designer . These agents form a multi-agent organizational structure and are united by a mission to "revolutionize the digital world through programming." The agents within ChatDev collaborate by participating in specialized functional seminars, including tasks such as designing, coding, testing, and documenting.
  • The primary objective of ChatDev is to offer an easy-to-use, highly customizable and extendable framework, which is based on large language models (LLMs) and serves as an ideal scenario for studying collective intelligence.

🎉 News

  • November 2nd, 2023: ChatDev is now supported with incremental development. Try --config "incremental" --path "Your folder path" to start it. This mode will start with code review phase base on the existing codes.

  • October 26th, 2023: ChatDev is now supported with Docker for safe execution (thanks to contribution from ManindraDeMel). Please see Docker Start Guide.

  • September 25th, 2023: The Git mode is now available, enabling the programmer to utilize Git for version control. To enable this feature, simply set "git_management" to "True" in ChatChainConfig.json. See guide.

  • September 20th, 2023: The Human-Agent-Interaction mode is now available! You can get involved with the ChatDev team by playing the role of reviewer and making suggestions to the programmer ; try python3 run.py --task [description_of_your_idea] --config "Human". See guide and example.

  • September 1st, 2023: The Art mode is available now! You can activate the designer agent to generate images used in the software; try python3 run.py --task [description_of_your_idea] --config "Art". See guide and example.

  • August 28th, 2023: The system is publicly available.

  • August 17th, 2023: The v1.0.0 version was ready for release.

  • July 30th, 2023: Users can customize ChatChain, Phase, and Role settings. Additionally, both online Log mode and replay mode are now supported.

  • July 16th, 2023: The preprint paper associated with this project was published.

  • June 30th, 2023: The initial version of the ChatDev repository was released.

❓ What Can ChatDev Do?

intro

demo.mp4

⚡️ Quickstart

🖥️ Quickstart with terminal

To get started, follow these steps:

  1. Clone the GitHub Repository: Begin by cloning the repository using the command:
    git clone https://github.com/OpenBMB/ChatDev.git
    
  2. Set Up Python Environment: Ensure you have a version 3.9 or higher Python environment. You can create and activate this environment using the following commands, replacing ChatDev_conda_env with your preferred environment name:
    conda create -n ChatDev_conda_env python=3.9 -y
    conda activate ChatDev_conda_env
    
  3. Install Dependencies: Move into the ChatDev directory and install the necessary dependencies by running:
    cd ChatDev
    pip3 install -r requirements.txt
    
  4. Set OpenAI API Key: Export your OpenAI API key as an environment variable. Replace "your_OpenAI_API_key" with your actual API key. Remember that this environment variable is session-specific, so you need to set it again if you open a new terminal session. On Unix/Linux:
    export OPENAI_API_KEY="your_OpenAI_API_key"
    
    On Windows:
    $env:OPENAI_API_KEY="your_OpenAI_API_key"
    
  5. Build Your Software: Use the following command to initiate the building of your software, replacing [description_of_your_idea] with your idea's description and [project_name] with your desired project name: On Unix/Linux:
    python3 run.py --task "[description_of_your_idea]" --name "[project_name]"
    
    On Windows:
    python run.py --task "[description_of_your_idea]" --name "[project_name]"
    
  6. Run Your Software: Once generated, you can find your software in the WareHouse directory under a specific project folder, such as project_name_DefaultOrganization_timestamp. Run your software using the following command within that directory: On Unix/Linux:
    cd WareHouse/project_name_DefaultOrganization_timestamp
    python3 main.py
    
    On Windows:
    cd WareHouse/project_name_DefaultOrganization_timestamp
    python main.py
    

🐳 Quickstart with Docker

✨️ Advanced Skills

For more detailed information, please refer to our Wiki, where you can find:

  • An introduction to all command run parameters.
  • A straightforward guide for setting up a local web demo, which includes enhanced visualized logs, a replay demo, and a simple ChatChain Visualizer.
  • An overview of the ChatDev framework.
  • A comprehensive introduction to all advanced parameters in ChatChain configuration.
  • Guides for customizing ChatDev, including:
    • ChatChain: Design your own software development process (or any other process), such as DemandAnalysis -> Coding -> Testing -> Manual.
    • Phase: Design your own phase within ChatChain, like DemandAnalysis.
    • Role: Defining the various agents in your company, such as the Chief Executive Officer.

🤗 Share Your Software!

Code: We are enthusiastic about your interest in participating in our open-source project. If you come across any problems, don't hesitate to report them. Feel free to create a pull request if you have any inquiries or if you are prepared to share your work with us! Your contributions are highly valued. Please let me know if there's anything else you need assistance!

Company: Creating your own customized "ChatDev Company" is a breeze. This personalized setup involves three simple configuration JSON files. Check out the example provided in the CompanyConfig/Default directory. For detailed instructions on customization, refer to our Wiki.

Software: Whenever you develop software using ChatDev, a corresponding folder is generated containing all the essential information. Sharing your work with us is as simple as making a pull request. Here's an example: execute the command python3 run.py --task "design a 2048 game" --name "2048" --org "THUNLP" --config "Default". This will create a software package and generate a folder named /WareHouse/2048_THUNLP_timestamp. Inside, you'll find:

  • All the files and documents related to the 2048 game software
  • Configuration files of the company responsible for this software, including the three JSON config files from CompanyConfig/Default
  • A comprehensive log detailing the software's building process that can be used to replay (timestamp.log)
  • The initial prompt used to create this software (2048.prompt)

See community contributed software here!

👨‍💻‍ Contributors

Made with contrib.rocks.

🔎 Citation

@misc{qian2023communicative,
      title={Communicative Agents for Software Development}, 
      author={Chen Qian and Xin Cong and Wei Liu and Cheng Yang and Weize Chen and Yusheng Su and Yufan Dang and Jiahao Li and Juyuan Xu and Dahai Li and Zhiyuan Liu and Maosong Sun},
      year={2023},
      eprint={2307.07924},
      archivePrefix={arXiv},
      primaryClass={cs.SE}
}

⚖️ License

  • Source Code Licensing: Our project's source code is licensed under the Apache 2.0 License. This license permits the use, modification, and distribution of the code, subject to certain conditions outlined in the Apache 2.0 License.
  • Project Open-Source Status: The project is indeed open-source; however, this designation is primarily intended for non-commercial purposes. While we encourage collaboration and contributions from the community for research and non-commercial applications, it is important to note that any utilization of the project's components for commercial purposes necessitates separate licensing agreements.
  • Data Licensing: The related data utilized in our project is licensed under CC BY-NC 4.0. This license explicitly permits non-commercial use of the data. We would like to emphasize that any models trained using these datasets should strictly adhere to the non-commercial usage restriction and should be employed exclusively for research purposes.

🌟 Star History

Star History Chart

🤝 Acknowledgments

        

📬 Contact

If you have any questions, feedback, or would like to get in touch, please feel free to reach out to us via email at [email protected]

More Repositories

1

XAgent

An Autonomous LLM Agent for Complex Task Solving
Python
7,497
star
2

ToolBench

[ICLR'24 spotlight] An open platform for training, serving, and evaluating large language model for tool learning.
Python
4,413
star
3

MiniCPM

MiniCPM-2B: An end-side LLM outperforms Llama2-13B.
Jupyter Notebook
3,712
star
4

AgentVerse

🤖 AgentVerse 🪐 is designed to facilitate the deployment of multiple LLM-based agents in various applications, which primarily provides two frameworks: task-solving and simulation
JavaScript
3,620
star
5

BMTools

Tool Learning for Big Models, Open-Source Solutions of ChatGPT-Plugins
Python
2,838
star
6

CPM-Bee

百亿参数的中英文双语基座大模型
Python
2,658
star
7

VisCPM

[ICLR'24 spotlight] Chinese and English Multimodal Large Model Series (Chat and Paint) | 基于CPM基础模型的中英双语多模态大模型系列
Python
976
star
8

ProAgent

An LLM-based Agent for the New Automation Paradigm - Agentic Process Automation
Python
631
star
9

BMInf

Efficient Inference for Big Models
Python
565
star
10

CPM-Live

Live Training for Open-source Big Models
Python
510
star
11

BMTrain

Efficient Training (including pre-training and fine-tuning) for Big Models
Python
507
star
12

OmniLMM

Large Multi-modal Models for Strong Performance and Efficient Deployment
Python
371
star
13

BMList

A List of Big Models
Python
339
star
14

UltraFeedback

A large-scale, fine-grained, diverse preference dataset (and models).
Python
247
star
15

BMPrinciples

A collection of phenomenons observed during the scaling of big foundation models, which may be developed into consensus, principles, or laws in the future
222
star
16

ModelCenter

Efficient, Low-Resource, Distributed transformer implementation based on BMTrain
Python
212
star
17

UltraEval

An open source framework for evaluating foundation models.
Python
152
star
18

RepoAgent

An LLM-powered repository agent designed to assist developers and teams in generating documentation and understanding repositories quickly.
Python
148
star
19

InfiniteBench

100k+ Long-Context Benchmark for Large Language Models (paper upcoming)
Python
105
star
20

DecT

Source code for ACL 2023 paper Decoder Tuning: Efficient Language Understanding as Decoding
Python
42
star
21

OlympiadBench

An Olympiad-level bilingual multimodal scientific benchmark, featuring 8,952 questions from Olympiad-level mathematics and physics competitions, including the Chinese college entrance exam.
Python
41
star
22

XAgent-doc

Document for XAgent.
19
star
23

BMInf-demos

BMInf demos.
JavaScript
14
star
24

UltraLink

An Open-Source Knowledge-Enhanced Multilingual Supervised Fine-tuning Dataset
Python
11
star
25

General-Model-License

6
star