본문 바로가기
AI 도구

🤖Magentic-One: 마이크로소프트의 최신 멀티 에이전트 시스템

by James AI Explorer 2024. 11. 12.
    728x90

    안녕하세요! 오늘은 마이크로소프트의 최신 에이전트 시스템, Magentic-One에 대해 알아보겠습니다. Magentic-One은 다양한 복잡한 작업을 해결하기 위해 설계된 범용 멀티 에이전트 시스템으로, Orchestrator라는 리드 에이전트와 웹 브라우징, 파일 처리, 코드 실행과 같은 특정 작업을 전문으로 하는 여러 특수 에이전트로 구성됩니다. Magentic-One은 모듈식 설계로 에이전트 추가 및 제거가 쉽고, 유연성 덕분에 다양한 환경에 적응하며, 벤치마크에서 높은 성능을 자랑합니다. 이 블로그에서는 Magentic-One 개요와 특징, 주요기능 및 설치방법에 대해 알아보고, 직접 테스트를 해보겠습니다. 

    https://github.com/microsoft/autogen/tree/main/python/packages/autogen-magentic-one

     

    autogen/python/packages/autogen-magentic-one at main · microsoft/autogen

    A programming framework for agentic AI 🤖. Contribute to microsoft/autogen development by creating an account on GitHub.

    github.com

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    Magentic-One 개요 및 동작원리

    Magentic-One은 복잡한 작업을 자율적으로 완료하기 위한 범용 멀티 에이전트 시스템입니다. 이 시스템은 웹 브라우징, 파일 처리, 코드 작성 및 실행과 같은 특정 작업을 전문으로 하는 여러 에이전트로 구성된 팀을 활용합니다. 팀의 작업은 Orchestrator 에이전트에 의해 조정되는데, 오케스트레이터 에이전트는 작업 분해 및 계획, 하위 작업 실행 시 다른 에이전트 지시, 전체 진행 상황 추적, 필요에 따른 수정 조치를 담당합니다. 

    Magentic-One 동작원리

    위 개념도에 나타난 Magentic-One의 구성요소와 동작원리는 다음과 같습니다. 

    1. Task Orchestration: 사용자가 주어진 Task를 수행하기 위해 오케스트레이터가 작업의 흐름을 관리합니다.

    2. Task Ledger와 Progress Ledger:

    • Task Ledger: 작업 계획을 세우고, 필요한 정보나 사실을 업데이트합니다. 여기에는 주어진 정보, 검색해야 할 정보, 계산이나 논리를 통해 도출할 사실, 추정 등이 포함됩니다.
    • Progress Ledger: 작업의 진행 상황을 기록하고 업데이트합니다. 작업이 완료되었는지, 비생산적인 반복이 있는지, 진전이 이루어졌는지, 다음 작업을 수행할 에이전트가 누구인지 등을 관리합니다.

    3. 에이전트의 역할: 오케스트레이터의 지시에 따라 Coder, ComputerTerminal, WebSurfer, FileSurfer와 같은 에이전트들이 활동합니다. 각 에이전트는 특정한 작업을 담당합니다.

    • Coder: 코드를 작성하고 논리적 문제를 해결합니다.
    • ComputerTerminal: Coder가 작성한 코드를 실행합니다.
    • WebSurfer: 웹을 탐색하고 필요한 정보를 검색하거나 폼을 작성합니다.
    • FileSurfer: PDF, PPTX, WAV 파일 등 다양한 파일을 탐색하고 정보를 수집합니다.

    4. 진행 및 완료 판단: 작업이 완료되었는지, 또는 진전이 이루어졌는지를 반복적으로 확인합니다. 진전이 이루어지지 않으면, 특정 횟수 이상 반복 후에는 Task Ledger를 업데이트하여 새로운 접근을 시도합니다. 작업이 완료되면 Task Complete 상태로 보고됩니다. 이 과정을 통해, Magentic-One은 복잡한 작업을 체계적으로 관리하며 다양한 에이전트를 활용해 효율적으로 문제를 해결합니다.

    728x90

    Magentic-One 특징 및 주요 기능

    Magentic-One은 멀티 에이전트 구조와 오케스트레이터 에이전트를 통해 기존 에이전트 시스템과 차별화됩니다. 이는 단순히 성능을 넘어 개발 용이성, 비용 절감, 성능 향상 측면에서 많은 이점을 제공합니다.

    • 모듈식 설계: 각 에이전트는 특정 기능에 특화되어 있어 개발 및 재사용이 간편합니다. 필요에 따라 에이전트를 추가하거나 제거하여 시스템을 유연하게 확장할 수 있으며, 각 에이전트에 최적화된 언어 모델 및 도구를 사용하여 효율성을 높일 수 있습니다.
    • 다양한 모델 및 도구 활용: Magentic-One은 각 에이전트의 특성에 맞게 GPT-4o, o1-preview와 같은 다양한 언어 모델을 혼합하여 사용합니다. 또한 웹 브라우저, 파일 브라우저, 코드 실행 환경과 같은 다양한 도구를 활용하여 복잡한 작업을 처리합니다.
    • 오케스트레이터의 중앙 제어: 오케스트레이터는 Task Ledger와 Progress Ledger를 사용하여 작업 계획, 진행 상황, 오류 처리를 관리하며, 각 에이전트에게 작업을 할당하고 조정합니다. 이러한 중앙 제어 방식은 멀티 에이전트 시스템의 효율성을 높이고 복잡한 작업 흐름을 효과적으로 관리할 수 있도록 합니다.
    • 기능 중심 에이전트: Magentic-One은 웹 브라우징, 파일 처리, 코드 작성과 같은 기능 중심 에이전트를 사용합니다. 이는 역할 기반 에이전트에 비해 책임 분담이 명확하고 재사용성이 뛰어나다는 장점이 있습니다.

    GAIA(Generalized Agent Interaction and Adaptation) 벤치마크 작업을 수행하는 Magentic-One 동작 개념도

    오케스트레이터  에이전트는 두 개의 구조화된 원장을 사용하여 작업을 지시하고, 진행 상황을 추적하고, 오류를 복구하고, 어떤 에이전트가 다음 작업을 수행해야 할지 결정합니다. 전체 계획, 사실, 추측이 포함된 작업 원장을 관리하는 외부 루프와 개별 단계를 지시하고 평가하는 진행 상황 원장을 관리하는 내부 루프의 두 가지 루프를 구현합니다. 

    • 외부 루프: 오케스트레이터는 작업 원장을 만들어 작업 기간 동안 단기 메모리 역할을 합니다. 작업 원장에는 주어진 사실이나 확인된 사실, 조회해야 할 사실(예: 웹 검색을 통해), 도출해야 할 사실(예: 프로그래밍 방식으로 또는 추론을 통해), 추측이 포함되며, 작업 원장의 내용과 각 팀 구성원의 설명을 사용하여 단계별 계획을 고안합니다.
    • 내부 루프: 오케스트레이터는 작업 진행을 추적하고, 팀의 반복 작업, 진행 여부, 다음 실행 에이전트 등을 평가하며, 정체 카운터가 임계값(≤2)을 넘으면 외부 루프를 통해 문제를 파악하고 계획을 수정해 작업을 이어갑니다.

    Magentic-One은 기존 시스템의 장점을 계승하고 발전시키면서 최신 기술들을 적극적으로 도입하여 차별화된 시스템을 구축했습니다. 완전히 새로운 개념을 제시했다기보다는 기존 개념들을 효율적으로 조합하고 최신 기술을 활용하여 더욱 발전된 형태의 멀티 에이전트 시스템을 구현했다고 평가할 수 있습니다.

     

    Magentic-One 설치 방법

    Magentic-One 설치 방법은 다음과 같습니다. 

    • 먼저, microsoft/autogen 깃허브 저장소를 복제 합니다.
    • 그런 다음, autogen/python/packages/autogen-magentic-one 디렉토리로 이동합니다.
    • pip install -e . 명령어를 사용하여 패키지를 설치합니다.
    git clone https://github.com/microsoft/autogen.git
    cd autogen/python/packages/autogen-magentic-one
    pip install -e .

    magentic-one 깃허브 저장소 복제

    다음은 환경 설정을 위한 추가 작업이 필요합니다.

    • OpenAI 챗 완료 클라이언트에 대한 환경 변수를 구성해야 합니다.
    export CHAT_COMPLETION_PROVIDER='openai'
    export CHAT_COMPLETION_KWARGS_JSON='{
      "api_key": "",
      "model": "gpt-4o-mini" # Magentic-One은 현재 OpenAI의 GPT-4o만 지원한다고 설명되있는데 GPT-4o-mini 모델로 대체할 수 있습니다.
    }'
    • Magentic-One 코드는 코드 실행을 사용하기 때문에 Docker가 설치되어 있어야 합니다. 다운로드 링크에서 운영체제에 맞는 버전을 설치합니다. 
    • Magentic-One은 웹 페이지와 상호 작용하기 위해 playwright를 사용합니다. 아래 명령어로 playwright 종속성을 설치합니다. 
    playwright install --with-deps chromium

    playwright 종속성 설치

    Magentic-one 예제코드 실행

    Magentic-one 예제 코드를 실행하여 에이전트가 함께 작동하는 방식을 확인해 보겠습니다.

    • 예제 코드 실행 전, Docker가 실행 중인지 확인해야 합니다.
    • 예제 코드는 인터넷에서 파일을 다운로드하고, 코드를 실행하고, 웹 페이지와 상호 작용할 수 있으므로 안전한 환경에서 실행해야 합니다. 아래 화면을 참고해서 모듈 임포트를 위한 의존성 경로와 디렉토리 구조에 주의합니다. 

    예제 코드 실행 명령어: 예제 코드는 서로 다른 에이전트들이 함께 작업하여 작업을 자율적으로 해결하는 상호작용 환경을 설정하는 방법을 보여줍니다.

    python examples/example.py --logs_dir ./my_logs

     

    예제코드 실행 후, 제가 요청한 내용은 다음과 같습니다.

    먼저, 전자 상거래 사이트에서 제품 리뷰를 스크래핑합니다(사이트를 지정). 그런 다음 이러한 리뷰의 감정을 분석하고 결과를 요약하는 보고서를 작성합니다. 마지막으로, 보고서를 시각적 형식(막대 차트, 파이 차트)으로 제시합니다. 코드를 단계별로 준비해 주세요.

    예제 코드 실행화면

    코드를 실행하면 오케스트레이터 에이전트가 실행계획을 세웁니다. 

    오케스트레이터 계획 수립 화면

    [2024-11-12T09:44:04.07070B], 오케스트레이터 (생각):
    
    초기 계획:
    
    다음 사용자 요청을 처리하기 위해 작업하고 있습니다:
    
    복잡한 작업이 있습니다: 첫째, 전자상거래 사이트에서 제품 리뷰를 수집하고(사이트 지정), 이 리뷰들의 감성을 분석하여 결과를 요약한 보고서를 만듭니다. 마지막으로, 보고서를 시각적 형식(막대 차트, 파이 차트)으로 표현합니다. 코드를 단계별로 준비해 주세요.
    
    이 요청에 답하기 위해 다음 팀을 구성했습니다:
    
    WebSurfer: 웹 브라우저에 접근할 수 있는 도움이 되는 보조자. 웹 검색 수행, 페이지 열기, 콘텐츠와 상호작용(예: 링크 클릭, 뷰포트 스크롤, 양식 필드 작성 등)을 요청할 수 있습니다. 전체 페이지를 요약하거나 페이지 내용을 바탕으로 질문에 답할 수도 있습니다. 페이지 로딩이 오래 걸리는 경우 대기하도록 요청할 수도 있습니다.
    Coder: 강력한 언어 능력, Python 기술, Linux 명령줄 기술을 가진 도움이 되는 범용 AI 보조자.
    Executor: 코드 실행을 위한 에이전트
    file_surfer: 로컬 파일을 처리할 수 있는 에이전트.

    실행계획 검토 화면

    고려해야 할 초기 사실 자료입니다:
    
    1. 주어진 또는 확인된 사실들
    - 이 작업은 세 가지 주요 단계로 구성됩니다: 제품 리뷰 수집, 감성 분석, 결과의 시각적 표현
    - 결과 출력에는 막대 차트와 파이 차트가 모두 포함되어야 합니다.
    
    2. 조사해야 할 사실들
    - 리뷰를 수집할 특정 전자상거래 사이트를 선정해야 합니다. 아마존, 이베이 등이 후보가 될 수 있습니다.
    - VADER, TextBlob, 또는 기계학습 모델과 같은 감성 분석을 위한 도구나 라이브러리 선정
    - Matplotlib 또는 Seaborn과 같은 데이터 시각화를 위한 적절한 라이브러리 선정
    
    3. 도출해야 할 사실들
    - 리뷰를 긍정, 부정, 중립으로 분류하는 감성 점수
    - 차트로 시각화할 긍정, 부정, 중립 리뷰의 비율
    
    4. 전문적 추측
    - BeautifulSoup 또는 Scrapy와 같은 Python 라이브러리를 웹 스크래핑에 사용할 수 있습니다.
    - 감성 분석은 일반적으로 자연어 처리 도구나 라이브러리를 포함합니다.
    - 효과적인 감성 분석을 위해서는 리뷰 데이터의 정제와 전처리가 필요할 것입니다.

    실행계획 구체화

    가능한 한 따라야 할 계획입니다:
    
    - 1단계: 전자상거래 사이트 선정
    - 제품 리뷰를 수집할 특정 전자상거래 사이트를 결정합니다.
    
    - 2단계: 제품 리뷰 수집
    - WebSurfer를 활용하여 선택한 전자상거래 사이트에서 리뷰를 수집하는 방법에 대한 정보를 찾습니다(즉, 서비스 이용약관 준수 확인, BeautifulSoup 또는 Scrapy와 같은 잠재적 도구나 라이브러리 파악).
    - Coder를 사용하여 지정된 전자상거래 웹사이트에서 제품 리뷰를 수집하는 Python 코드를 작성합니다.
    
    - 3단계: 감성 분석
    - Coder를 사용하여 감성 분석에 적합한 Python 라이브러리(예: VADER, TextBlob)를 식별하고 수집된 리뷰에 대한 감성 분석을 수행하는 코드를 제공합니다.
    
    - 4단계: 감성 분석 시각화
    - Coder를 사용하여 Matplotlib 또는 Seaborn과 같은 라이브러리를 사용해 감성 분석 결과의 시각화(막대 차트와 파이 차트)를 생성하는 Python 코드를 작성합니다.
    
    - 5단계: 코드 실행
    - Executor를 사용하여 Python 코드를 실행하여 감성 분석을 수행하고 시각화를 생성합니다.
    
    - 6단계: 결과 확인 및 출력
    - file_surfer를 사용하여 출력 파일과 보고서를 검토하고, 정확성을 확인하며, 결과를 요약합니다.

    최종 생성 코드 실행 요청 화면

    에이전트가 최종으로 생성한 코드를 실행한 화면은 아래와 같습니다. 

    최종 생성코드 실행화면

    • Human-in-the-loop 모드 활성화: 이 모드는 시스템이 자동으로 처리하기 어려운 작업이 있을 때 사람의 개입을 허용하여 시스템이 더 효율적으로 작업을 수행하도록 합니다. 예를 들어, 에러 처리나 중요한 의사결정 시 사람이 판단을 내릴 수 있게 하는 방식입니다.
    python examples/example.py --logs_dir ./my_logs --hil_mode
    • 브라우저 스크린샷 저장: 이 명령어는 example.py 스크립트를 실행하면서 로그와 스크린샷을 각각 ./my_logs 폴더와 지정된 위치에 저장하게 합니다.
    python examples/example.py --logs_dir ./my_logs --save_screenshots

    브라우저 스크린샷 예제코드 실행화면

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    맺음말

    오늘은 Magentic-One주요 개념부터 설치 방법까지 다루어 보았습니다. Magentic-One은 멀티 에이전트 시스템의 발전된 형태로, 복잡한 작업을 효율적으로 처리할 수 있도록 설계되었습니다. 특히 웹 탐색, 파일 처리, 코드 실행 등에서 보여주는 높은 유연성과 성능은 그 가능성을 한층 더 높여줍니다. 다양한 에이전트들이 팀으로 협력하여 최적의 솔루션을 만들어내는 모습은 정말 인상적이었습니다.

     

    여러분도 직접 설치해 보시고, Magentic-One의 기능을 체험해 보시길 추천드립니다! Magentic-One은 멀티 에이전트 패러다임, 모듈식 설계, 적응형 워크플로우는 다양한 도메인에서 에이전트 기반 솔루션의 잠재력을 보여줍니다. Magentic-One이 우리의 생산성을 높이고 다양한 작업을 자동화하는 데 중요한 역할을 하기를 기대해 보면서 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다!

     

    https://fornewchallenge.tistory.com/

     

     

    2024.11.02 - [AI 도구] - 🤖n8n: 깃허브 48k 스타의 노코드 AI 에이전트 자동화 도구 설치 및 활용 가이드

     

    🤖n8n: 깃허브 48k 스타의 노코드 AI 에이전트 자동화 도구 설치 및 활용 가이드

    안녕하세요! 오늘은 오픈소스 AI 에이전트 자동화 도구인 n8n을 소개드리려고 합니다. n8n은 GitHub에서 48k 이상의 별을 받은 인기 프로젝트로, Gmail, Google Sheets, Telegram, Notion 등 200개 이상의 다양한

    fornewchallenge.tistory.com

    728x90