Microsoft Agent Framework: Microsoft가 새롭게 공개한 Multi-Agent Framework (feat. Python, C#/.NET)

Microsoft Agent Framework 소개

Microsoft Agent Framework는 AI 에이전트와 멀티 에이전트 워크플로우를 구축, 조율, 배포할 수 있도록 설계된 새로운 프레임워크입니다. Python과 .NET을 모두 지원하며, 단순한 챗봇부터 복잡한 그래프 기반 멀티 에이전트 오케스트레이션까지 다양한 시나리오를 다룰 수 있도록 설계되어 있습니다. 특히 이 프레임워크는 AI 기반 애플리케이션을 개발하려는 팀이 언어나 플랫폼 제약 없이 빠르게 에이전트를 설계하고 실행할 수 있도록 돕습니다.

최근 AI 에이전트 프레임워크 시장은 빠르게 성장하고 있으며, 다양한 솔루션이 경쟁하고 있습니다. 하지만 기존 프레임워크는 특정 언어에 한정되거나, 대규모 오케스트레이션을 다루기에는 기능이 제한적이었습니다. Microsoft Agent Framework는 이러한 한계를 극복하기 위해 Python과 C#/.NET을 아우르는 통합 API, 그래프 기반 워크플로우, 실시간 모니터링 및 디버깅 환경까지 지원하여 개발자 경험을 크게 개선하고 있습니다.

따라서 AI 기반 챗봇, 대화형 도우미, 지능형 자동화 시스템을 구현하려는 개발자라면 이 프레임워크를 주목할 필요가 있습니다. 특히 멀티 에이전트 구조를 활용한 복잡한 AI 애플리케이션 개발에 있어 Microsoft Agent Framework는 중요한 역할을 하게 될 것입니다.

Semantic Kernel 및 AutoGen과 비교

Microsoft는 이전에 Semantic Kernel은 플러그인 기반으로 AI 모델과 기존 코드, 워크플로우를 연결하는 데 초점을 맞췄으며, AI 오케스트레이션 기능을 제공하여 많은 개발자가 이를 활용해 AI 워크플로우를 구축했습니다. 그러나 Semantic Kernel은 C#과 Python 중심이었지만 확장성과 멀티 에이전트 지원 측면에서 한계가 있었습니다.

또한, Microsoft의 또다른 오픈소스 프로젝트 중 하나인 AutoGen은 여러 AI 에이전트가 협력할 수 있도록 지원하는 프로그래밍 프레임워크입니다. AutoGen은 복잡한 대화형 시나리오나 협업형 에이전트 시스템을 구현하는데 유용하며, 최근에는 일부 커뮤니티 기여자들이 이를 **AG2 (AutoGen 2)**라는 이름으로 발전시키고 있어, Microsoft와 오픈소스 커뮤니티 모두에서 후속 진화를 이어가고 있습니다.

결과적으로, Microsoft Agent Framework는 Semantic Kernel의 플러그인 확장성AutoGen의 멀티 에이전트 협업 기능을 계승하면서, 이를 .NET과 Python을 아우르는 통합 API, 그래프 기반 오케스트레이션, DevUI, OpenTelemetry 지원과 같은 기능으로 한층 발전시킨 프레임워크라 할 수 있습니다.

이와 별개로 Microsoft Agent Framework는 처음부터 멀티 에이전트와 그래프 기반 워크플로우를 핵심으로 설계하여 더 유연한 아키텍처를 제공하는 프레임워크로, Semantic Kernel과 AutoGen의 한계를 보완한 통합 솔루션입니다.

Microsoft Agent Framework의 주요 특징

  • 그래프 기반 워크플로우: Agent Framework는 데이터 플로우 그래프 기반으로 에이전트와 함수들을 연결할 수 있으며, 스트리밍, 체크포인트, human-in-the-loop, 시간 되돌리기(time-travel) 기능까지 지원합니다. 이를 통해 단순 대화형 에이전트부터 복잡한 프로세스 자동화까지 다양한 패턴을 쉽게 설계할 수 있습니다: Python workflows | .NET workflows

  • DevUI: 개발자 친화적인 DevUI를 제공하여 에이전트 및 워크플로우를 시각적으로 개발, 테스트, 디버깅할 수 있습니다. 단순히 코드 작성에 의존하지 않고, 인터랙티브 환경에서 에이전트의 동작을 확인할 수 있기 때문에 개발 속도와 안정성이 크게 향상됩니다: DevUI package

  • 여러 언어 지원: Python과 C#/.NET을 모두 지원하며, 일관된 API를 제공하기 때문에 서로 다른 언어 기반의 애플리케이션에서도 동일한 방식으로 에이전트를 구현할 수 있습니다. 이는 대규모 조직에서 언어 혼합 환경을 사용하는 경우 특히 유용합니다: Python packages | .NET source

  • 관측성(Observability): OpenTelemetry 기반 분산 추적 및 모니터링 기능을 내장하고 있어, 운영 환경에서 에이전트의 성능을 추적하고 디버깅할 수 있습니다. 이는 엔터프라이즈급 애플리케이션 개발에서 중요한 요소입니다: Python observability | .NET telemetry

  • 다양한 LLM 프로바이더 지원: Azure OpenAI뿐만 아니라 여러 LLM 제공자를 지원하며, 앞으로 더 많은 모델 및 서비스가 통합될 예정입니다. 이를 통해 특정 클라우드 서비스에 종속되지 않고 유연하게 시스템을 설계할 수 있습니다: Python examples | .NET examples

  • 미들웨어 시스템: 요청/응답 처리, 예외 처리, 커스텀 파이프라인을 지원하는 미들웨어 아키텍처를 제공하여 개발자가 원하는 대로 요청 흐름을 확장하거나 제어할 수 있습니다: Python middleware | .NET middleware

Microsoft Agent Framework 설치 및 사용 예시

Python용 Microsoft Agent Framework 사용 시

다음과 같이 pip 명령어를 사용하여 설치합니다:

pip install agent-framework --prerelease=allow

다음은 Azure OpenAI와 연동된 Python 기반 에이전트를 생성하여, 사용자의 입력에 따라 시적인 하이쿠를 생성하는 간단한 예시 코드입니다:

import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential

async def main():
    agent = AzureOpenAIResponsesClient(
        endpoint="https://your-custom-endpoint.openai.azure.com/",
        deployment_name="gpt-5",
        api_version="2025-03-01-preview",
        credential=AzureCliCredential(),
    ).create_agent(
        name="HaikuBot",
        instructions="You are an upbeat assistant that writes beautifully.",
    )
    print(await agent.run("Write a haiku about Microsoft Agent Framework."))

asyncio.run(main())

.NET용 Microsoft Agent Framework for .NET 사용 시

다음과 같이 dotnet 명령어를 사용하여 설치합니다:

dotnet add package Microsoft.Agents.AI

.NET 환경에서 Azure OpenAI를 활용한 에이전트를 생성하고 실행하여, 주어진 프롬프트에 맞는 결과를 출력하는 기본적인 예시입니다:

using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;

var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!;
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME")!;

var agent = new AzureOpenAIClient(new Uri(endpoint), new AzureCliCredential())
    .GetOpenAIResponseClient(deploymentName)
    .CreateAIAgent(name: "HaikuBot", instructions: "You are an upbeat assistant that writes beautifully.");

Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework."));

라이선스

Microsoft Agent Framework 프로젝트는 MIT License로 공개 및 배포되고 있습니다. 상업적 사용에도 제한이 없습니다.

:books: Microsoft Agent Framework 공식 문서

:github: GitHub 저장소

더 읽어보기

  • Quick Start: 간단한 에이전트를 직접 만들어 보면서 프레임워크 사용법을 빠르게 익힐 수 있는 입문용 가이드

  • Tutorials: 다양한 시나리오에서 에이전트와 워크플로우를 구축하는 방법을 배울 수 있는, 단계별 실습 중심의 튜토리얼 모음

  • User Guide: 실제 프로젝트에서 에이전트와 워크플로우를 설계·운영하는 데 필요한 상세 지침이 담겨 있는 심화 학습용 가이드




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요