솔직히 지난 2년간 가장 많이 본 질문 중 하나가 "AutoGen이랑 Semantic Kernel 중에 뭘 써야 하나요?"였다. 둘 다 Microsoft 소속인데 왜 따로 노는 건지, 어느 쪽에 올인해야 하는 건지 — 답이 없었다. 이번 주에 Microsoft가 그 답을 냈다. 합치는 걸로.
합체의 실체
Microsoft가 4월 3일 Agent Framework 1.0을 정식 출시했다. AutoGen의 가벼운 에이전트 추상화와 Semantic Kernel의 엔터프라이즈 기능을 하나의 SDK로 통합한 것이다. .NET과 Python 양쪽 지원, 장기 지원(LTS) 약속까지. AutoGen은 유지보수 모드로 전환됐다.
이게 왜 의미가 있냐면 — AutoGen은 리서치 프로젝트에서 출발해 빠른 프로토타이핑에 좋았지만 프로덕션 안정성은 항상 물음표였다. Semantic Kernel은 엔터프라이즈급이었지만 멀티에이전트 오케스트레이션이 약했다. Microsoft가 2년간 두 트랙을 병행하다 결국 "합치자"로 결론 낸 건, 에이전트 영역이 실험 단계를 지나 프로덕션으로 이동하고 있다는 방증이다.
다섯 가지 오케스트레이션 패턴
1.0에서 안정화된 멀티에이전트 오케스트레이션은 다섯 종류다. Sequential(순차 실행), Concurrent(병렬 처리 후 수렴), Handoff(컨텍스트 변화에 따른 책임 이동), Group Chat(다자 브레인스토밍), 그리고 Microsoft Research에서 나온 Magentic-One — 매니저 에이전트가 동적 태스크 장부를 관리하는 패턴이다.
전부 스트리밍, 체크포인팅, human-in-the-loop 승인, 일시정지/재개를 지원한다. LangGraph에서 직접 구현해야 했던 기능들이 내장된 셈이다. 다만 이게 곧 "LangGraph보다 낫다"는 뜻은 아니다.
MCP 네이티브, A2A는 곧
개발자에게 가장 와닿을 부분은 MCP 네이티브 지원이다. 에이전트가 MCP 호환 서버의 도구를 런타임에 자동으로 발견하고 호출한다. 이미 MCP 서버를 운영 중이라면 바로 연결 가능하다.
이게 재밌는 부분인데 — DEV Community에서 "에이전트 프레임워크 전쟁의 진짜 승자는 MCP"라는 글이 돌았다. MCP SDK 다운로드가 월 9,700만 건을 넘었고, "에이전트 도구 연결의 TCP/IP"가 되고 있다는 주장이다. 프레임워크는 바뀔 수 있지만 프로토콜은 남는다. Microsoft가 MCP를 1등 시민으로 품은 건 이 흐름을 읽은 것이다.
A2A(Agent-to-Agent) 프로토콜 지원도 예고됐다. 다른 프레임워크의 에이전트와 구조화된 메시징으로 협업하는 건데, 아직 "coming soon"이라 현재로선 약속 단계다.
코드는 이 정도로 간단하다
최소 구동 코드:
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
agent = Agent(
client=FoundryChatClient(...),
name="ReviewerBot",
instructions="코드 리뷰를 해주는 시니어 개발자 역할."
)
result = asyncio.run(agent.run("이 PR의 보안 이슈를 점검해줘."))
FoundryChatClient 자리에 Azure OpenAI, OpenAI, Anthropic, Bedrock, Gemini, Ollama 중 아무거나 바꿔 끼울 수 있다. 모델 종속성 제로. YAML 선언형 문법도 지원해서 코드 없이 파이프라인을 구성하는 것도 가능하다.
프로덕션 — 미들웨어, 메모리, 디버거
프로덕션에서 진짜 귀찮은 건 모델 연결이 아니라 보안과 관측가능성이다. Agent Framework는 미들웨어 파이프라인으로 이걸 풀었다. 프롬프트를 건드리지 않고 실행 단계마다 콘텐츠 안전성 필터, 감사 로깅, 컴플라이언스 체크를 끼워넣는 구조다. 메모리도 플러그형이다. 대화 이력, 키-밸류, 벡터 검색을 선택하고 백엔드(Foundry, Mem0, Redis, Neo4j)만 교체하면 된다.
멀티에이전트 디버깅은 원래 지옥이다. 어떤 에이전트가 어떤 도구를 불렀는지, 메시지가 어떤 경로로 흘렀는지 추적하려면 로그 지옥에 빠진다. 브라우저 기반 DevUI 디버거가 실행 흐름, 메시지 라우팅, 도구 호출을 실시간으로 시각화해준다. 솔직히 이 기능 하나만으로도 평가해볼 가치가 있다.
갈아타야 하나
현실적인 이야기. Microsoft Research의 CORPGEN 연구에 따르면, 에이전트 태스크 완료율은 벤치마크에서 현실 환경으로 오면 16.7%에서 8.7%로 반토막 난다. 컨텍스트 포화, 메모리 간섭, 복잡한 의존성 그래프 — 이 근본적인 문제는 프레임워크가 뭐든 똑같다. 도구가 만능이 아니라는 점은 인식하고 들어가야 한다.
그래서 현실적인 가이드:
LangGraph로 프로덕션이 잘 돌고 있다면 — 건드릴 이유 없다
Azure/.NET 생태계 팀이 새 프로젝트를 시작한다면 — 첫 번째 후보
CrewAI에서 오케스트레이션 한계에 부딪혔다면 — 마이그레이션 검토 대상
AutoGen이나 SK를 이미 쓰고 있었다면 — 공식 마이그레이션 가이드 나와 있으니 타임라인을 잡기 시작할 때
에이전트 프레임워크의 최종 답은 아직 없다. 하지만 Microsoft가 2년간의 파편화를 정리하고 프로덕션급 통합을 내놓은 건, 이 시장이 장난이 아니라 진짜가 됐다는 가장 확실한 신호다.