主页

索引

模块索引

搜索页面

ChatDev: Communicative Agents for Software Development

  • https://arxiv.org/abs/2307.07924

  • 组织:清华大学、悉尼大学、北京邮电、ModelBest Inc

  • 软件开发是一项复杂的任务,需要具有不同技能的多个成员之间的合作。许多研究使用深度学习来改进瀑布模型中的特定阶段,例如设计、编码和测试。然而,每个阶段的深度学习模型都需要独特的设计,导致各个阶段的技术不一致,从而导致开发过程碎片化且效率低下。在本文中,我们介绍了 ChatDev,这是一个聊天驱动的软件开发框架,在该框架中,由 LLM 驱动的指定Agent会被指导交流什么(通过聊天链)以及如何交流(通过交流幻觉消除)。这些代理通过基于语言的统一通信积极为设计、编码和测试阶段做出贡献,并从他们的多轮对话中得出解决方案。我们发现他们对自然语言的利用有利于系统设计,并且用编程语言进行交流被证明有助于调试。该范式展示了语言交流如何促进多智能体协作,将语言确立为 LLM 智能体之间自主任务解决的统一桥梁。

  • Software development is a complex task that necessitates cooperation among multiple members with diverse skills. Numerous studies used deep learning to improve specific phases in a waterfall model, such as design, coding, and testing. However, the deep learning model in each phase requires unique designs, leading to technical inconsistencies across various phases, which results in a fragmented and ineffective development process. In this paper, we introduce ChatDev, a chat-powered software development framework in which specialized agents driven by large language models (LLMs) are guided in what to communicate (via chat chain) and how to communicate (via communicative dehallucination). These agents actively contribute to the design, coding, and testing phases through unified language-based communication, with solutions derived from their multi-turn dialogues. We found their utilization of natural language is advantageous for system design, and communicating in programming language proves helpful in debugging. This paradigm demonstrates how linguistic communication facilitates multi-agent collaboration, establishing language as a unifying bridge for autonomous task-solving among LLM agents.

https://img.zhaoweiguo.com/uPic/2024/08/nhhVkT.png

Figure 1: ChatDev, a chat-powered software development framework, integrates LLM agents with various social roles, working autonomously to develop comprehensive solutions via multi-agent collaboration.

  • 从技术上讲,ChatDev 使用聊天链将每个阶段进一步划分为更小的子任务,使代理的多轮通信能够合作提出和开发解决方案(例如,创意或源代码)。链式结构的工作流程指导代理沟通内容,促进合作,并顺利地将自然语言和编程语言的子任务联系起来,以推动问题的解决。

https://img.zhaoweiguo.com/uPic/2024/08/8F0o59.png

Figure 2: Upon receiving a preliminary task requirement (e.g., “develop a Gomoku game”), these software agents engage in multi-turn communication and perform instruction-following along a chain-structured workflow, collaborating to execute a series of subtasks autonomously to craft a comprehensive solution.

  • 通过仅共享每个子任务的解决方案而不是整个通信历史记录,ChatDev 最大限度地减少了被太多信息淹没的风险,提高了对每项任务的专注度并鼓励更有针对性的合作,同时促进了跨阶段上下文的连续性。

  • Communicative Dehallucination: encourages the assistant to actively seek more detailed suggestions from the instructor before delivering a formal response.鼓励助理在做出正式回应之前主动向教练寻求更详细的建议,这实际上有助于减少编码幻觉。

主页

索引

模块索引

搜索页面