Abstract
이 단락은 AutoGen2라는 오픈소스 프레임워크가 어떤 역할을 하는지 간략하게 소개하고 있습니다. 핵심 내용을 정리하면 다음과 같습니다:
멀티 에이전트를 활용한 LLM 애플리케이션 구축
- AutoGen2는 여러 개의 에이전트를 동시에 활용하여 대화 형식으로 문제를 해결하거나 작업을 수행하는 프레임워크입니다.
- 각 에이전트가 서로 대화하면서 협력하거나 정보를 교환함으로써 더 복잡한 문제도 효율적으로 처리할 수 있습니다.
다양한 모드 및 높은 유연성
- AutoGen2 에이전트들은 LLM(대형 언어 모델), 사람의 입력, 그리고 추가적인 도구 등을 조합해 작동할 수 있습니다.
- 개발자는 에이전트들 간의 상호작용(대화) 패턴을 자유롭게 정의할 수 있으며, 자연어 또는 프로그래밍 코드를 통해 세부 동작을 제어할 수도 있습니다.
광범위한 적용 가능성
- 이 프레임워크는 다양한 복잡도와 LLM 용량을 요구하는 여러 애플리케이션을 만드는데 활용될 수 있습니다.
- 논문에서는 수학, 코딩, 질의응답, 운영 연구(Operations Research), 온라인 의사결정, 엔터테인먼트 등 여러 영역에 적용한 예시를 통해 AutoGen2의 효과와 활용 가능성을 제시합니다.
개발자 친화적인 설계
- 에이전트마다 대화나 행동 로직을 쉽게 확장하고 커스터마이징할 수 있으므로, 특정 도메인의 요구사항에 맞춘 기능 개발이 용이합니다.
- “멀티 에이전트 대화”라는 새로운 접근 방식을 통해 복합적인 문제 해결 및 더 자연스러운 상호작용이 가능합니다.
결론적으로, AutoGen2는 멀티 에이전트 기반의 대화 방식을 통해 LLM 애플리케이션을 좀 더 유연하고 효과적으로 개발할 수 있게 해주는 프레임워크라고 볼 수 있습니다.
1. Introduction
이 단락에서는 멀티 에이전트 대화(Multi-Agent Conversation)를 활용한 LLM 애플리케이션 개발의 필요성과 가능성, 그리고 이를 구현하기 위한 AutoGen 프레임워크의 핵심 아이디어를 소개하고 있습니다. 주요 내용을 정리하면 다음과 같습니다:
1) 멀티 에이전트의 필요성
LLM(대형 언어 모델) 활용 범위 확장
- 복잡하고 다양한 실제 과제를 해결하기 위해서는 LLM이 여러 작업을 수행하고 서로 협력할 수 있어야 합니다.
- 여러 에이전트를 동시에 활용하면 생각의 다양성(divergent thinking), 정확성 향상(factuality & reasoning), 검증 능력(validation) 등의 이점을 얻을 수 있다는 선행 연구 사례를 소개합니다.
직관적인 확장 방식:
- 작업이 복잡해질수록 여러 에이전트가 서로 대화하고 협력하도록 설계함으로써 시스템의 성능을 확장할 수 있다는 아이디어가 제시됩니다.
2) 멀티 에이전트 대화의 장점
- 협력과 피드백
- Chat-optimized LLMs(GPT-4 등)는 피드백을 수용할 수 있으므로, 에이전트 간 대화에서 추론, 관측 결과, 비판, 검증 등을 주고받으며 협력할 수 있습니다.
- 다양한 에이전트 설정
- 한 모델 내에서도 다양한 설정(예: 프롬프트, 인퍼런스 파라미터 등)을 통해 다양한 능력을 보여줄 수 있습니다.
- “다르게 구성된 에이전트들 간 대화”를 통해 각 에이전트의 능력을 모듈형으로 결합할 수 있습니다.
- 복잡한 작업의 분할 정복
- LLM이 큰 문제를 작게 쪼개 해결하는 것이 가능하듯, 멀티 에이전트 대화는 자연스럽게 작업을 분할하여 진행할 수 있는 구조를 제공합니다.
3) AutoGen의 필요성
- 일반화된 멀티 에이전트 대화 프레임워크
- 다양한 도메인, 복잡도, 참여자(LLM, 인간, 도구 등)를 아우를 수 있는 “멀티 에이전트 대화 프레임워크”가 필요합니다.
- 핵심 질문
- “각각의 에이전트를 어떻게 설계해야 재사용 가능하고 커스터마이징이 쉬우며, 협업에 효과적일까?”
- “다양한 대화 패턴(단일/멀티턴, 사람 참여 방식, 정적/동적 대화, 자연어/코드 사용 등)을 지원하는 통합 인터페이스는 어떻게 설계할까?”
4) AutoGen 프레임워크의 주요 개념
Customizable and Conversable Agents
- 에이전트들은 LLM, 인간 입력, 툴(tool) 등을 조합하여 작동하도록 설계됩니다.
- 재사용 가능하고 쉽게 확장할 수 있는 구조로, 코드 작성, 실행, 피드백, 검증 등 다양한 역할을 담당하도록 설정할 수 있습니다.
- 에이전트 간 대화를 가능하게 하여, 자동화된 협업이 가능하도록 합니다.
Conversation Programming
- 복잡한 LLM 애플리케이션 워크플로우를 “에이전트 간 대화”로 단순화하고 통일감 있게 표현합니다.
- 크게 두 단계로 나눌 수 있는데,
1) 특정 역할과 능력을 갖춘 에이전트 세트 정의
2) 에이전트 간 상호작용(대화) 패턴 설계 - 이 과정을 자연어(Natural Language)와 프로그래밍 언어(Programming Language)를 결합해 처리할 수 있으므로, 개발자는 다양한 대화 구조를 유연하게 구성할 수 있습니다.
5) AutoGen의 성능 및 적용 예시
- 다양한 복잡도와 LLM 능력을 요구하는 여러 애플리케이션에서 쉽게 활용할 수 있으며,
- 실제 벤치마크와 파일럿 스터디에서 높은 성능을 달성하고, 개발 생산성을 높이는 데 기여한다는 점을 소개합니다.
2. The AutoGen Framework 요약(Explanation)
이 단락에서는 AutoGen 프레임워크가 멀티 에이전트 대화(Multi-Agent Conversation) 를 어떻게 간소화하여 다양한 도메인에 적용 가능한 복잡한 LLM 애플리케이션을 빠르고 쉽게 만들도록 지원하는지 설명합니다. 핵심은 다음과 같이 정리할 수 있습니다:
1) 핵심 디자인 원칙
- 멀티 에이전트 워크플로우를 대화로 단순화: 여러 에이전트가 상호 작용하는 복잡한 작업 흐름을 “대화”라는 형태로 일관되게 표현합니다.
- 에이전트 재사용성 극대화: 한 번 구현된 에이전트를 여러 시나리오에 쉽게 적용할 수 있도록 설계합니다.
2) Conversable Agents
Conversable Agent는 서로 메시지를 주고받으며 대화를 통해 협력하는 주체입니다. 각 에이전트는 내부 컨텍스트를 유지하면서 대화 내용을 기반으로 작업을 수행합니다.
LLM, 인간, 툴 등 다양한 기능 지원
- LLM 기반: 자동으로 작성, 추론, 코드생성, 피드백 반영 등이 가능합니다.
- 인간(휴먼) 기반: 특정 시점에 인간이 직접 개입해 입력을 제공하거나, 검증/결과 피드백 등을 담당할 수 있습니다.
- 툴 기반: 에이전트가 코드 실행 또는 함수 호출 등 다양한 툴을 사용할 수 있습니다.
에이전트 커스터마이징 및 협력
- 필요에 따라 에이전트를 다양한 역할(코드 작성, 코드 실행, 검증, 피드백 요청 등)로 확장하거나 재사용할 수 있습니다.
- AutoGen은 기본 제공 에이전트를 통해 빠르게 에이전트를 생성하고, 이를 상속 또는 조합하여 특화된 에이전트를 만들 수 있도록 지원합니다.
- 예시로, AssistantAgent(LLM이 뒷받침)와 UserProxyAgent(인간과 툴이 뒷받침)를 함께 배치해 과제를 해결하는 시나리오가 제시됩니다.
3) 프레임워크 활용 예시

- AssistantAgent가 LLM을 사용해 솔루션 초안을 작성하면, UserProxyAgent가 이를 실행/검증하거나 인간 입력을 받아 다시 AssistantAgent에 피드백을 제공할 수 있습니다.
- 이러한 대화 기반 구조는 복잡한 애플리케이션 설계를 간소화하고, 단계별로 에이전트 협력을 통해 목적을 달성하도록 만들어줍니다.
결국, Conversable Agents는 AutoGen 프레임워크의 “기본 단위”로, LLM, 사람, 툴 등 다양한 백엔드를 결합하여 서로 대화하며 복잡한 작업을 공동으로 해결할 수 있도록 설계된 구성 요소입니다. 멀티 에이전트 대화를 통해 실제 개발자가 필요한 로직이나 워크플로우를 직관적이면서도 효율적으로 표현할 수 있게 해줍니다.
- Conversable Agent 는 AssistantAgent 가 될 수 있거나, UserProxyAgent 가 될 수 있는거임.
- ConversableAgent가 가장 상위 추상화 클래스(슈퍼클래스)이고, AssistantAgent와 UserProxyAgent는 ConversableAgent를 확장(상속)하여 각각의 용도와 역할에 맞게 구현된 하위 클래스라고 보면 됨.
2.2 Conversation Programming
이 단락에서는 AutoGen이 제시하는 Conversation Programming 패러다임을 소개합니다. 주요 골자는 계산(Computation)과 제어 흐름(Control Flow) 을 “에이전트 간 대화”를 중심으로 프로그램한다는 아이디어입니다.
1) Conversation Programming 개념
- 계산(Computation):
- 에이전트가 대화(메시지)를 기반으로 필요한 작업을 수행하는 과정입니다.
- 예: LLM 추론, 코드 실행, 툴 함수 호출 등
- 제어 흐름(Control Flow):
- 이 계산이 어떤 순서와 조건으로 진행되는지 정의하는 과정입니다.
- 예: 특정 에이전트가 메시지를 받았을 때, 응답을 어떻게 생성하고 어느 에이전트에 전달할지 결정
핵심 포인트
- 대화를 통해 문제 해결 프로세스를 “직관적”으로 구성할 수 있습니다.
- 모든 에이전트 액션이 메시지 수신 → 메시지 전송 형태로 진행되므로, 자연스러운 분할/협업이 가능합니다.
2) 에이전트 동작 방식
(1) Unified Interfaces & Auto-reply Mechanisms
- 통합된 대화 인터페이스
- 모든 에이전트는 메시지 전송/수신(
send/receive
)과 메시지 기반 응답 생성(generate reply
) 기능을 공통적으로 가집니다.
- 모든 에이전트는 메시지 전송/수신(
- 에이전트 자동 응답(Auto-reply) 메커니즘
- 에이전트가 메시지를 받으면, 기본적으로
generate reply
를 수행하여 메시지를 보낸 에이전트에게 자동으로 답장을 보냅니다(종료 조건이 충족되지 않는 한 계속).
- 에이전트가 메시지를 받으면, 기본적으로
- 맞춤형 Reply 함수
- 개발자는 에이전트가 메시지를 받았을 때 추가 로직을 수행하도록 커스터마이징 가능합니다.
- 예: 다른 에이전트와 사전 대화를 거친 뒤에 원래 에이전트에게 답변을 보낸다거나, 특정 조건에서만 응답을 중단하는 등의 로직 구현
3) 정적 & 동적 대화 흐름
- 정적(Static) 대화 흐름
- 사전에 정의된 순서대로 에이전트가 대화하며 작업을 진행
- 동적(Dynamic) 대화 흐름
- 대화 내용 및 상황에 따라 에이전트가 추가 메시지를 다른 에이전트에 보낼 수 있으며,
- AutoGen의
GroupChatManager
등 기능을 통해 그룹 대화 시나리오도 다룰 수 있습니다.
결론
- AutoGen의 Conversation Programming은 다양한 멀티 에이전트 대화 패턴을 구현할 수 있게 해주며,
- 작업 흐름을 자연스럽게 조합·제어할 수 있는 직관적인 방법을 제공합니다.
3. Applications of AutoGen

Conclusion:
Multi-agent 시스템이 효과적인 이유는 다양한 생각을 가진 Agent 들이 서로 피드백 할 수 있고, 자신의 일을 처리하면 되고, 일은 각자가 처리할 수 있게끔 쪼개지기 때문임.
LangGraph 와 같은 워크플로우 설계도 필요하지 않겠느냐? 라고 생각할 순 있는데, Planning 으로 대체될 수 있어보임. (이런 동적인 Planning 은 쉬운 문제를 해결하는데는 도움이 될 것 같은데, 좀 더 복잡한 문제 (어떤 주식을 사야하는가?) 는 계획을 잡긴 어려워보이므로, 목적을 가진정적인 플로우가 있어야 할 수도.)
AutoGen 같은 경우 좀 더 뚜렷한 특징은 Agent 간의 대화 패턴을 설계할 수 있다는 점인듯.
- 근데 이것도 정적/동적 대화 흐름을 만들 수 있다는 점은 다른 Multi Agentic system 과 같음.
- 메시지 전송/수신(
send/receive
)과 메시지 기반 응답 생성(generate reply
) 기능을 공통적으로 제공해준다는 게 특징. 대화를 통해 작업 계획 조정, 작업 처리를 결정하는 것이다 보니까 이런식으로 flow 를 설정함. - Dynamic Group Chat 이라는 기능도 있음. 여러 에이전트가 공유된 문맥을 기반으로 문제 해결을 위해 대화를 하는 것. 대화 순서가 결정되진 않고, 마이크를 누가 잡느냐에 따라서 그떄의 대화 순서가 결정됨. 그리고 만들어진 대화는 여러 에이전트에게 브로드캐스팅되고. 다양한 역할을 가진 에이전트의 집단지성을 모으는 효과. 보면 LLM 호출 수를 좀 더 줄여줄 수 있는듯.
논문에서는 여러 Application 을 AutoGen 으로 만들어보면서 어떻게 사용하면 되는지 알려주고 있는데 flow 설계를 위주로 보자:
- 단순한 Flow 라 별로.
- A2: Retrieval-Augmented Code Generation and Question Answering -> RAG 와 유사.
- A3: Decision Making in Text World Environments -> 계획과 행동을 하는 식으로 플로우가 구성됨. 행동에 대한 결과도 피드백을 제공하기도 하고.
'Generative AI > Agent' 카테고리의 다른 글
Building effective agents (0) | 2024.12.30 |
---|---|
StateFlow: Enhancing LLM Task-Solving through State- Driven Workflows (0) | 2024.12.29 |
LLM Agents Course (4) Enterprise Trends for Generative AI (0) | 2024.12.28 |
The Shift from Models to Compound AI Systems (0) | 2024.12.27 |
LLM Agent Course (3) Agentic AI Frameworks (0) | 2024.12.27 |