두 프레임워크가 하나로 합쳐지기까지
2020년대 중반 Microsoft는 에이전트 AI 영역에서 두 개의 라이브러리를 동시에 운영했다. AutoGen은 멀티에이전트 오케스트레이션 연구에서 출발한 라이브러리였다. Semantic Kernel은 LLM 기반 엔터프라이즈 애플리케이션을 위한 프로덕션 SDK였다. 두 프레임워크는 역할이 달랐지만, 어느 것을 선택해야 하는지 불분명했다. 프로덕션 안정성이 필요하면 Semantic Kernel, 멀티에이전트 실험이 필요하면 AutoGen — 이런 비공식 규칙이 통용됐다.
2025년 10월 Microsoft는 AutoGen을 유지 모드(maintenance mode)로 전환했다. 새 기능 개발을 중단하고 커뮤니티 관리 체제로 이행했다. 대신 두 프레임워크를 통합한 Microsoft Agent Framework(MAF)를 공개 프리뷰로 출시했다. 2026년 4월 3일, MAF 1.0 GA(General Availability)가 릴리스됐다. .NET과 Python 양쪽 SDK를 Microsoft.Agents.AI 네임스페이스로 통합하고, MCP(Model Context Protocol)와 A2A(Agent-to-Agent) 프로토콜을 기본으로 지원한다.
이 장은 2026년 7월 15일 기준으로 작성했다. Microsoft Agent Framework 1.0.0은 2026-04-03에 GA 릴리스됐다. A2A 프로토콜 v1.0은 2026년 초 안정화됐다. AutoGen 0.4는 유지 모드이며 신규 프로젝트에는 MAF가 권장된다. 세부 API 경로는 버전마다 변경될 수 있으므로 공식 Learn 문서를 병행해 확인한다.
3계층 아키텍처
MAF 1.0의 설계는 세 계층으로 나뉜다. 각 계층의 책임은 명확히 분리되어 있고, 상위 계층은 하위 계층 위에서 동작한다.
Foundation 계층: Semantic Kernel이 제공하는 것
Foundation 계층은 Semantic Kernel이 수년간 쌓아온 프로덕션 안정성을 그대로 흡수한다.
LLM 커넥터: MAF 1.0은 6개 LLM 프로바이더를 기본 지원한다. Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini, Ollama. 프로바이더 교체는 커넥터 초기화 1줄 변경으로 가능하도록 설계됐다. 프롬프트나 에이전트 로직은 건드리지 않아도 된다.
미들웨어 파이프라인: 에이전트 실행 루프에 로직을 주입하는 계층. 프롬프트를 수정하지 않고도 콘텐츠 안전 필터, 감사 로그, 컴플라이언스 훅을 추가할 수 있다. 규제 업종에서 "AI가 특정 주제를 절대 응답해서는 안 된다"는 요건을 코드에서 분리해 관리하는 지점이 이 계층이다.
상태 관리: 세션 컨텍스트, 체크포인트, 재개(pause/resume), Human-in-the-Loop(HITL) 승인 흐름이 이 계층에서 제공된다. 장기 실행 에이전트가 중간에 사람의 승인을 기다리다가 재개할 때 상태가 보존된다.
오케스트레이션 계층: AutoGen 계보의 멀티에이전트 추상화
에이전트 유형
MAF 1.0은 세 가지 기본 에이전트 유형을 제공한다.
- ChatAgent: LLM과 도구(MCP 함수)를 조합하는 기본 대화 에이전트. 가장 범용적인 에이전트다.
- AzureAIAgent: Azure AI Foundry 호스팅 환경에 최적화된 에이전트. Azure Managed Identity, Key Vault 통합, 로깅이 자동 연결된다.
- OpenAIAssistantAgent: OpenAI Assistants API를 기반으로 파일 업로드, 코드 인터프리터, 벡터 검색 같은 OpenAI 플랫폼 기능을 그대로 사용하는 에이전트.
세 유형 모두 동일한 인터페이스를 구현하므로, 한 유형으로 작성된 오케스트레이션 패턴은 다른 유형으로 교체해도 동작한다.
AgentRuntime: 에이전트를 연결하는 런타임
AgentRuntime은 AutoGen 0.4의 Actor 모델 개념을 계승한 핵심 구성요소다. 각 에이전트는 주소를 가진 Actor로 등록되고, 런타임은 에이전트 간 메시지 라우팅과 생명주기를 관리한다. 에이전트가 응답할 때마다 OpenTelemetry 스팬을 자동으로 발행해 분산 추적 도구에서 에이전트 실행 흐름을 시각화할 수 있다.
워크플로 패턴
MAF 1.0은 다섯 가지 오케스트레이션 패턴을 안정적으로 지원한다.
| 패턴 | 동작 | 적합한 상황 |
|---|---|---|
| Sequential | 에이전트가 순서대로 결과를 다음 에이전트에 전달 | 단계별 처리, 리뷰 체인 |
| Concurrent | 여러 에이전트가 동시에 실행, 결과 수렴 | 병렬 분석, 독립적인 서브태스크 |
| Handoff | 특정 조건이 되면 다음 에이전트에게 제어를 넘김 | 전문화된 에이전트로의 에스컬레이션 |
| Group Chat | 여러 에이전트가 협업해 답변을 도출 | 토론·검토·다각도 분석 |
| Magentic-One | 오케스트레이터 에이전트가 계획을 세우고 전문 에이전트에게 태스크를 배분 | 복잡한 다단계 추론, 자율 태스크 실행 |
모든 패턴은 스트리밍, 체크포인트, Human-in-the-Loop 승인, pause/resume을 내장 지원한다. 그래프 기반 워크플로 엔진 위에서 패턴을 조합할 수 있어, 예컨대 Concurrent 단계 후 Magentic-One 단계를 이어 붙이는 복합 파이프라인을 만들 수 있다.
MCP와 A2A: 에이전트가 도구와 서로를 찾는 방법
MCP (Model Context Protocol)
MCP는 LLM 에이전트가 외부 도구를 표준화된 방식으로 디스커버리·호출하는 프로토콜이다. MAF 1.0은 MCP를 기본 통합 계층으로 채택했다. MCP 서버에 등록된 도구는 에이전트 설정에 MCP 엔드포인트만 추가하면 에이전트가 자동으로 발견하고 호출할 수 있다.
MAF 이전에는 각 프레임워크마다 도구 정의 방식이 달랐다. Semantic Kernel의 KernelFunction, AutoGen의 @tool 데코레이터가 별개로 존재했다. MAF는 MCP를 통해 이 도구 계약을 통일했다. MAF 외부의 시스템(예: LangGraph 에이전트, Claude Desktop)도 동일한 MCP 서버를 공유할 수 있다.
A2A (Agent-to-Agent) Protocol
A2A는 서로 다른 런타임의 에이전트가 표준화된 방식으로 통신하는 오픈 프로토콜이다. MAF 1.0이 v1.0으로 채택한 이 프로토콜은 HTTP 위에서 동작하며, 다음 문제를 해결한다.
크로스 런타임 조합: Python으로 작성된 MAF 에이전트가 .NET으로 작성된 MAF 에이전트와 구조화된 메시지로 통신할 수 있다. 더 나아가 다른 프레임워크(LangGraph, CrewAI 등) 에이전트가 A2A를 구현했다면 같은 방식으로 조합할 수 있다.
에이전트 디스커버리: A2A 에이전트는 자신의 능력을 선언하는 Agent Card를 발행한다. A2A v1.0에서 Agent Card는 암호화 서명을 지원해 에이전트 신원 검증이 가능하다. 규제 환경에서 "어느 에이전트가 이 결정을 내렸는가"를 추적하는 데 사용된다.
다자 거버넌스: A2A 프로토콜의 기술 운영위원회에는 AWS, Cisco, Google, IBM Research, Microsoft, Salesforce, SAP, ServiceNow가 참여한다. 단일 벤더 종속이 아닌 산업 표준을 목표로 한다.
A2A를 쓸 때 주의할 점이 있다. HTTP 기반이므로 에이전트 간 호출마다 네트워크 레이턴시가 발생한다. 같은 프로세스 안에서 에이전트를 조합할 때는 A2A보다 AgentRuntime의 직접 메시지 패싱이 빠르다. A2A는 경계를 넘는 조합(다른 팀, 다른 런타임, 다른 언어)에 적합하다.
AutoGen / Semantic Kernel 마이그레이션
AutoGen 0.4에서 MAF로
AutoGen 0.4의 핵심 추상화(AgentChat의 AssistantAgent, RoundRobinGroupChat, SelectorGroupChat)는 MAF의 에이전트 유형과 워크플로 패턴으로 직접 대응한다. Microsoft는 공식 마이그레이션 가이드를 제공하지만, 몇 가지 변화에 주의해야 한다.
AutoGen 0.4는 단일 Python 패키지였다. MAF는 Microsoft.Agents.AI 아래에 여러 패키지로 분할된다. autogen-agentchat에서 임포트하던 클래스 경로가 변경된다. 이벤트 핸들러와 메시지 유형도 새 API에 맞게 조정해야 한다.
AutoGen 0.4의 CancellationToken 기반 타임아웃은 MAF에서도 지원된다. 그러나 AutoGen 0.4의 일부 실험적 기능(커스텀 런타임 구현 등)은 MAF의 안정 API에 포함되지 않았을 수 있다. AutoGen 0.4에서 실험적 기능을 사용하고 있었다면 마이그레이션 전 확인이 필요하다.
Semantic Kernel에서 MAF로
Semantic Kernel을 단독으로 사용하고 있었다면 MAF로의 전환은 점진적으로 가능하다. KernelBuilder, KernelFunction, ChatCompletionAgent 같은 Semantic Kernel API는 MAF 내부에서 그대로 동작한다. MAF는 Semantic Kernel을 대체하는 것이 아니라 그 위에서 오케스트레이션 계층을 추가한다. 기존 Semantic Kernel 플러그인을 MCP 서버로 래핑하면 더 넓은 에이전트 생태계와 호환성을 얻을 수 있다.
운영 고려사항
체크포인트와 HITL 비용
장기 실행 에이전트에서 체크포인트는 상태를 직렬화해 외부 저장소에 기록한다. 체크포인트 저장소로 Azure Storage, SQL 기반 백엔드 등 다양한 옵션이 있다. 체크포인트 빈도가 높을수록 I/O와 저장 비용이 증가한다. HITL 승인이 포함된 워크플로는 사람이 응답하지 않으면 에이전트가 중단된 채로 대기한다. 장기 대기 에이전트가 많아지면 런타임의 메모리 압력과 커넥션 풀 소모를 확인해야 한다.
A2A 레이턴시 예산
A2A 에이전트 간 호출은 HTTP 요청이다. 에이전트 체인의 깊이가 깊을수록 레이턴시가 누적된다. 동기적으로 조합되는 A2A 에이전트가 5단계라면, 각 홉의 P99 레이턴시가 전체 응답 시간에 그대로 더해진다. 지연에 민감한 경로는 A2A 대신 같은 런타임 내 직접 메시지 패싱으로 설계한다.
미들웨어 파이프라인 순서
미들웨어는 등록 순서대로 실행된다. 콘텐츠 안전 필터를 마지막에 등록하면 필터 이전 단계에서 이미 외부 API를 호출한 뒤 필터링이 일어난다. 규제 요건이 있다면 필터 미들웨어의 실행 순서와 위치를 명시적으로 설계한다.
LLM 프로바이더 교체와 프롬프트 회귀
프로바이더 교체가 1줄로 가능하더라도 모델 응답 특성은 프로바이더마다 다르다. 프로바이더를 바꿀 때는 기존 프롬프트와 파싱 로직이 새 모델의 응답 형식에서도 동작하는지 검증해야 한다. 특히 도구 호출(tool call) 응답 형식, JSON 출력 형식, 거절(refusal) 패턴이 모델마다 다를 수 있다.
채택 판단표
정리
Microsoft Agent Framework 1.0은 두 개로 나뉘어 있던 Microsoft의 에이전트 AI 전략을 하나로 수렴한 결과물이다.
Semantic Kernel의 안정성 위에 AutoGen의 오케스트레이션을 얹었다. Foundation 계층은 LLM 커넥터, 미들웨어, 상태 관리를 담당하고, 오케스트레이션 계층은 에이전트 유형과 워크플로 패턴을 제공한다.
6개 LLM 프로바이더를 1줄 교체로 전환할 수 있는 구조는 모델 공급망 종속을 줄이는 데 의미 있다. 단, 모델 교체가 프롬프트 동작에 미치는 영향은 별도로 검증해야 한다.
A2A 프로토콜은 에이전트 간 조합의 경계를 프레임워크 밖으로 확장한다. 하지만 HTTP 홉 레이턴시는 실제 운영에서 설계 제약이 된다.
AutoGen 0.4를 유지 모드로 전환하면서 Microsoft는 생태계를 단일 SDK로 정리했다. 기존 AutoGen 또는 Semantic Kernel 코드베이스가 있다면 공식 마이그레이션 가이드와 함께 단계적 이행이 가능하다.
References
- Microsoft Agent Framework Version 1.0 — 출시 블로그
- Microsoft Agent Framework Overview — Microsoft Learn
- A2A v1 Is Here: Cross-Platform Agent Communication in MAF — devblogs
- Agent-to-Agent (A2A) — Microsoft Learn
- Microsoft Ships Production-Ready Agent Framework 1.0 — Visual Studio Magazine
- Two Lineages, One Framework — Alex Bevi Blog
- Build Multi-Agent AI Apps on Azure App Service with MAF 1.0 — Microsoft Community Hub
- AutoGen reimagined: Launching AutoGen 0.4 — AutoGen Blog