인공지능의 진화는 우리가 상상했던 것보다 빠르게 진행되고 있습니다. 단일 AI 모델의 한계를 뛰어넘어, 이제는 여러 AI 에이전트가 협업하며 복잡한 문제를 해결하는 시대가 도래했습니다. 이러한 변화의 중심에 있는 것이 바로 Microsoft의 AutoGEN입니다.

AutoGEN은 여러 AI 에이전트가 마치 인간 팀처럼 협력하여 문제를 해결할 수 있는 혁신적인 플랫폼입니다. 마치 각각의 전문가가 모여 팀을 이루어 복잡한 프로젝트를 완성하는 것처럼, AutoGEN의 에이전트들은 서로 대화하고, 토론하고, 협력하며 단일 AI로는 불가능했던 수준의 문제 해결 능력을 보여줍니다.
AutoGEN의 핵심 개념
AutoGEN 생태계의 3계층 아키텍처
AutoGEN은 계층화되고 확장 가능한 설계를 통해 다양한 추상화 수준에서 사용할 수 있는 포괄적인 생태계를 제공합니다. 이 생태계는 크게 프레임워크 영역, 개발자 도구 영역, 애플리케이션 영역의 3개 계층으로 구성됩니다.

프레임워크 영역 (Framework Layer)
프레임워크 영역은 AutoGEN의 핵심 기술적 기반을 제공하며, 세 가지 주요 API로 구성됩니다:
1. Core API (autogen-core
)
- 역할: 가장 낮은 수준의 핵심 인프라 제공
- 주요 기능:
- 메시지 전달 (Message Passing) 시스템
- 이벤트 기반 에이전트 아키텍처
- 로컬 및 분산 런타임 환경
- 크로스 언어 지원 (.NET과 Python 간 상호운용성)
- 특징: 최대한의 유연성과 확장성을 제공하며, 고급 개발자나 연구자를 위한 저수준 컴포넌트들을 포함
- 사용 사례:
- 대규모 분산 에이전트 시스템 구축
- 다언어 환경에서의 에이전트 통합
- 커스텀 에이전트 런타임 개발
2. AgentChat API (autogen-agentchat
)
- 역할: 빠른 프로토타이핑을 위한 간편하고 의견이 반영된 API
- 주요 기능:
- 단순화된 에이전트 생성 및 관리
- 일반적인 다중 에이전트 패턴 지원 (2-agent chat, group chat)
- Core API 위에 구축된 고수준 추상화
- 특징: AutoGEN v0.2 사용자들에게 가장 친숙한 인터페이스
- 사용 사례:
- 교육용 에이전트 시스템
- 빠른 프로토타입 개발
- 표준적인 다중 에이전트 워크플로우
3. Extensions API (autogen-ext
)
- 역할: 프레임워크 기능을 지속적으로 확장하는 확장 시스템
- 주요 기능:
- 다양한 LLM 클라이언트 구현 (OpenAI, AzureOpenAI 등)
- 코드 실행 환경 (Docker 컨테이너 기반)
- 웹 브라우징 에이전트
- MCP(Model-Context Protocol) 서버 지원
- 특징: 퍼스트파티 및 서드파티 확장을 모두 지원하여 생태계 확장
- 주요 확장 예시:
McpWorkbench
- MCP 서버 사용을 위한 도구
OpenAIAssistantAgent
- Assistant API 활용
DockerCommandLineCodeExecutor
- 안전한 코드 실행 환경
GrpcWorkerAgentRuntime
- 분산 에이전트를 위한 런타임
개발자 도구 영역 (Developer Tools)
개발자들이 효율적으로 에이전트 시스템을 구축하고 평가할 수 있도록 지원하는 도구들:
1. AutoGen Studio (autogen-studio
)

- 역할: 노코드 GUI 환경으로 다중 에이전트 애플리케이션 구축
- 주요 기능:
- 드래그 앤 드롭 인터페이스로 에이전트 워크플로우 설계
- 실시간 에이전트 대화 모니터링
- 다양한 에이전트 템플릿 제공
- 웹 기반 사용자 인터페이스
- 사용자 대상:
- 비개발자 및 비즈니스 사용자
- 빠른 프로토타이핑이 필요한 개발자
- 교육 및 데모 목적
2. AutoGen Bench (agbench
)
- 역할: 에이전트 성능 평가를 위한 벤치마킹 도구
- 주요 기능:
- 표준화된 성능 측정 메트릭
- 다양한 태스크에 대한 벤치마크 스위트
- 에이전트 간 성능 비교
- 자동화된 평가 파이프라인
- 사용자 대상:
- 에이전트 성능을 측정하고 개선하려는 개발자
- 연구자 및 학술 기관
- 프로덕션 배포 전 품질 검증이 필요한 팀
애플리케이션 영역 (Applications)
프레임워크와 개발자 도구를 활용하여 구축된 실제 사용 가능한 애플리케이션들:
Magentic-One (magentic-one-cli
)
- 역할: 최신 기술이 적용된 다중 에이전트 팀의 참조 구현
- 주요 기능:
- 웹 브라우징 자동화
- 코드 실행 및 파일 처리
- 복잡한 멀티모달 태스크 수행
- 기술적 구성:
- AgentChat API를 기반으로 구축
- Extensions API의 다양한 확장 활용
- 실제 업무 환경에서 사용 가능한 수준의 완성도
커스텀 도메인 애플리케이션
AutoGEN 프레임워크를 활용하여 다양한 도메인별 애플리케이션을 개발할 수 있습니다:
- 금융: 자동화된 투자 분석 및 리포트 생성
- 의료: 의료 데이터 분석 및 진단 보조 시스템
- 교육: 개인화된 학습 코치 및 평가 시스템
- 연구: 자동화된 문헌 검토 및 실험 설계
계층 간 상호작용 및 확장성
상향식 확장 (Bottom-up Scalability)
Core API → AgentChat API → Extensions API → Developer Tools → Applications
각 계층은 하위 계층 위에 구축되어 기능을 확장하며, 개발자는 필요한 수준에서 진입할 수 있습니다.
유연한 진입점
- 초보자: AutoGen Studio로 시작하여 노코드 환경에서 학습
- 일반 개발자: AgentChat API로 표준적인 에이전트 시스템 구축
- 고급 개발자: Core API를 활용하여 완전히 커스텀화된 시스템 개발
- 연구자: AutoGen Bench와 Core API를 결합하여 새로운 알고리즘 연구
생태계의 확장성
AutoGEN의 3계층 구조는 지속적인 생태계 성장을 가능하게 합니다:
- 커뮤니티 기여: Extensions API를 통한 새로운 확장 개발
- 상업적 활용: 프레임워크 기반의 엔터프라이즈 솔루션 구축
- 학술 연구: Core API를 활용한 새로운 다중 에이전트 알고리즘 연구
다중 에이전트 대화 시스템
AutoGEN의 가장 혁신적인 특징은 AgentCHAT API에서 사용할 수 있는 다중 에이전트 대화 프레임워크입니다. 이는 여러 AI 에이전트가 서로 소통하며 협력하여 문제를 해결하는 시스템을 의미합니다. 각 에이전트는 고유한 역할과 전문성을 가지고 있으며, 필요에 따라 서로 정보를 교환하고 작업을 위임합니다.
예를 들어, 소프트웨어 개발 프로젝트에서 한 에이전트는 코드 작성을, 다른 에이전트는 코드 검토를, 또 다른 에이전트는 테스트를 담당할 수 있습니다. 이러한 분업과 협력은 인간 개발팀의 작업 방식을 모방한 것으로, 더욱 효율적이고 정확한 결과를 만들어냅니다.
사용자 지정 가능한 에이전트
AutoGEN Framework에서는 세 가지 주요 에이전트 유형을 제공합니다:
AssistantAgent (보조 에이전트): 주로 작업 실행을 담당하며, 코드 생성, 문제 해결, 복잡한 질문에 대한 답변을 제공합니다. 대규모 언어 모델(LLM)을 활용하여 특정 도메인이나 작업에 맞게 전문화될 수 있습니다.
UserProxyAgent (사용자 대리 에이전트): 인간 사용자와 AI 시스템 사이의 다리 역할을 합니다. 사용자의 입력을 받아 다른 에이전트들에게 전달하고, 필요시 사람의 피드백을 시스템에 반영합니다.
ConversableAgent (대화 가능 에이전트): 다른 에이전트들과 대화할 수 있는 가장 기본적인 형태의 에이전트로, 설정에 따라 인간이 직접 응답할 수도 있습니다.
실제 구현 사례
간단한 두 에이전트 대화
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
async def main() -> None:
model_client = OpenAIChatCompletionClient(model="gpt-4o")
agent = AssistantAgent("assistant", model_client=model_client)
print(await agent.run(task="Say 'Hello World!'"))
await model_client.close()
asyncio.run(main())
웹 브라우징 팀 구성
AutoGEN의 진정한 힘은 여러 에이전트가 팀을 이루어 복잡한 작업을 수행할 때 드러납니다:
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.agents.web_surfer import MultimodalWebSurfer
# 웹 서핑 에이전트와 사용자 프록시 에이전트로 구성된 팀
web_surfer = MultimodalWebSurfer("web_surfer", model_client)
user_proxy = UserProxyAgent("user_proxy")
team = RoundRobinGroupChat([web_surfer, user_proxy])
시나리오 예제
다양한 시나리오의 예시는 아래의 링크를 참고하세요.
https://microsoft.github.io/autogen/0.2/docs/Examples/#automated-multi-agent-chat
AutoGEN의 핵심 장점
1. 복잡한 워크플로우 단순화
AutoGEN은 복잡한 LLM 작업을 여러 관리 가능한 구성 요소로 나누어 처리합니다. 이를 통해 컴퓨팅 리소스를 더욱 효율적으로 사용하고, 단일 LLM으로는 해결하기 어려운 복잡한 문제들을 효과적으로 해결할 수 있습니다.
2. 코드 실행 및 생성 기능
AutoGEN의 독특한 특징 중 하나는 코드를 생성하고 실시간으로 실행할 수 있다는 점입니다. 에이전트가 코드를 작성하면 즉시 테스트하고 결과를 확인하여 필요시 수정하는 과정을 자동화할 수 있습니다.
3. Human-in-the-loop 기능
완전 자동화부터 사람의 적극적인 개입까지, AutoGEN은 다양한 수준의 인간 참여를 지원합니다. 중요한 의사결정 시점에서 사람의 판단을 받거나, 실시간으로 피드백을 제공받을 수 있어 더욱 신뢰성 높은 결과를 얻을 수 있습니다.
4. 확장성과 유연성
AutoGEN은 특정 LLM 제공업체에 종속되지 않으며, 다양한 모델을 혼합하여 사용할 수 있습니다. 또한 새로운 에이전트 유형을 쉽게 추가하고 시스템을 확장할 수 있어 다양한 비즈니스 요구사항에 맞춤형 솔루션을 구축할 수 있습니다.
실제 활용 분야
소프트웨어 개발
개발팀에서 AutoGEN을 활용하면 한 에이전트가 요구사항을 분석하고, 다른 에이전트가 코드를 생성하며, 또 다른 에이전트가 테스트 코드를 작성하는 완전한 개발 파이프라인을 구축할 수 있습니다. 이는 개발 속도를 크게 향상시키고 버그를 줄이는 효과를 가져옵니다.
데이터 분석 및 연구
대용량 데이터를 처리할 때 한 에이전트는 데이터 전처리를, 다른 에이전트는 통계 분석을, 또 다른 에이전트는 시각화를 담당하여 포괄적인 분석 결과를 제공할 수 있습니다.
고객 서비스
고객 문의 처리에서 자연어 이해 에이전트, 지식 기반 검색 에이전트, 응답 생성 에이전트가 협력하여 더욱 정확하고 맞춤형인 고객 서비스를 제공할 수 있습니다.
주의사항과 비용 고려
AutoGEN을 사용할 때 주의해야 할 점은 비용 관리입니다. 여러 에이전트가 동시에 대화하며 작업을 수행하다 보면 API 호출량이 급격히 증가할 수 있습니다. 특히 GPT-4와 같은 고성능 모델을 사용할 때는 더욱 주의가 필요합니다.
이를 해결하기 위해 로컬 모델과 함께 사용하거나, max_turns
설정을 통해 대화 횟수를 제한하는 방법을 권장합니다.
미래 전망
AutoGEN의 3계층 아키텍처는 단순한 프레임워크를 넘어 완전한 생태계를 제공합니다. 프레임워크 영역에서 제공하는 견고한 기술적 기반, 개발자 도구 영역의 생산성 향상 도구, 그리고 애플리케이션 영역의 실용적인 솔루션이 유기적으로 결합되어 있습니다.
이러한 계층화된 설계는 사용자의 기술 수준과 요구사항에 맞는 적절한 진입점을 제공하며, 동시에 시스템이 성장함에 따라 더 복잡하고 정교한 기능으로 확장할 수 있는 경로를 제시합니다.
AutoGEN은 AI 에이전트 개발의 새로운 패러다임을 제시합니다. 단일 AI의 한계를 뛰어넘어 여러 전문화된 에이전트가 협력하는 시스템은 더욱 복잡하고 현실적인 문제들을 해결할 수 있게 해줍니다.
앞으로 AutoGEN과 같은 다중 에이전트 시스템은 기업의 업무 자동화, 복잡한 연구 프로젝트, 창의적 콘텐츠 제작 등 다양한 분야에서 혁신을 이끌어낼 것으로 예상됩니다.
결론
AutoGEN은 AI의 미래를 보여주는 혁신적인 프레임워크입니다. 여러 AI 에이전트가 마치 인간 팀처럼 협력하여 문제를 해결하는 모습은 우리가 꿈꿔왔던 진정한 AI 협업의 실현입니다.
아직 초기 단계이지만, AutoGEN이 제시하는 다중 에이전트 협업의 가능성은 무궁무진합니다. 개발자든 비개발자든, 복잡한 문제 해결이 필요한 모든 분야에서 AutoGEN은 강력한 도구가 될 것입니다.
지금이야말로 AutoGEN을 탐험하고 여러분만의 AI 에이전트 팀을 구성해볼 때입니다. 미래의 AI 협업, 그 시작은 바로 여러분의 손에 달려 있습니다.
이러한 프레임워크를 이용한 실제 어플리케이션 구축사례 중에서 재미있는 것이 있어서 한번 소개해보려고 합니다. Magnetic-ONE을 이용한 Magnetic-UI입니다. 관심 있으신 분들은 미리 한번 방문해보시는 것도 추천드립니다. https://www.microsoft.com/en-us/research/blog/magentic-ui-an-experimental-human-centered-web-agent/
참고 링크:
https://github.com/microsoft/autogen
(구버전 링크 ) : https://microsoft.github.io/autogen/0.2/docs/Getting-Started
답글 남기기