← 최신 논문
💻 computer science

CodeTeam: An LLM-Powered Multi-Agent Framework for Repository-Level Code Generation

CodeTeam은 계획, 의사 결정, 구현을 조율된 단계로 분리함으로써 자연어 기반의 레포지토리 생성 시 발생하는 과제들을 해결하며, 벤치마크 테스트에서 설계 품질과 기능적 정확도 모두에서 최첨단 성능을 달성하는 LLM 기반 멀티 에이전트 프레임워크입니다.

원저자: Yifei Wang, Ruiyin Li, Peng Liang, Qiong Feng, Zengyang Li, Mojtaba Shahin, Arif Ali Khan

게시일 2026-06-23
📖 4 분 읽기☕ 가벼운 읽기

원저자: Yifei Wang, Ruiyin Li, Peng Liang, Qiong Feng, Zengyang Li, Mojtaba Shahin, Arif Ali Khan

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

문제점: 스케치 하나로 도시 전체를 건설하기

매우 똑똑하지만 약간 산만한 건축가(AI)에게 단 한 문장으로 도시 전체를 지어달라고 요청한다고 상상해 보세요. "사람들이 신발을 살 수 있는 곳이 필요해요."

만약 당신이 AI에게 그냥 "코드를 작성해 줘"라고 말한다면, AI는 아름다운 신발 가게는 만들지 몰라도 도로, 발전소, 또는 하수도 시스템을 만드는 것은 잊어버릴 수 있습니다. 혹은, "도로 건설가" AI와 대화하지 못해서 신발 가게 문을 벽돌 벽으로 연결되도록 만들어 버릴 수도 있습니다.

이것이 바로 NL2Repo(Natural Language to Repository, 자연어에서 저장소로)의 과제입니다. 이것은 단순히 하나의 함수(방 하나)를 쓰는 문제가 아닙니다. 서로 완벽하게 소통해야 하는 수많은 파일로 구성된 전체 소프트웨어 프로젝트(도시 전체)를 생성하는 문제입니다. 현재의 AI 모델들은 종로 세부 사항에 길을 잃거나, 파일 A가 기대하는 것을 파일 B가 만들지 못해 발생하는 "파일 간의 불일치" 문제를 일으키곤 합니다.

해결책: CodeTeam (건설 팀)

저자들은 하나의 고독한 천재 AI에 의존하는 대신, 특화된 역할을 가진 잘 조직된 건설 팀처럼 작동하는 시스템인 CodeTeam을 제안합니다. 이 시스템은 작업을 기획(Planning), 의사 결정(Decision Making), **건축(Building)**이라는 세 가지 뚜قت적인 단계로 나눕니다.

팀이 작동하는 방식은 다음과 같습니다.

1. 설계자들 (몽상가들)

시스템은 단 한 명의 설계도가 아닌, 네 명의 서로 다른 설계자 에이전트를 고용합니다.

  • 하는 일: 각 설계자는 소프트웨어에 대한 서로 다른 디자인을 스케치합니다. 한 명은 "모듈형 설계를 사용하자!"라고 말할 수 있고, 다른 한 명은 "아니, 단순하고 평평하게 가자!"라고 말할 수 있습니다.
  • 비장의 무기: 때때로 이 설계자들은 성공적인 과거 프로젝트 라이브러리(검색 증강 생성, RAG)를 엿볼 수 있습니다. 이를 통해 다른 사람들이 유사한 문제를 어떻게 해결했는지 확인하여 바퀴를 다시 발명하는 실수를 피합니다.
  • 목표: 다양한 "소프트웨어 디자인 스케치(SDS)"를 만드는 것입니다. 이것은 모든 방과 파이프, 그리고 누가 무엇을 책임지고 지을지를 나열한 상세한 청사진이라고 생각하면 됩니다.

2. CTO (최고 의사 결정자)

네 명의 설계자가 청사진을 제시하면, 최고 기술 책임자(CTO) 에이전트가 개입합니다.

  • 하는 일: CTO는 모든 스케치를 검토하고, 가장 좋은 것을 선택하여 이를 **기계 검증 가능한 계약(Machine-Checkable Contract)**으로 변환합니다.
  • 계약서: 이것은 단순한 그림이 아니라 컴퓨터를 위한 엄격한 법적 문서입니다. *"파일 A는 반드시 이 특정 함수를 가져야 한다. 파일 B는 파일 A에 의존해야 한다. 개발자 1은 주방을 담당하고, 개발자 2는 침실을 담당한다."*와 같은 내용입니다.
  • 중요한 이유: 이 계약은 빌더들이 엉뚱한 곳에 가서 주방이 있어야 할 자리에 차고를 짓는 일을 방지합니다. 벽돌을 놓기 전에 규칙을 설정하는 것입니다.

3. 개발자들 (빌더들)

이제 실제 코딩이 시작됩니다. 시스템은 CTO의 계약에 따라 정해진 수의 개발자 에이전트를 고용합니다.

  • 전문화: 모든 것을 다 하려는 일반적인 AI와 달리, 이 개발자들은 특정 파일들을 할당받습니다. 개발자 1은 오직 로그인 페이지만을 만듭니다. 개발자 2는 오직 데이터베이스만을 만듭니다.
  • Git 코디네이션 (현장 소장): 구축하는 동안 그들은 변경 사항을 추적하는 도구인 Git의 경량 버전을 사용합니다. 개발자 1이 로그인 페이지를 변경하면, *"비밀번호 버튼을 변경했습니다"*라는 "커밋 메시지(메모)"를 남깁니다. 개발자 2는 이 메모를 읽고 자신의 코드를 그에 맞춰 업데이트합니다.
  • 의존성 인식: 시스템은 벽을 칠하기 전에 프레임을 먼저 세워야 한다는 것을 알고 있습니다. 따라서 적절한 순서대로 작업이 진행되도록 일정을 조절합니다.

4. QA 에이전트 (검사관)

팀이 건물을 짓는 동안, 품질 보증(QA) 에이전트가 건물 검사관 역할을 합니다.

  • 하는 일: 그들은 건물이 제대로 서 있는지 확인하기 위해 테스트를 실행합니다. 만약 문이 열리지 않거나 파이프가 새면, QA 에이전트는 단순히 "에러"라고 말하는 데 그치지 않습니다. 누가 그것을 망가뜨렸는지 찾아내어 해당 개발자에게 수리 티켓을 보냅니다.
  • 루프: 개발자가 문제를 수정하면 검사관이 다시 확인하며, 건물이 완벽해질 때까지 이 과정을 반복합니다.

무엇을 발견했는가? (결과)

연구진은 CodeTeam을 다른 방법들(단일 AI가 모든 것을 하려고 하거나 다른 멀티 에이전트 팀 등)과 비교하여 두 가지 주요 "시험"을 통해 테스트했습니다.

  1. 청사진 시험 (SketchEval): 생성된 코드가 실제 사례와 비교했을 때 구조적으로 올바른지 확인했습니다.

    • 결과: CodeTeam이 승리했습니다. CodeTeam은 실제 소프트웨어와 훨씬 더 유사한 구조를 구축했습니다. "설계자"와 "CTO" 단계가 레이아웃을 제대로 잡도록 도왔고, "QA" 단계가 작은 균열들을 고쳤습니다.
    • 핵심 통찰: "동적 개발자 할당(Dynamic Developer Allocation, 특정 작업에 맞는 수의 빌더를 고용하는 것)"이 성공의 가장 큰 요인이었습니다. 너무 적거나 많은 인원을 고용하거나, 잘못된 사람을 잘못된 방에 배치하면 건물이 실패합니다.
  2. 실전 테스트 (NL2Repo-Bench): 실제로 생성된 소프트웨어를 실행하여 제대로 작동하는지 확인했습니다.

    • 결과: CodeTeam이 가장 높은 성공률을 보였습니다. 단순히 종이 위에서만 좋아 보이는 것이 아니라, 실제로 기능했습니다.
    • 핵심 통찰: 구조적 오류(누락된 파일이나 끊어진 연결 등)를 조기에 해결함으로써, 최종 제품이 "실전" 테스트를 통과할 가능성이 훨씬 높아졌습니다.

요점

이 논문은 처음부터 소프트웨어를 만드는 것은 단순히 "글을 쓰는" 작업이 아니라, 관리하는 작업이라고 주장합니다.

  • 기존 방식: 한 명의 AI에게 책 한 권을 쓰라고 요청합니다. 그러면 AI는 종종 줄거리를 잊어버리거나 캐릭터가 서로 맞지 않게 씁니다.
  • CodeTeam 방식: 팀을 고용합니다. 한 사람은 줄거리를 계획하고, 한 사람은 챕터를 편집하며, 한 사람은 오타를 체크하게 합니다.

기획(설계자/CTO)을 실행(개발자)과 분리하고 검증(QA)을 추가함으로써, CodeTeam은 더 똑똑할 뿐만 아니라 더 신뢰할 수 있는 소프트웨어를 만듭니다. 이는 복잡한 작업의 경우, 단일한 초지능 AI가 혼자 일하는 것보다 조율된 AI 에이전트 팀이 훨씬 더 낫다는 것을 증명합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →