agent-framework #dotnet #ai-agent #semantic-kernel #autogen
Microsoft가 .NET 및 Python을 지원하는 새로운 오픈 소스 AI 에이전트 SDK인 'Microsoft Agent Framework’를 출시했습니다. 이 프레임워크는 Semantic Kernel의 엔터프라이즈 오케스트레이션과 AutoGen의 유연한 멀티 에이전트 패턴을 통합하여 단일화된 .NET 친화적 환경을 제공합니다. 개발자는 이를 통해 단순한 LLM 기반 에이전트부터 복잡한 멀티 에이전트 워크플로우 및 도구 통합까지 확장 가능한 시스템을 구축할 수 있게 됩니다.
Microsoft Agent Framework 개요
Microsoft Agent Framework(MAF)는 AI 에이전트 및 멀티 에이전트 워크플로우 구축을 위한 새로운 오픈 소스 SDK입니다. .NET 및 Python을 완벽하게 지원하며, Semantic Kernel의 오케스트레이션 기능과 AutoGen의 멀티 에이전트 패턴을 결합한 것이 특징입니다.
- 주요 기능
- LLM 기반의 단순 에이전트 생성 가능함
- 복잡한 멀티 에이전트 워크플로우, 오케스트레이션 파이프라인, 도구 통합 구현 가능함
AIAgent,ChatClientAgent등 표준화된 추상화를 사용하여 OpenAI, Azure OpenAI 등 다양한 LLM 제공자 간 전환이 용이함- 모니터링, 텔레메트리, 오류 처리, 휴먼 인 더 루프(Human-in-the-loop) 등을 지원하여 프로토타입에서 상용 수준까지 확장 가능함
에이전트의 정의 및 기능
MAF에서 에이전트는 주로 AIAgent 또는 파생 클래스의 인스턴스로 정의됩니다.
- 에이전트 역할
- 대화 컨텍스트(메모리)를 유지하고 상태 및 기록을 관리함
- 표준 채팅 클라이언트 인터페이스를 통해 호환되는 LLM을 사용하여 응답을 생성함
- Model Context Protocol(MCP)과 같은 프로토콜을 통해 API, 코드 실행기 등 외부 도구를 호출하여 외부 데이터나 서비스와 통합할 수 있음
구현 데모: 크리스마스 선물 추천 에이전트
.NET 콘솔 애플리케이션을 생성하고 Azure CLI를 통해 Azure에 인증하는 과정을 거쳐 에이전트를 구현합니다.
- 프로젝트 설정 및 인증
dotnet new console명령어로 프로젝트 생성 후 Azure CLI(az login)로 인증을 수행함Microsoft.Agents.AI및 관련 NuGet 패키지를 설치하여 환경을 구성함
-
도구(Tool) 생성
- 예산에 따라 선물을 추천하는
SuggestGift메서드를 포함한ChristmasTools클래스를 작성함 - 도구는 LLM이 생성하는 텍스트 외에 계산이나 데이터 조회와 같은 결정론적 로직을 수행하여 결과의 신뢰성을 높임
- 예산에 따라 선물을 추천하는
-
에이전트 선언 및 실행
Program.cs에서AzureOpenAIClient를 생성하고CreateAIAgent메서드로 에이전트를 정의함- 정의된 도구를 에이전트에 연결하고
RunAsync메서드를 통해 사용자 프롬프트에 대한 응답을 생성함

도구(Tools)의 중요성
도구는 에이전트가 단순한 텍스트 생성을 넘어 구체적인 작업을 수행할 수 있게 합니다.
- 도구의 이점
- 명시적인 함수로 동작하므로 LLM의 기억이나 환각에 의존하지 않고 일관된 출력을 보장함
- 데이터 가져오기, 계산 등 결정론적 로직 수행에 유용함
- 여러 도구를 결합하여 더욱 강력하고 견고한 에이전트 시스템을 구축할 수 있음
