Skip to main content
QUICK REVIEW

[论文解读] ChatDev: Communicative Agents for Software Development

Chen Qian, Liu, Wei|arXiv (Cornell University)|Jul 16, 2023
Topic Modeling被引用 69
一句话总结

ChatDev 使用多智能体、基于聊天的框架,由大语言模型驱动,执行端到端软件开发(设计、编码、测试、文档)以瀑布式流程实现低成本、低时间成本的可执行结果。它引入带有角色分工的对话链以及思考指令机制以降低代码幻觉。

ABSTRACT

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. The code and data are available at https://github.com/OpenBMB/ChatDev.

研究动机与目标

  • 从单次通过的角度动机与解决大语言模型在生成端到端软件时的挑战,原因包括代码幻觉与缺乏交叉审查。
  • 提出 ChatDev,一个虚拟的聊天驱动公司,通过结构化的聊天链统一设计、编码、测试和文档化。
  • 使专业化代理之间的子任务协作更加细粒度,以提升解决方案质量和可调试性。
  • 引入记忆流和思考/自我反思机制,在对话中引导和审计代理决策。

提出的方法

  • 提出四阶段瀑布式灵感框架:设计、编码、测试、文档化。
  • 使用阶段特定的聊天链,其中两角色交互将每个阶段分解为原子子任务。
  • 实现角色专业化、记忆流和自我反思以维持上下文并促进共识。
  • 在编码/测试阶段,采用思考指令机制(角色切换)以暴露未实现部分或错误并降低幻觉。
  • 使用面向对象编程并结合版本演化方案来管理代码可见性并遏制幻觉。
  • 通过使用 ChatGPT-turbo-16k 的实验评估,模拟跨 70 个任务的多智能体开发,测量时间、成本与输出质量。
  • 收集关于代码文件、资源、文档、代码行、依赖项和版本更新的统计数据;分析对话令牌和成功率。

实验结果

研究问题

  • RQ1一个基于聊天的多智能体框架由大语言模型驱动,能否在设计、编码、测试和文档阶段实现端到端的软件开发?
  • RQ2角色专业化、记忆和自我反思如何影响任务分解、代码质量与幻觉减少?
  • RQ3在多任务场景下,使用 ChatDev 自动化软件生产的实际时间与成本特征为何?
  • RQ4在评审者—程序员和测试者对话中会出现哪些问题,思考指令是否能够缓解?
  • RQ5所提出的框架在可行性与效率方面与传统开发相比有何差异?

主要发现

MinMaxAvg.
284.26
0218.74
454.04
39359131.61
152.90
3123253.96
54213.23
151.40
141.24
2410445.60
111199120836902.23
31612716211567.37
1529411101948469.60
  • ChatDev 在大多数任务中生成可执行软件,平均生产时间为 409.84 秒,平均成本为 $0.2967/份软件。
  • 在 70 个任务中,生成的软件平均包含 17.04 个文件,86.66% 能无错误执行,13.33% 由于 API 令牌限制或外部依赖导致失败。
  • 平均每份软件包含 2 到 8 个代码文件(平均 4.26),大约 4–5 个文档文件(平均 4.04),以及 1–5 个环境依赖(平均 2.90)。
  • 每份软件的源代码平均行数为 131.61 行(范围 39–359),用户手册平均行数为 53.96 行(范围 31–232)。
  • 版本更新平均为 13.23 次,反映在完成、编码和测试阶段为缓解代码幻觉而进行的迭代改进。
  • 对话分析显示常见的评审问题(如未实现的方法 34.85%、缺少导入 19.70%)与常见的测试问题(模块未找到 45.76%),思考指令解决了许多此类问题。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。