Skip to main content
QUICK REVIEW

[논문 리뷰] ChatDev: Communicative Agents for Software Development

Chen Qian, Liu, Wei|arXiv (Cornell University)|2023. 07. 16.
Topic Modeling인용 수 69
한 줄 요약

ChatDev는 LLM에 의해 구동되는 다중 에이전트, 채팅 기반 프레임워크를 사용하여 설계, 코드 작성, 테스트, 문서화 등 엔드-투-엔드 소프트웨어 개발을 폭포수와 같은 프로세스로 수행하고, 낮은 비용과 시간으로 실행 가능한 결과를 달성합니다. 또한 코드 환각(hallucinations)을 완화하기 위해 역할 기반 에이전트와 사고-지시 메커니즘을 갖춘 채팅 체인(chat-chain)을 도입합니다.

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.

연구 동기 및 목표

  • 코드 환각과 상호 검토의 부족으로 인해 LLM으로 단일 패스로 엔드-투-엔드 소프트웨어를 생성하는 데 따른 문제를 동기 부여하고 해결하기 위함.
  • 구조화된 chat chain을 통해 설계, 코딩, 테스트 및 문서화를 하나로 통합하는 가상 채팅 기반 회사인 ChatDev를 제안한다.
  • 해당 분야의 에이전트들 간의 세부 하위 작업 협업을 가능하게 하여 솔루션 품질과 디버깅 용이성을 향상시킨다.
  • 채팅 내에서 에이전트의 의사결정을 안내하고 감사하기 위한 메모리 스트림과 사고/자기 성찰 메커니즘을 도입한다.

제안 방법

  • 설계, 코딩, 테스트, 문서화의 네 단계로 구성된 폭포수에서 영감을 받은 프레임워크를 제안한다.
  • 두 역할 간 상호작용으로 각 단계를 원자적 하위 작업으로 분해하는 단계별 채팅 체인을 사용한다.
  • 맥락 유지를 위해 역할 전문화, 메모리 스트림, 그리고 자기 성찰을 구현하여 합의를 촉진한다.
  • 코딩/테스트에서 사고-지시 메커니즘(역할 교체)을 활용하여 구현되지 않은 부분이나 버그를 드러내고 환각을 줄인다.
  • 코드 가시성을 관리하고 환각을 억제하기 위해 버전 진화 체계를 가진 객체 지향 프로그래밍을 활용한다.
  • 70개 작업에 걸친 다중 에이전트 개발을 시뮬레이션하기 위해 ChatGPT-turbo-16k를 사용한 실험으로 평가하고 시간, 비용, 산출물 품질을 측정한다.
  • 코드 파일, 자산, 문서, 코드 줄 수, 의존성 및 버전 업데이트에 대한 통계를 수집하고; 대화 토큰과 성공률을 분석한다.

실험 결과

연구 질문

  • RQ1LLMs가 구동하는 채팅 기반 다중 에이전트 프레임워크가 설계, 코딩, 테스트 및 문서화 단계를 아우르는 엔드-투-엔드 소프트웨어 개발을 수행할 수 있는가?
  • 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%)와 일반적인 테스터 이슈(모듈 not found 45.76%)를 나타내었고, 사고-지시가 이러한 문제들 중 다수를 해결했다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.