본문 바로가기
개발/LLM

[논문 리뷰] AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

by ▶ Carpe diem ◀ 2025. 2. 11.

이번 글에서는 다중 에이전트 대화를 통해 LLM(대형 언어 모델) 응용 프로그램을 손쉽게 구축할 수 있는 오픈소스 프레임워크인 AutoGen 논문을 정리해보았습니다.

 

 

목차

     

     

    AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

    AutoGen은 LLM 응용 프로그램을 구축할 수 있도록 다중 에이전트 대화를 활용하는 오픈소스 프레임워크입니다. 이 프레임워크는 대화 가능한 에이전트를 사용하여 다양한 작업을 수행할 수 있도록 설계되었습니다. 

     

    GitHub - microsoft/autogen: A programming framework for agentic AI 🤖 PyPi: autogen-agentchat Discord: https://aka.ms/autogen-

    A programming framework for agentic AI 🤖 PyPi: autogen-agentchat Discord: https://aka.ms/autogen-discord Office Hour: https://aka.ms/autogen-officehour - microsoft/autogen

    github.com

     

    에이전트는 인간 입력, 도구 사용, LLM 등을 조합하여 작동할 수 있으며, 대화 프로그래밍을 통해 유연한 대화 패턴을 지원합니다.

     

    논문은 아래 파일을 다운로드 받아 자세히 확인해볼 수 있습니다.

    2308.08155v2.pdf
    3.41MB

     

    AutoGen이란 무엇인가?

    AutoGen은 LLM 응용 프로그램 개발을 단순화하고 통합하기 위한 다중 에이전트 대화 프레임워크로, 개발자가 대화형 에이전트를 사용하여 복잡한 작업을 수행할 수 있도록 합니다.

    다양한 LLM 기반 응용 프로그램을 다중 에이전트 대화를 통해 구현하는 방법

     

    AutoGen 주요 컨셉

    AutoGen은 두 가지 주요 컨셉인 대화 가능한 맞춤형 에이전트(Customizable and Conversable Agents)대화 프로그래밍(Conversation Programming)을 중심으로 설계되었습니다.

    • 대화 가능한 맞춤형 에이전트(Customizable and Conversable Agents)
      AutoGen에서 에이전트는 특정 역할을 가지고 다른 에이전트와 정보를 주고받는 능력을 가진 엔터티로 구성됩니다. 이러한 에이전트는 LLM, 도구, 인간 입력 등 다양한 기능을 결합하여 작동할 수 있으며, 필요에 따라 다양한 역할을 수행할 수 있도록 맞춤 설정이 가능합니다. 모든 에이전트는 대화 가능한 특성을 지니고 있어, 메시지를 받고 반응하며 응답할 수 있습니다. 적절하게 구성된 에이전트는 다른 에이전트와 자율적으로 여러 턴의 대화를 이어나가거나 특정 단계에서 인간 입력을 요청할 수 있습니다.
    • 대화 프로그래밍(Conversation Programming)
      대화 프로그래밍은 AutoGen이 복잡한 LLM 응용 프로그램 워크플로를 다중 에이전트 대화로 단순화하고 통합하는 패러다임입니다. 이 패러다임은 두 가지 주요 개념에 기반합니다:
      • 계산 (Computation): 에이전트가 다중 에이전트 대화에서 응답을 계산하기 위해 수행하는 작업.
      • 제어 흐름 (Control Flow): 이러한 계산이 일어나는 순서 또는 조건.

    AutoGen을 통해 개발자는 대화 중심의 계산과 제어를 프로그램할 수 있으며, 이를 통해 다양한 응용 프로그램에서 유연한 다중 에이전트 대화 패턴을 구현할 수 있습니다.

     

    AutoGen을 사용하여 다중 에이전트 대화를 프로그래밍하는 방법

    아래 그림은 AutoGen을 사용하여 다중 에이전트 대화를 프로그래밍하는 방법을 시각적으로 설명합니다. 

    AutoGen을 사용하여 다중 에이전트 대화를 프로그래밍하는 방법
    AutoGen을 사용하여 다중 에이전트 대화를 프로그래밍하는 방법

     

    이 그림은 세 가지 주요 부분으로 구성되어 있습니다:

    • 내장 에이전트 (상단 부분)
      AutoGen에서 제공하는 기본 에이전트들(ConversableAgent, AssistantAgent, UserProxyAgent)을 보여줍니다. 이들은 통일된 대화 인터페이스를 가지고 있으며, 다양한 기능을 쉽게 통합할 수 있습니다.
    • 사용자 지정 응답 함수 예시 (중간 부분)
      두 에이전트 시스템을 개발하는 예시로, 사용자 지정 응답 함수를 등록하여 에이전트 간의 상호작용을 정의합니다. (예: UserProxyAgent는 인간 입력을 요청하거나 실행함)
    • 프로그램 실행 중 자동화된 에이전트 채팅 (하단 부분)
      두 에이전트 시스템에서 발생하는 자동화된 에이전트 채팅을 보여줍니다. 프로그램 실행 시, 각 에이전트는 자신에게 할당된 작업을 수행하고 응답을 생성합니다. 대화 흐름은 'Conversation-Centric Computation' 및 'Conversation-Driven Control Flow'로 처리됩니다.

    Conversation-Centric Computation

    에이전트가 다중 에이전트 대화에서 응답을 계산하기 위해 수행하는 작업에 중점을 둡니다.

     

      Conversation-Driven Control Flow
    계산이 일어나는 순서나 조건을 결정하는 방식에 중점을 둡니다. 참여하는 에이전트들은 대화의 흐름에 따라 어떤 에이전트에게 메시지를 보낼지, 계산 절차를 어떻게 진행할지를 결정합니다.

     

    AutoGen 필요성

    LLM은 다양한 실제 작업에서 추론, 도구 사용, 새로운 관찰에 적응하는 데 매우 유용하지만, 작업의 복잡성과 범위가 증가하면서 단일 LLM으로는 모든 요구를 충족시키기 어려워졌습니다. AutoGen은 여러 에이전트를 사용하여 이러한 한계를 극복하고, 다중 에이전트 협업을 통해 보다 효율적이고 유연한 LLM 응용 프로그램을 구축할 수 있도록 합니다. 

     

    AutoGen 응용 프로그램 예

    논문에서 소개하고 있는 6개의 AutoGen의 응용 프로그램은 실제 세계에서의 관련성, 문제의 난이도와 AutoGen을 통해 가능해진 문제 해결 능력, 혁신 잠재력을 기준으로 선택되었습니다.

    • 실제 세계에서의 관련성
      수학 문제 해결이나 검색 보강 질문 응답은 교육과 연구, 코드 생성 등에서 매우 중요한 역할을 합니다. 이러한 응용 프로그램들은 사용자들에게 직접적인 도움을 줄 수 있으며 실질적인 응용 프로그램이 될 수 있습니다.
    • 문제의 난이도와 AutoGen을 통해 가능해진 문제 해결 능력
      선정된 응용 프로그램들은 다양한 난이도의 문제들을 다루고 있으며, AutoGen을 통해 그 해결이 가능해졌습니다. 예를 들어, 수학 문제 해결은 매우 도전적인 문제들을 포함하고 있으며, ALFWorld 벤치마크는 상호작용적 의사 결정을 요구합니다.
    • 혁신 잠재력
      선정된 응용 프로그램들은 AutoGen을 통해 혁신적인 방식을 시도할 수 있는 잠재력을 가지고 있습니다. 예를 들어, 동적 그룹 채팅은 다양한 에이전트 간의 동적 상호작용을 통해 복잡한 문제를 해결할 수 있으며, 대화형 체스는 AI와 인간 플레이어 간의 자연스러운 상호작용을 통해 새로운 게임 경험을 제공합니다.

    AutoGen으로 할 수 있는 6가지 예
    AutoGen으로 할 수 있는 6가지 예

     

    1. 수학 문제 해결: LLM을 사용하여 복잡한 수학 문제를 해결하고, 인간 피드백을 통해 개선할 수 있습니다.
    2. 검색 보강 코드 생성 및 질문 응답: 외부 문서를 통합하여 LLM의 한계를 보완하고, 질문 응답 및 코드 생성을 도와줍니다.
    3. 의사 결정: 텍스트 기반 환경에서 상호작용적 의사 결정을 지원합니다.
    4. 다중 에이전트 코딩: 코드 작성, 검증, 실행을 자동화하여 협업 코딩 작업을 수행합니다.
    5. 동적 그룹 채팅: 에이전트 간의 동적 대화를 통해 복잡한 작업을 해결합니다.
    6. 대화형 체스: 자연어 인터페이스를 통해 체스 게임을 진행하며, AI와 인간 플레이어가 상호작용할 수 있습니다.

     

    AutoGen 한계

    AutoGen은 LLM(대형 언어 모델) 응용 프로그램 개발을 단순화하고 통합하는 강력한 프레임워크이지만, 몇 가지 한계가 있습니다.

     

    AutoGen은 여전히 초기 실험 단계에 있습니다. 이로 인해 추가 연구와 개발이 필요하며, 다양한 응용 프로그램에서의 성능 검증도 더 이루어져야 합니다.

     

    다중 에이전트 시스템의 복잡성이 증가함에 따라 로그를 추적하고 조정하는 것이 어려워질 수 있습니다. 이는 잘못된 동작이나 오용의 가능성을 높일 수 있으며, 시스템의 일관성을 유지하는 데 있어 추가적인 노력이 필요합니다.

     

    완전히 자율적인 에이전트 대화는 신중하게 사용되어야 합니다. 특히 고위험 응용 프로그램에서는 높은 수준의 자율성이 잠재적인 위험을 초래할 수 있기 때문에, 안정성 있는 제어 메커니즘과 예외 처리 방안이 필요합니다.

     

    AutoGen은 에이전트 간의 상호작용을 통해 다양한 작업을 처리할 수 있지만, 에이전트 수와 자유도의 증가가 새로운 안전 문제를 야기할 수 있습니다.