https://github.com/microsoft/autogen/tree/main/python/packages/autogen-magentic-one
우리는 다양한 도메인에서 개방형 웹 및 파일 기반 작업을 해결할 수 있는 새로운 범용 멀티 에이전트 시스템인 Magentic-One을 소개합니다. Magentic-One은 사람들이 직장과 개인 생활에서 마주하는 작업을 완료할 수 있는 에이전트를 개발하는 데 중요한 단계입니다. 또한, Microsoft AutoGen에서 Magentic-One의 오픈 소스 구현을 공개하고 있으며, 이는 멀티 에이전트 애플리케이션을 개발하는 데 널리 사용되는 오픈 소스 프레임워크입니다.
AI의 미래는 에이전트에 있습니다. AI 시스템은 대화하는 것에서 일을 완료하는 단계로 진화하고 있으며, 여기서 AI의 가치는 더욱 빛날 것으로 기대됩니다. 이는 생성형 AI가 저녁 메뉴를 추천하는 것과 자율적으로 주문을 넣고 배달을 정리할 수 있는 에이전트형 비서의 차이입니다. 또한, 연구 논문을 요약하는 것을 넘어, 관련 연구를 포괄적인 문헌 검토에서 적극적으로 검색하고 조직하는 방식으로 전환됩니다.
현대의 AI 에이전트는 우리를 대신해 인식하고, 추론하며, 행동할 수 있으며, 소프트웨어 엔지니어링, 데이터 분석, 과학 연구, 웹 탐색 등에서 놀라운 성과를 보여주고 있습니다. 그러나 우리의 생산성을 향상하고 삶을 변화시킬 수 있는 에이전트 시스템의 오랜 비전을 완전히 실현하기 위해서는 범용 에이전트 시스템의 진보가 필요합니다. 이러한 시스템은 사람들이 일상에서 마주하는 다양한 시나리오에서 복잡하고 다단계의 작업을 신뢰성 있게 완료해야 합니다.
이제 Magentic-One을 소개합니다. 이 시스템은 복잡한 작업을 해결하기 위해 설계된 고성능 범용 에이전트 시스템입니다. Magentic-One은 오케스트레이터라는 리드 에이전트가 네 명의 다른 에이전트를 지휘하여 작업을 수행하는 멀티 에이전트 아키텍처를 사용합니다. 오케스트레이터는 계획을 세우고, 진행 상황을 추적하며, 오류를 회복하기 위해 재계획을 세우고, 웹 브라우저 운영, 로컬 파일 탐색, Python 코드 작성 및 실행과 같은 작업을 수행하는 특화된 에이전트들을 지시합니다.
Magentic-One은 여러 도전적인 에이전트 벤치마크에서, 핵심 기능이나 아키텍처의 수정 없이도 최첨단 수준의 통계적 성능을 달성합니다. AutoGen을 기반으로 구축된 Magentic-One은 모듈식 멀티 에이전트 디자인을 통해 단일 에이전트 시스템에 비해 많은 장점을 제공합니다. 개별 에이전트에 명확한 기술을 캡슐화함으로써 객체 지향 프로그래밍과 유사하게 개발과 재사용이 간소화됩니다. Magentic-One의 플러그 앤 플레이 디자인은 에이전트를 추가하거나 제거할 때 전체 시스템을 다시 작업할 필요 없이 쉽게 적응하고 확장할 수 있도록 지원합니다. 이는 종종 경직된 워크플로우에 어려움을 겪는 단일 에이전트 시스템과 대조적입니다.
우리는 Magentic-One을 연구자와 개발자를 위해 오픈 소스로 공개하고 있습니다. Magentic-One은 강력한 범용성을 보이지만, 여전히 인간 수준의 성능에는 한참 미치지 못하며 실수를 할 수 있습니다. 또한, 에이전트 시스템이 더욱 강력해짐에 따라 원치 않는 행동을 하거나 악의적인 용도로 사용될 수 있는 위험도 커질 수 있습니다. 우리는 여전히 현대 에이전트형 AI의 초기 단계에 있으며, 커뮤니티가 이러한 개방된 과제들을 해결하고 우리의 미래 에이전트 시스템이 유용하고 안전할 수 있도록 돕기를 초대합니다. 이를 위해, 반복성과 격리를 내장한 에이전트 평가 도구인 AutoGenBench도 공개하고 있으며, 이를 통해 에이전트 벤치마크와 작업을 엄격하게 테스트하면서 원치 않는 부작용을 최소화할 수 있습니다.
작동 방식
Magentic-One의 멀티 에이전트 아키텍처를 설명하는 다이어그램입니다. 이 다이어그램은 상단의 오케스트레이터 에이전트의 내부 작업을 묘사하며, 하단에 팀의 다른 에이전트를 나타냅니다. 오케스트레이터 내부에는 외부 루프와 내부 루프가 나타나 있습니다. 외부 루프에는 사실, 추정, 현재 계획이 포함된 작업 장부와 내부 루프에 진입하고 나오는 포인터가 표시됩니다. 내부 루프는 현재 작업 진행 상황과 각 에이전트의 할당을 추적하는 진행 장부를 보여주며, "작업 완료?"라는 텍스트와 함께 결정 노드로 연결됩니다. "예"일 경우 다이어그램은 오케스트레이터를 빠져나가며 "작업 완료" 종료 노드로 연결됩니다. "아니요"일 경우 "진행 중인가?"라는 텍스트와 함께 다른 결정 노드로 연결됩니다. "예"일 경우 오케스트레이터 밖으로 나와 팀의 다른 에이전트 중 하나로 제어가 넘어갑니다. "아니요"일 경우 "정지 횟수 > 2"라는 텍스트가 있는 세 번째 결정 노드로 연결됩니다. "예"일 경우 외부 루프의 작업 장부로 돌아가고, 에이전트들이 다시 시도하기 전에 업데이트가 이루어집니다. "아니요"일 경우 다시 오케스트레이터를 나와 다른 에이전트 중 하나로 제어가 넘어갑니다. 다이어그램 하단에 있는 다른 에이전트들은 다음과 같이 명명되고 설명됩니다: Coder(“코드 작성 및 논리적 추론을 통해 작업 해결”), Computer Terminal(“코더 에이전트가 작성한 코드 실행”), WebSurfer(“인터넷 탐색(페이지 탐색, 양식 작성 등)”), 그리고 FileSurfer(“파일 탐색(e.g., PDF, pptx, WAV 등)”).
Magentic-One은 두 가지 루프(외부 루프와 내부 루프)를 구현하는 오케스트레이터 에이전트를 특징으로 합니다. 외부 루프(밝은 배경에 실선 화살표)는 작업 장부(사실, 추정, 계획 포함)를 관리하고, 내부 루프(어두운 배경에 점선 화살표)는 진행 장부(현재 진행 상황, 에이전트에 대한 작업 할당 포함)를 관리합니다.
Magentic-One의 작동 원리는 멀티 에이전트 아키텍처를 기반으로 하며, 리드 에이전트인 오케스트레이터가 고수준 계획을 담당하고, 다른 에이전트들을 지휘하며 작업 진행을 추적합니다. 오케스트레이터는 먼저 작업을 해결하기 위한 계획을 세우고, 필요한 사실과 추정을 모아 작업 장부(Task Ledger)를 유지합니다. 계획의 각 단계에서 오케스트레이터는 작업 진행 상황을 반영하고 작업이 완료되었는지 확인하는 진행 장부(Progress Ledger)를 만듭니다. 작업이 아직 완료되지 않은 경우, Magentic-One의 다른 에이전트 중 하나에게 하위 작업을 할당합니다. 할당된 에이전트가 하위 작업을 완료한 후 오케스트레이터는 진행 장부를 업데이트하고, 작업이 완료될 때까지 이러한 방식으로 계속 진행합니다. 만약 오케스트레이터가 작업이 충분히 진행되지 않는다고 판단되면, 작업 장부를 업데이트하고 새로운 계획을 세울 수 있습니다. 이 과정이 다이어그램에서 설명되며, 오케스트레이터의 작업은 작업 장부를 업데이트하는 외부 루프와 진행 장부를 업데이트하는 내부 루프로 나뉩니다.
Magentic-One은 다음과 같은 에이전트로 구성됩니다:
- Orchestrator: 작업 분해, 계획 수립, 하위 작업 실행 시 다른 에이전트 지휘, 전체 진행 상황 추적 및 필요 시 수정 작업을 수행하는 리드 에이전트
- WebSurfer: 크로미움 기반 웹 브라우저의 상태를 명령하고 관리할 수 있는 LLM 기반 에이전트입니다. 각 요청에 대해 WebSurfer는 탐색(예: URL 방문, 검색 수행), 웹 페이지와의 상호작용(예: 클릭, 타이핑), 읽기 작업(예: 요약, 질문에 답하기) 등의 작업을 수행합니다. 그런 다음 새 웹 페이지 상태를 보고합니다. WebSurfer는 브라우저의 접근성 트리와 마크 셋을 활용하여 작업을 수행합니다.
- FileSurfer: 로컬 파일을 읽기 위한 마크다운 기반 파일 미리보기 애플리케이션을 제어하는 LLM 기반 에이전트입니다. 디렉토리 목록을 나열하거나 이를 탐색하는 등 일반적인 탐색 작업도 수행할 수 있습니다.
- Coder: 코드 작성, 다른 에이전트로부터 수집한 정보 분석, 새 아티팩트 생성에 특화된 LLM 기반 에이전트입니다.
- ComputerTerminal: 프로그램 실행 및 새로운 라이브러리 설치를 위한 콘솔 쉘 접근을 제공합니다.
이 에이전트들은 Magentic-One의 오케스트레이터가 다양한 개방형 문제를 해결하고, 역동적이고 끊임없이 변화하는 웹 및 파일 시스템 환경에서 자율적으로 적응하고 행동하는 데 필요한 도구와 역량을 제공합니다.
기본적으로 모든 에이전트에 사용되는 다중 모달 LLM은 GPT-4o이지만, Magentic-One은 모델에 종속적이지 않으며 이종 모델을 통합하여 다양한 기능을 지원하거나 비용 요구 사항을 충족할 수 있습니다. 예를 들어, 서로 다른 LLM 및 SLM 또는 특화된 버전이 서로 다른 에이전트를 구동할 수 있습니다. 오케스트레이터에는 GPT-4o와 같은 강력한 추론 모델을 권장합니다. 또 다른 구성에서는 오케스트레이터의 외부 루프와 Coder에 OpenAI o1-preview를 사용하고, 다른 에이전트는 계속해서 GPT-4o를 사용하는 실험도 수행했습니다.
평가
Magentic-One의 성능을 엄격하게 평가하기 위해 우리는 오픈 소스 독립형 도구인 AutoGenBench를 소개합니다. 이 도구는 에이전트 벤치마크를 실행할 수 있도록 하며, 반복성과 격리를 지원해 확률적 LLM 호출의 변동성 및 에이전트가 세계에서 행동을 취할 때 발생할 수 있는 부작용을 통제할 수 있습니다. AutoGenBench는 에이전트 평가를 용이하게 하고 새로운 벤치마크를 추가할 수 있도록 합니다. AutoGenBench를 사용하여 Magentic-One을 다양한 벤치마크에서 평가할 수 있습니다. 우리는 복잡한 다단계 작업을 포함하며 일부 단계에서는 계획 및 도구 사용이 요구되는 벤치마크를 선정 기준으로 삼았으며, 이에는 실제 또는 시뮬레이션된 웹 페이지에서 웹 브라우저를 사용하는 것도 포함됩니다. 이번 연구에서는 이러한 기준을 충족하는 세 가지 벤치마크인 GAIA, AssistantBench, WebArena를 고려했습니다.
아래 그림은 세 가지 벤치마크에서 Magentic-One의 성능을 보여주며, 2024년 10월 21일 현재 공공 리더보드에 있는 GPT-4의 단독 운영 성능, 벤치마크별 최고 성능의 비공개 소스 기준 성능, 오픈 소스 기준 성능과 비교한 것입니다. Magentic-One(GPT-4o, o1)은 GAIA와 AssistantBench에서 이전 최첨단(SOTA) 방법과 통계적으로 유사한 성능을 달성했으며, WebArena에서는 경쟁력 있는 성능을 보였습니다. GAIA와 AssistantBench는 숨겨진 테스트 세트를 가지고 있는 반면, WebArena는 그렇지 않아 WebArena의 결과는 자체 보고된 것입니다. 이 결과들은 Magentic-One이 복잡한 작업을 완료하는 강력한 범용 에이전트 시스템임을 입증합니다.
막대 그래프는 GAIA, AssistantBench, WebArena 벤치마크에서의 Magentic-One의 평가 결과를 보여줍니다. 막대는 x축을 따라 벤치마크별로 그룹화되어 있으며, 각 벤치마크에 대해 막대는 다음 순서로 나타납니다: GPT-4, 벤치마크별 비공개 소스 최첨단(SOTA), 벤치마크별 오픈 소스 최첨단(SOTA), Magentic-One(GPT-4o), Magentic-One(GPT-4o, o1-preview), 그리고 인간의 성능. y축은 "정확도(%)"를 0-100%로 나타냅니다. 이 그래프는 GPT-4가 모든 벤치마크에서 가장 낮은 성능을 보이는 반면(각각 약 7%, 16%, 15%), 인간 수준의 성능(단, GAIA와 WebArena에서만 제공됨)은 각각 약 92%와 78%에 도달했음을 보여줍니다. 이 차트는 Magentic-One이 모든 벤치마크에서 SOTA 솔루션과 유사한 성능을 보여줌을 나타내며, WebArena에서 벤치마크별 비공개 소스 SOTA 결과를 제외하고는 비교 가능한 성능을 보입니다. 비공개 소스 솔루션에는 문서나 구현이 제공되지 않음을 나타내기 위해 별표가 표시되어 있습니다.
GAIA, AssistantBench 및 WebArena에서의 Magentic-One의 평가 결과입니다. 오류 막대는 95% 신뢰 구간을 나타냅니다. WebArena의 결과는 자체 보고된 결과임을 유의하시기 바랍니다.
위험성과 완화 방안
Magentic-One과 같은 에이전트형 시스템은 AI와 관련된 기회와 위험에서 중요한 변화를 나타냅니다. Magentic-One은 인간을 위해 설계된 디지털 세계와 상호작용하며, 상태를 변경하고 때로는 되돌릴 수 없는 결과를 초래할 수 있는 행동을 취합니다. 이러한 내재적이며 부인할 수 없는 위험은 우리의 테스트 과정에서 명백하게 드러났으며, 여러 가지 새로운 문제가 발생했습니다. 예를 들어, 개발 중에 잘못된 설정으로 인해 에이전트들이 WebArena 웹사이트에 반복적으로 로그인 시도를 하다 실패하는 일이 발생했고, 이로 인해 계정이 일시적으로 정지되었습니다. 이후 에이전트들은 계정 비밀번호를 재설정하려고 시도했습니다. 더욱 우려스러웠던 것은 에이전트들이 명시적으로 중지되기 전까지 소셜 미디어에 게시하거나 교과서 저자에게 이메일을 보내거나 심지어 정부 기관에 정보 공개 요청서를 초안하는 등 인간의 도움을 끌어오려 시도한 경우였습니다. 이러한 모든 경우에서 에이전트들은 필요한 도구나 계정이 없거나 인간 관찰자들의 개입으로 인해 성공하지 못했습니다.
Microsoft AI 원칙 및 책임 있는 AI 관행과 일치하게 우리는 Magentic-One을 배포하기 전에 잠재적인 위험을 식별하고, 측정하며, 완화하기 위한 노력을 기울였습니다. 특히, 유해한 콘텐츠, 탈옥, 프롬프트 주입 공격과 관련된 위험을 평가하기 위해 레드 팀 연습을 수행했으며, 우리의 설계에서 위험이 증가하지 않았음을 확인했습니다. 또한 안전하게 Magentic-One을 사용하는 방법에 대한 주의사항과 지침, 예시 및 적절한 기본 설정을 제공하고 있습니다. 사용자는 모니터링을 위해 반드시 인간을 프로세스에 포함시키고, 모든 코드 실행 예제, 평가 및 벤치마크 도구는 샌드박스된 Docker 컨테이너에서 실행하여 위험을 최소화할 것을 권장합니다.
추천 사항 및 앞으로의 전망
우리는 강력한 정렬을 갖춘 모델, 생성 전후 필터링, 실행 중 및 실행 후 면밀하게 모니터링된 로그를 사용하는 것을 권장합니다. 우리의 사용 사례에서도 최소 권한 원칙과 최대 감시 원칙을 따르고 있습니다. 에이전트형 AI와 관련된 위험을 최소화하려면 새로운 아이디어와 광범위한 연구가 필요하며, 이러한 새로 발생하는 위험을 이해하고 효과적인 완화 방안을 개발하기 위해 아직 많은 작업이 필요합니다. 우리는 커뮤니티와 우리의 배움을 공유하고 최신 안전 연구와 함께 Magentic-One을 발전시키기 위해 노력할 것입니다.
앞으로 나아가면서, 에이전트형 AI를 개선할 귀중한 기회가 특히 안전성과 책임 있는 AI 연구에서 있을 것입니다. 공공 웹에서 활동하는 에이전트들은 인간 사용자처럼 피싱, 사회 공학, 잘못된 정보 위협에 취약할 수 있습니다. 이러한 위험에 대처하기 위한 중요한 방향은 에이전트에게 그들의 행동의 되돌릴 수 있는지 여부를 평가하는 능력을 부여하는 것입니다. 이는 쉽게 되돌릴 수 있는 행동, 노력이 필요한 행동, 그리고 되돌릴 수 없는 행동을 구별하는 것입니다. 파일 삭제, 이메일 발송, 양식 제출과 같은 행동은 종종 되돌리기 어렵거나 불가능합니다. 따라서 시스템은 이러한 고위험 행동을 수행하기 전에 일시 중지하고 인간의 입력을 요청하도록 설계되어야 합니다.
미래의 에이전트형 시스템이 유용하면서도 안전할 수 있도록 커뮤니티가 협력해주기를 초대합니다.
더 자세한 정보와 결과, 토론은 우리의 기술 보고서를 참조하십시오.