4장 AutoGen Studio를 활용한 멀티 에이전트 시스템 개요
개요
멀티 에이전트 시스템은 여러 개의 AI 에이전트가 서로 협력·비판·평가를 주고받으며 문제를 해결하는 구조를 말하며, 단일 에이전트보다 더 복잡하고 정교한 작업을 수행할 수 있도록 설계된다. 특히 에이전트들끼리 내부 피드백과 평가를 반복하면서 스스로 결과를 개선해 나간다는 점이 큰 특징이다.

이 글에서는 Microsoft의 AutoGen 및 AutoGen Studio를 중심으로 멀티 에이전트 시스템의 기본 개념과 작동 방식, 그리고 CrewAI처럼 다른 멀티 에이전트 플랫폼과의 방향성 차이를 함께 살펴본다. 이어서 AutoGen의 대화·통신 패턴, UserProxy와 Assistant 에이전트의 협업 루프 구조, 그리고 AutoGen Studio를 설치하고 실행하는 기본 절차까지 정리하여, 실제로 멀티 에이전트 시스템을 실험해 보고 싶은 사용자가 바로 활용할 수 있도록 돕는다.
멀티 에이전트 시스템의 개념과 장점
멀티 에이전트 시스템은 말 그대로 여러 개의 에이전트(Agent)가 하나의 환경에서 상호작용하며 목표를 달성하는 시스템이다. 여기서 에이전트는 주어진 목표를 달성하기 위해 정보를 수집하고, 추론하고, 행동을 계획·실행하는 지능형 구성 요소를 의미한다.
단일 에이전트 시스템은 하나의 모델이 모든 역할을 떠맡기 때문에, 자체 검증이나 비판이 부족하고, 복잡한 문제를 단계적으로 쪼개서 해결하는 능력이 제한되기 쉽다. 반면 멀티 에이전트 시스템에서는 서로 다른 역할을 가진 에이전트들이 결과를 교차 검증하거나, 동료 에이전트의 답을 비판하고 보완하는 식으로 작동한다. 이 과정에서 일종의 "내부 리뷰"가 자동으로 반복되면서 최종 결과의 품질이 높아진다.
특히 멀티 에이전트 시스템은 "외부 피드백 없이도 내부에서 피드백과 평가를 생성할 수 있다"는 점이 중요한 장점이다. 한 에이전트가 생성한 코드·문서·아이디어를 다른 에이전트가 평가하고 개선하는 구조를 통해, 사람이 일일이 중간 결과를 검토하지 않아도 일정 수준의 자기 수정과 보완이 이루어진다. 물론 인간의 최종 검토가 완전히 불필요해지는 것은 아니지만, 사람이 개입해야 하는 지점과 빈도를 크게 줄여 준다는 점에서 생산성 향상 효과가 크다.
AutoGen과 CrewAI: 멀티 에이전트 플랫폼의 비교 방향
AutoGen은 Microsoft에서 개발한 멀티 에이전트 프레임워크로, 여러 에이전트가 자연어 기반 대화를 통해 협력하면서 문제를 해결하도록 설계된 플랫폼이다. 특히 AutoGen은 프레임워크와 함께 AutoGen Studio라는 도구를 제공하여, 코드 작성에 익숙하지 않은 사람도 비교적 쉽게 멀티 에이전트 시스템을 실험해 볼 수 있게 한다.
이에 비해 CrewAI는 "엔터프라이즈 에이전트 시스템"을 표방하며, 역할 기반(role-based) 에이전트와 자율형(autonomous) 에이전트를 함께 구성하는 방식에 초점을 맞춘다. CrewAI에서는 여러 에이전트가 '크루(crew)'라는 팀 단위로 묶여 있고, 태스크가 순차적으로 흐르거나 계층 구조로 분해·할당되는 태스크 관리 패턴이 강조된다.
정리하면 AutoGen은 "대화형 멀티 에이전트"라는 특성에 집중해 자연어 대화와 프록시 구조를 명확히 보여 주는 플랫폼이고, CrewAI는 역할 분담과 태스크 오케스트레이션(순차·계층·병렬 등)의 유연성에 초점을 둔 플랫폼이라고 볼 수 있다. 두 플랫폼 모두 멀티 에이전트의 장점을 활용하려 하지만, AutoGen은 대화 패턴과 프록시 기반 협업을, CrewAI는 조직 구조와 태스크 플로우 설계를 강조한다는 점에서 접근 방향이 다르다.
AutoGen Studio의 역할과 특징
AutoGen Studio는 AutoGen 팀에서 제공하는 그래픽 기반 도구로, 사용자가 브라우저에서 멀티 에이전트 시스템을 직접 실행하고 실험해 볼 수 있게 해 준다. 내부적으로는 여러 에이전트가 동작하지만 사용자는 주로 "채팅 인터페이스"를 통해 에이전트와 상호작용한다.
사용자는 자연어로 "이런 코드를 작성해 달라", "이런 그래프를 그려 달라" 같은 복합적인 작업을 요청할 수 있으며, AutoGen Studio는 여러 에이전트를 조직해 해당 작업을 수행하게 만든다. 예를 들어 코드 작성에 특화된 Assistant 에이전트와, 실행·검증을 담당하는 UserProxy 에이전트가 협력하면서 코드를 생성·실행·검토하는 식이다.
또한 AutoGen Studio의 Build 탭에서는 모델 설정, 에이전트 구성, 워크플로우 설계, 그리고 "스킬(skill)/툴(tool)/액션(action)"이라 불리는 실행 가능한 기능을 추가할 수 있다. 이를 통해 단순 대화형 챗봇이 아니라, 실제로 코드를 실행하거나 API를 호출하고, 이미지 생성·분석 같은 복합 작업을 수행하는 실험 환경을 구축할 수 있다.
AutoGen의 대화 및 통신 패턴
AutoGen의 핵심은 "대화(conversation)를 통한 멀티 에이전트 협업"이다. 에이전트들은 서로 메시지를 주고받으며 자연어로 상호작용하는데, 이때 여러 가지 통신 패턴이 사용된다. 대표적으로 그룹(Group) 패턴, 계층(Hierarchical) 패턴, 프록시(Proxy) 패턴을 들 수 있다.
그룹 패턴은 여러 에이전트가 거의 동등한 위치에서 하나의 대화방에 참여하는 방식이다. 각 에이전트는 자신의 역할과 규칙에 따라 발언하고, 다른 에이전트의 발언을 참고하며 협력한다. 계층 패턴은 상위 에이전트가 하위 에이전트에게 작업을 분배하고, 하위 에이전트가 작업 결과를 상위에게 보고하는 구조로, 프로젝트 매니저와 팀원 관계에 비유할 수 있다.
프록시 패턴은 AutoGen에서 특히 많이 사용되는 구조로, 하나의 에이전트가 "프록시(중개자)" 역할을 맡아 다른 에이전트들과의 통신을 대신 관리한다. 프록시는 인간 사용자와 여러 내부 에이전트 사이에 서서 요청을 분해하고 적절한 에이전트에게 전달하며, 결과를 수집해 다시 사용자에게 전달한다. 이때 프록시는 단순 전달자에 그치지 않고, 결과를 평가하고 다시 수정을 요청하는 역할까지 수행할 수 있다.
프록시 에이전트는 식당의 "웨이터"에 자주 비유된다. 사용자가 주문을 하면 웨이터가 주문 내용을 주방에 전달하고, 주방에서 음식을 만들면 다시 손님에게 가져다주는 것처럼, 프록시 에이전트는 사용자의 요청을 적절한 작업 에이전트에게 전달하고 생성된 결과를 검토한 뒤 사용자에게 반환한다. 이렇게 하면 사용자는 여러 에이전트와 개별적으로 대화할 필요 없이 프록시 하나만 상대하면 되기 때문에, 시스템 구조가 단순해지면서도 내부적으로는 풍부한 협력이 가능해진다.
UserProxy와 Assistant 에이전트의 협업 루프
AutoGen에서 가장 기본적인 구조는 UserProxy 에이전트와 하나 이상의 Assistant 에이전트가 협업하는 패턴이다. UserProxy는 인간 사용자를 대신해 에이전트 세계 안에서 발언하고 행동하는 "대리인" 역할을 맡으며, Assistant는 실제로 코드를 작성하거나 정보를 생성하는 작업 에이전트 역할을 수행한다.
협업 흐름은 대략 다음과 같이 반복된다. 먼저 사용자가 AutoGen Studio의 채팅 창에 작업을 요청하면, 이 요청은 UserProxy 에이전트의 명령으로 변환된다. UserProxy는 이 명령을 Assistant 에이전트에게 전달하고, Assistant는 명령을 수행하기 위한 코드나 답변을 생성한다. 생성된 코드나 결과는 다시 UserProxy에게 돌아오고, UserProxy는 이것을 실행해 보거나 결과를 검토하면서 "충분히 잘 됐는지", "오류가 있는지"를 평가한다.
만약 결과가 만족스럽지 않으면 UserProxy는 Assistant에게 "이 부분을 수정해 달라", "다른 방법을 시도해 달라"는 식으로 피드백을 보내고, Assistant는 다시 개선된 답을 제시한다. 이 "생성 → 실행/검증 → 피드백 → 재생성" 루프가 여러 번 반복되다가, UserProxy가 결과에 만족하면 작업이 완료된다.
이 구조의 중요한 의미는, UserProxy가 어느 정도 '인간의 피드백 역할'을 대신해 준다는 데 있다. 사람이 매번 코드를 실행하고 에러 로그를 분석해서 모델에게 다시 설명하는 대신, UserProxy가 자동으로 오류를 감지하고 재시도를 요청할 수 있다. 그 결과 사용자는 모든 세부 단계에 개입하지 않고도 비교적 완성도 높은 산출물을 얻을 수 있고, 그 사이에 다른 일을 하거나 단지 결과만 확인하면 된다. 물론 최종 품질 보증 차원의 인간 검토는 여전히 필요하지만, 반복적인 디버깅과 세부 조정의 상당 부분을 자동화할 수 있다는 점에서 큰 효율성을 제공한다.
AutoGen Studio에서 스킬과 액션 추가하기
AutoGen Studio는 기본적으로 웹 콘텐츠를 가져오거나 이미지를 생성하는 기초적인 도구를 제공하지만, 실제 현업이나 복잡한 실험에서는 에이전트에게 보다 다양한 "능력"을 부여해야 한다. 여기서 말하는 능력이 바로 스킬(skill), 툴(tool), 액션(action)으로, 결국 "에이전트가 호출해서 실행할 수 있는 코드 조각"이라고 이해하면 된다.
여러 에이전트 시스템에서 흔히 사용하는 패턴은 "에이전트에게 코드를 직접 쓰게 해서 목표를 달성하게 하는 것"이다. 하지만 이런 방식은 작성된 코드가 금방 깨지거나 라이브러리 버전 차이로 작동하지 않는 경우가 많고, 지속적인 유지보수가 필요하다는 단점이 있다. 반면 사람이 작성해 놓은 신뢰할 수 있는 스킬/툴을 에이전트가 호출하도록 설계하면, 환경 변화에 맞춰 코드를 업데이트하는 책임은 인간 개발자가 명확히 지고, 에이전트는 검증된 도구를 조합하는 역할에 집중할 수 있다.
예를 들어 AutoGen Studio에서 OpenAI 비전 모델을 활용해 이미지를 분석하는 스킬을 추가하고 싶다면, Build 탭의 Skills 메뉴에서 "New Skill" 버튼을 눌러 새로운 파이썬 함수를 정의할 수 있다. 이 함수는 이미지 파일을 base64로 인코딩한 뒤 OpenAI 비전 API에 요청을 보내고, "이 이미지에 무엇이 있는지 설명해 달라"는 프롬프트를 전달해 설명을 받아오는 식으로 구성할 수 있다. 이렇게 만들어진 스킬을 에이전트에 연결하면, UserProxy가 Assistant에게 "이미지를 생성하라"고 지시한 뒤, 다시 이 스킬을 통해 생성된 이미지를 분석·검증해 "요청한 내용이 제대로 반영됐는지"까지 자동으로 확인하게 만들 수 있다.
이처럼 스킬과 액션을 적절히 설계하면, 멀티 에이전트 시스템은 단순 텍스트 생성기를 넘어 "실제 환경에서 작업을 수행하고, 그 결과를 다시 평가할 수 있는" 실행 가능한 지능형 시스템으로 확장된다.
AutoGen Studio 설치 및 실행 방법
AutoGen Studio를 실험하려면 먼저 파이썬 환경과 필요한 라이브러리를 설치해야 한다. 일반적인 권장 방식은 프로젝트 폴더(예: chapter_04)를 VS Code에서 연 다음, 해당 폴더 안에 파이썬 가상환경(virtualenv, venv 등)을 생성하고, 제공된 requirements.txt 파일을 이용해 필요한 패키지를 설치하는 것이다. 이렇게 하면 AutoGen 관련 라이브러리가 시스템 전체에 영향을 주지 않고, 프로젝트별로 독립된 환경을 유지할 수 있다.
가상환경을 활성화한 뒤 VS Code에서 터미널(단축키 Ctrl+ 또는 Cmd+)을 열고, 먼저 OpenAI API 키를 환경 변수로 설정해야 한다. Bash(Git Bash 등)를 사용하는 경우에는 export OPENAI_API_KEY="<여기에_본인_API_키>" 형식으로, PowerShell을 사용하는 경우에는 $env:OPENAI_API_KEY="<여기에_본인_API_키>"처럼 설정한다. 운영체제나 셸에 따라 명령어가 다르므로, 자신이 사용하는 터미널에 맞는 방식으로 환경 변수를 지정해야 한다.
환경 변수를 설정했다면, 같은 터미널에서 autogenstudio ui --port 8081 명령을 실행해 AutoGen Studio를 띄울 수 있다. 기본 예시에서는 8081 포트를 사용하지만, 8080이나 8081처럼 자주 쓰이는 포트가 이미 다른 서비스에서 사용 중일 경우에는 --port 8082처럼 다른 포트 번호를 지정하면 된다. 명령 실행 후 브라우저에서 http://localhost:8081(또는 지정한 포트)에 접속하면 AutoGen Studio의 웹 인터페이스가 나타난다.
인터페이스에 접속하면 기본적으로 채팅 창이 중심에 있는 화면을 보게 된다. 여기에 "코드 작성과 데이터 시각화가 동시에 필요한 복합적인 작업"을 입력하면, 내부의 에이전트들이 협력해 작업을 수행한다. 예를 들어 "구글 검색에서 'GPT Agents'라는 키워드의 시간에 따른 검색 인기도를 보여 주는 그래프를 만들어 달라"처럼 구체적인 요청을 하면, Assistant 에이전트가 데이터 수집·처리·그래프 생성에 필요한 코드를 만들고, UserProxy가 해당 코드를 실행해 실제 그래프를 생성해 본 뒤 결과를 평가한다.
실행 과정에서 패키지 버전 문제나 폐기된 라이브러리 사용 등으로 오류가 발생할 수 있는데, 이 경우 UserProxy에게 "다른 라이브러리를 사용해 보라"거나 "다른 접근 방식을 시도해 보라"고 요청할 수 있다. 또한 보안과 환경 안정성을 위해 AutoGen과 AutoGen Studio를 Docker로 실행하는 것도 권장되는데, 이는 에이전트가 실행하는 코드가 운영체제에 미칠 수 있는 영향을 일정 부분 격리할 수 있다는 장점이 있다.
마무리
AutoGen Studio는 멀티 에이전트 시스템의 핵심 아이디어인 "여러 에이전트의 협업을 통한 자기 평가와 개선"을 매우 직관적인 방식으로 경험하게 해 주는 도구다. UserProxy와 Assistant의 반복 협업 루프, 프록시 기반 통신 패턴, 스킬/액션 확장을 통해, 단순 대화형 AI를 넘어 실제 작업을 자동화하고 검증하는 시스템을 구성할 수 있다.
CrewAI와 같은 다른 플랫폼은 역할 기반·자율형 에이전트와 계층적 태스크 관리에 초점을 맞추며, 멀티 에이전트 시스템의 또 다른 발전 방향을 보여 준다. AutoGen Studio를 통해 멀티 에이전트 개념과 패턴을 익힌 뒤, 필요에 따라 CrewAI와 같은 도구로 확장해 나가면, 점점 복잡하고 현실적인 문제를 에이전트 협업으로 해결하는 실전적인 시스템을 설계할 수 있을 것이다.

