γEnglish | Chinese | Japanese | Korean | Filipino | French | Slovak | Portuguese | Spanish | Dutch | Turkish | Hindi | Bahasa Indonesia | Russian | Urduγ
γπ Wiki | π Visualizer | π₯ Community Built Software | π§ Customization | πΎ Discordγ
ChatDev now features an interactive chat interface and uses Google AI Studio (Gemini models)!
- π£οΈ Natural Conversation: Discuss your project ideas with an AI agent before development
- π€ Smart Requirement Gathering: AI asks clarifying questions to understand your needs
- π Automatic Task Generation: Converts conversations into detailed development prompts
- π Seamless Handoff: Smooth transition from chat to development process
- π― User-Friendly: Just run
python run.py --chatorpython run.pyto start chatting!
- π Migrated from OpenAI to Google AI Studio API
- π€ Powered by Gemini 1.5 Flash and Gemini 1.5 Pro models
- π° More cost-effective with Google's competitive pricing
- π§ Smart fallback to local sentence-transformers when Google AI is unavailable
- π» Works offline with lightweight local embedding model (~90MB)
- π Set your
GOOGLE_API_KEYenvironment variable to get started
See MIGRATION_GUIDE.md for detailed migration information.
- 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 and understanding collective intelligence.
β’June 25, 2024: πTo foster development in LLM-powered multi-agent collaborationπ€π€ and related fields, the ChatDev team has curated a collection of seminal papersπ presented in a open-source interactive e-bookπ format. Now you can explore the latest advancements on the Ebook Website and download the paper list.
β’June 12, 2024: We introduced Multi-Agent Collaboration Networks (MacNet) π, which utilize directed acyclic graphs to facilitate effective task-oriented collaboration among agents through linguistic interactions π€π€. MacNet supports co-operation across various topologies and among more than a thousand agents without exceeding context limits. More versatile and scalable, MacNet can be considered as a more advanced version of ChatDev's chain-shaped topology. Our preprint paper is available at https://arxiv.org/abs/2406.07155. This technique has been incorporated into the macnet branch, enhancing support for diverse organizational structures and offering richer solutions beyond software development (e.g., logical reasoning, data analysis, story generation, and more).
Old News
β’ May 07, 2024, we introduced "Iterative Experience Refinement" (IER), a novel method where instructor and assistant agents enhance shortcut-oriented experiences to efficiently adapt to new tasks. This approach encompasses experience acquisition, utilization, propagation and elimination across a series of tasks and making the pricess shorter and efficient. Our preprint paper is available at https://arxiv.org/abs/2405.04219, and this technique will soon be incorporated into ChatDev.
β’ January 25, 2024: We have integrated Experiential Co-Learning Module into ChatDev. Please see the Experiential Co-Learning Guide.
β’ December 28, 2023: We present Experiential Co-Learning, an innovative approach where instructor and assistant agents accumulate shortcut-oriented experiences to effectively solve new tasks, reducing repetitive errors and enhancing efficiency. Check out our preprint paper at https://arxiv.org/abs/2312.17025 and this technique will soon be integrated into ChatDev.
β’ November 15, 2023: We launched ChatDev as a SaaS platform that enables software developers and innovative entrepreneurs to build software efficiently at a very low cost and remove the barrier to entry. Try it out at https://chatdev.modelbest.cn/.β’ November 2, 2023: ChatDev is now supported with a new feature: incremental development, which allows agents to develop upon existing codes. Try --config "incremental" --path "[source_code_directory_path]" to start it.
β’ October 26, 2023: ChatDev is now supported with Docker for safe execution (thanks to contribution from ManindraDeMel). Please see Docker Start Guide.
β’ September 25, 2023: The **Git** mode is now available, enabling the programmerdemo.mp4
Access the web page for visualization and configuration use: https://chatdev.modelbest.cn/
To get started, follow these steps:
-
Clone the GitHub Repository: Begin by cloning the repository using the command:
git clone https://github.com/OpenBMB/ChatDev.git -
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_envwith your preferred environment name:conda create -n ChatDev_conda_env python=3.9 -y conda activate ChatDev_conda_env -
Install Dependencies: Move into the
ChatDevdirectory and install the necessary dependencies by running:cd ChatDev pip3 install -r requirements.txt -
Set Google AI Studio API Key: Export your Google AI Studio API key as an environment variable. Replace
"your_Google_API_key"with your actual API key from Google AI Studio. 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 GOOGLE_API_KEY="your_Google_API_key"On Windows:
$env:GOOGLE_API_KEY="your_Google_API_key"Note: For backward compatibility, you can still use
OPENAI_API_KEYwhich will be treated asGOOGLE_API_KEY. -
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]" --model GEMINI_1_5_FLASHOn Windows:
python run.py --task "[description_of_your_idea]" --name "[project_name]" --model GEMINI_1_5_FLASHAvailable Models:
GEMINI_1_5_FLASH: Fast and cost-effective (recommended for most tasks)GEMINI_1_5_PRO: High-performance model for complex tasksGEMINI_1_0_PRO: Standard modelGEMINI_PRO: Alias for GEMINI_1_0_PROGEMINI_PRO_VISION: Vision-capable model
π¬ NEW: Interactive Chat Mode (Recommended for Beginners): Instead of specifying the task directly, you can start an interactive conversation:
python3 run.py --chatOr simply:
python3 run.pyThis will start a friendly chat interface where you can:
- Discuss your project ideas naturally
- Get help refining requirements
- Ask questions and get clarifications
- Say "start" when ready to begin development
Example Chat Session:
π€ Hi! I'm here to help you plan your software project. π€ You: I want to build a simple calculator web app π€ Great! What operations should it support? π€ You: Basic math operations with a clean interface π€ Should it handle decimals and error cases? π€ You: Yes, let's start development β Starting development of: Calculator_Web_App -
Run Your Software: Once generated, you can find your software in the
WareHousedirectory under a specific project folder, such asproject_name_DefaultOrganization_timestamp. Run your software using the following command within that directory: On Unix/Linux:cd WareHouse/project_name_DefaultOrganization_timestamp python3 main.pyOn Windows:
cd WareHouse/project_name_DefaultOrganization_timestamp python main.py
- We thank ManindraDeMel for providing Docker support. Please see Docker Start Guide.
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 visualizer demo, which can visualize real-time logs, replayed logs, and ChatChain.
- 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.
- ChatChain: Design your own software development process (or any other process), such
as
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!
Made with contrib.rocks.
@article{chatdev,
title = {ChatDev: Communicative Agents for Software Development},
author = {Chen Qian and Wei Liu and Hongzhang Liu and Nuo Chen and Yufan Dang and Jiahao Li and Cheng Yang and Weize Chen and Yusheng Su and Xin Cong and Juyuan Xu and Dahai Li and Zhiyuan Liu and Maosong Sun},
journal = {arXiv preprint arXiv:2307.07924},
url = {https://arxiv.org/abs/2307.07924},
year = {2023}
}
@article{colearning,
title = {Experiential Co-Learning of Software-Developing Agents},
author = {Chen Qian and Yufan Dang and Jiahao Li and Wei Liu and Zihao Xie and Yifei Wang and Weize Chen and Cheng Yang and Xin Cong and Xiaoyin Che and Zhiyuan Liu and Maosong Sun},
journal = {arXiv preprint arXiv:2312.17025},
url = {https://arxiv.org/abs/2312.17025},
year = {2023}
}
@article{macnet,
title={Scaling Large-Language-Model-based Multi-Agent Collaboration},
author={Chen Qian and Zihao Xie and Yifei Wang and Wei Liu and Yufan Dang and Zhuoyun Du and Weize Chen and Cheng Yang and Zhiyuan Liu and Maosong Sun}
journal={arXiv preprint arXiv:2406.07155},
url = {https://arxiv.org/abs/2406.07155},
year={2024}
}
@article{iagents,
title={Autonomous Agents for Collaborative Task under Information Asymmetry},
author={Wei Liu and Chenxi Wang and Yifei Wang and Zihao Xie and Rennai Qiu and Yufan Dnag and Zhuoyun Du and Weize Chen and Cheng Yang and Chen Qian},
journal={arXiv preprint arXiv:2406.14928},
url = {https://arxiv.org/abs/2406.14928},
year={2024}
}
More research from our lab can be accessed here.
- 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.
- 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.
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]
















