AgentCoder: 반복적 테스팅과 최적화를 통한 다중 에이전트 기반 코드 생성

자연어 처리(NLP) 분야의 발전은 트랜스포머 기반의 대규모 언어 모델(LLM)의 개발에 크게 기여해왔다. 이러한 모델들은 코드 생성을 포함한 NLP 작업에서 혁신을 이끌었으며, 개발자들이 더 효율적으로 소프트웨어를 개발할 수 있도록 지원하고 있다. 그럼에도 불구하고, 코드 조각 생성과 효과적인 테스트 케이스 생성 및 실행 간의 균형을 맞추는 데 여전히 도전 과제가 존재한다. 이러한 문제를 해결하기 위해 본 논문은 다중 에이전트 기반의 코드 생성 솔루션인 Multi-Agent Assistant Code Generation (AgentCoder)을 제안한다. AgentCoder는 전문적인 역할을 수행하는 다중 에이전트 프레임워크로 구성되며, 프로그래머 에이전트, 테스트 설계 에이전트, 테스트 실행 에이전트로 구성된다. 코딩 과정 중 프로그래머 에이전트는 테스트 실행 에이전트의 피드백을 바탕으로 코드 생성과 개선에 집중한다. 테스트 설계 에이전트는 생성된 코드에 대해 테스트 케이스를 생성하고, 테스트 실행 에이전트는 해당 테스트 케이스를 사용해 코드를 실행한 후 결과를 피드백 형태로 프로그래머 에이전트에게 전달한다. 이와 같은 협업 시스템은 단일 에이전트 모델이나 전통적인 방법론에 비해 더욱 견고한 코드 생성을 보장한다. 9개의 코드 생성 모델과 12가지 개선 기법을 대상으로 수행한 광범위한 실험을 통해 AgentCoder는 다양한 벤치마크에서 기존의 코드 생성 모델 및 프롬프트 엔지니어링 기법보다 뛰어난 성능을 입증하였다. 예를 들어, AgentCoder(GPT-4)는 HumanEval 및 MBPP 데이터셋에서 각각 96.3%와 91.8%의 pass@1 성능을 기록하며, 전체 토큰 오버헤드는 각각 56.9K와 66.3K에 그쳤다. 반면, 최신 기술 기준 모델은 각각 90.2%와 78.9%의 pass@1 성능을 기록하면서도 전체 토큰 오버헤드가 138.2K와 206.5K에 달하는 것으로 나타났다.