  Software engineering is a domain characterized by intricate decision-making
processes, often relying on nuanced intuition and consultation. Recent
advancements in deep learning have started to revolutionize software
engineering practices through elaborate designs implemented at various stages
of software development. In this paper, we present an innovative paradigm that
leverages large language models (LLMs) throughout the entire software
development process, streamlining and unifying key processes through natural
language communication, thereby eliminating the need for specialized models at
each phase. At the core of this paradigm lies ChatDev, a virtual chat-powered
software development company that mirrors the established waterfall model,
meticulously dividing the development process into four distinct chronological
stages: designing, coding, testing, and documenting. Each stage engages a team
of "software agents", such as programmers, code reviewers, and test engineers,
fostering collaborative dialogue and facilitating a seamless workflow. The chat
chain acts as a facilitator, breaking down each stage into atomic subtasks.
This enables dual roles, allowing for proposing and validating solutions
through context-aware communication, leading to efficient resolution of
specific subtasks. The instrumental analysis of ChatDev highlights its
remarkable efficacy in software generation, enabling the completion of the
entire software development process in under seven minutes at a cost of less
than one dollar. It not only identifies and alleviates potential
vulnerabilities but also rectifies potential hallucinations while maintaining
commendable efficiency and cost-effectiveness. The potential of ChatDev unveils
fresh possibilities for integrating LLMs into the realm of software
development. Our code is available at https://github.com/OpenBMB/ChatDev.
