Skip to main content
QUICK REVIEW

[논문 리뷰] Self-Organized Agents: A LLM Multi-Agent Framework toward Ultra Large-Scale Code Generation and Optimization

Yoïchi Ishibashi, Yoshimasa Nishimura|arXiv (Cornell University)|2024. 04. 02.
Modular Robots and Swarm Intelligence인용 수 4
한 줄 요약

이 논문은 문제 복잡도에 따라 자율적으로 복제 가능한 에이전트를 허용함으로써 확장 가능하고 동적 코드 생성 및 최적화를 가능하게 하는 새로운 LLM 다중에이전트 프레임워크인 Self-Organized Agents(SoA)를 제안한다. 각 에이전트는 고정된 소규모 코드 조각을 관리하며, 협력적 자율 조직화를 통해 초거대 코드베이스로의 확장이 가능하다. HumanEval에서 최신 단일에이전트 기준보다 Pass@1 정확도가 5% 향상되었다.

ABSTRACT

Recent advancements in automatic code generation using large language model (LLM) agent have brought us closer to the future of automated software development. However, existing single-agent approaches face limitations in generating and improving large-scale, complex codebases due to constraints in context length. To tackle this challenge, we propose Self-Organized multi-Agent framework (SoA), a novel multi-agent framework that enables the scalable and efficient generation and optimization of large-scale code. In SoA, self-organized agents operate independently to generate and modify code components while seamlessly collaborating to construct the overall codebase. A key feature of our framework is the automatic multiplication of agents based on problem complexity, allowing for dynamic scalability. This enables the overall code volume to be increased indefinitely according to the number of agents, while the amount of code managed by each agent remains constant. We evaluate SoA on the HumanEval benchmark and demonstrate that, compared to a single-agent system, each agent in SoA handles significantly less code, yet the overall generated code is substantially greater. Moreover, SoA surpasses the powerful single-agent baseline by 5% in terms of Pass@1 accuracy.

연구 동기 및 목표

  • 맥락 길이 제약으로 인해 단일에이전트 LLM이 대규모 복잡한 코드베이스 생성 및 최적화에 있어 확장성에 한계를 가짐을 해결하기 위해.
  • 문제 복잡도에 따라 에이전트가 자율적으로 복제되도록 허용함으로써 동적이고 자율 조직화된 코드 생성을 가능하게 하기 위해.
  • 에이전트당 일정한 코드 관리량을 유지하면서도 전체 코드베이스의 무한한 확장 가능성을 보장하기 위해.
  • 분산된 협력적 에이전트 아키텍처를 통해 코드 생성 품질과 효율성을 향상시키기 위해.
  • 기존의 거시적 다중에이전트 소프트웨어 개발 접근 방식과 보완이 되는 민감한 마이크로 수준의 프레임워크를 제공하기 위해.

제안 방법

  • 기능 분해에 기반하여 사전 정의된 역할이 아닌 특정 코드 컴포넌트의 생성 및 수정을 위해 에이전트를 할당한다.
  • 프레임워크는 중심화된 제어 없이 에이전트가 협력하고 조율함으로써 전체 코드베이스를 조립하는 자율 조직화를 활용한다.
  • 문제 복잡도에 기반해 자동으로 에이전트 복제가 유도되어 각 에이전트가 일정하고 관리 가능한 코드량을 처리하도록 보장한다.
  • 에이전트를 노드로 하는 트리 구조를 통해 확장 가능하고 병렬적인 코드 생성 및 수정을 가능하게 한다.
  • 이행 효율성을 향상시키기 위해 Tree-of-Thought(ToT) 및 Skeleton of Thought(SoT)와 같은 프롬프트 엔지니어링 기법을 사용한다.
  • 에이전트는 경량 조율 메커니즘을 통해 소통하고 동기화하여 전체 코드베이스에서 일관성과 정확성을 유지한다.
Figure 1: Left (single agent): A single agent is solely responsible for the entire implementation. As the codebase grows larger, the load increases for code generation, modification, and memory management, making it difficult to manage and develop. The larger the entire codebase becomes, the more it
Figure 1: Left (single agent): A single agent is solely responsible for the entire implementation. As the codebase grows larger, the load increases for code generation, modification, and memory management, making it difficult to manage and develop. The larger the entire codebase becomes, the more it

실험 결과

연구 질문

  • RQ1자율 조직화 다중에이전트 프레임워크는 개별 에이전트의 작업 부담을 일정하게 유지하면서도 코드 생성 능력을 동적으로 확장할 수 있는가?
  • RQ2문제 복잡도에 기반한 에이전트 복제가 전체 코드량과 생성 품질에 어떤 영향을 미치는가?
  • RQ3SoA 프레임워크는 코드 생성 정확도와 확장성 측면에서 단일에이전트 기준보다 어느 정도 뛰어나게 되는가?
  • RQ4고정된 역할이 없는 것이 복잡한 코드 생성 작업에서의 적응성과 성능 향상에 어떤 영향을 미치는가?
  • RQ5분산된 협력적 에이전트 행동이 코드 품질과 시스템 내성에 어떤 영향을 미치는가?

주요 결과

  • SoA는 Reflexion 단일에이전트 기준보다 HumanEval 벤치마크에서 Pass@1 정확도가 5% 높게 기록했다.
  • SoA의 각 에이전트는 단일에이전트 시스템보다 훨씬 적은 코드를 관리했지만, 총 생성 코드량은 상당히 더 컸다.
  • 자동 에이전트 복제를 통해 동적 확장성이 입증되어 코드베이스의 무한한 확장이 가능했다.
  • 에이전트 자율 조직화 덕분에 중심화된 감시 없이도 효율적인 협업이 가능했으며, 코드 일관성과 정확성이 유지되었다.
  • 마이크로 수준의 기능 기반 에이전트 할당 방식이 역할 기반 다중에이전트 프레임워크보다 적응성과 코드 생성 품질 측면에서 뛰어났다.
  • 시스템 성능은 LLM 선택과 테스트 품질에 민감하게 반응하여, 소통 및 장애 내성 측면에서 최적화 여지가 있음을 시사했다.
Figure 2: Overview of code generation. Child agents generate executable Python function from a given docstring. The Mother agent generates the skeleton of the function. The Mother spawns a new initialized agent (Child or Mother) and delegates unimplemented functions.
Figure 2: Overview of code generation. Child agents generate executable Python function from a given docstring. The Mother agent generates the skeleton of the function. The Mother spawns a new initialized agent (Child or Mother) and delegates unimplemented functions.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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