AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

Microsoft Agent Framework: AI 에이전트 개발의 새로운 표준

Microsoft가 AI 에이전트 개발을 위한 통합 오픈소스 프레임워크를 공개했습니다. 기존 Semantic Kernel과 AutoGen의 장점을 결합해 프로토타입부터 프로덕션까지 원활하게 지원하는 것이 핵심입니다.

Microsoft Agent Framework Stack
Microsoft Agent Framework의 통합 아키텍처 (출처: Microsoft Developer Blog)

왜 또 다른 프레임워크인가

AI 에이전트 개발 현장의 문제는 명확했습니다. 개발자들은 실험적 프로토타입을 만드는 것까진 괜찮았지만, 이를 실제 프로덕션에 올리는 과정에서 막혔습니다. 프레임워크마다 API가 달랐고, 로컬 개발 환경과 클라우드 배포 환경이 따로 놀았습니다. 무엇보다 엔터프라이즈에 필요한 관찰성, 보안, 컴플라이언스 기능이 부족했습니다.

Microsoft는 이미 두 개의 강력한 도구를 가지고 있었습니다. Semantic Kernel은 엔터프라이즈급 안정성과 커넥터를 제공했고, AutoGen은 Microsoft Research에서 나온 혁신적인 멀티-에이전트 오케스트레이션 패턴을 선보였죠. 하지만 개발자들은 둘 중 하나를 선택해야 했습니다. 실험적 기능을 원하면 AutoGen, 안정성이 필요하면 Semantic Kernel.

Agent Framework는 이 선택을 없앴습니다. 두 프레임워크를 만든 같은 팀이 차세대 버전으로 통합한 것입니다.

핵심은 에이전트와 워크플로우

프레임워크의 중심에는 두 가지 개념이 있습니다.

에이전트는 목표를 달성하는 자율적 시스템입니다. LLM으로 추론하고, 도구를 호출하며, 컨텍스트를 기억합니다. 고객 지원, 코드 생성, 리서치 보조처럼 동적이고 구조화되지 않은 작업에 적합합니다.

워크플로우는 복잡한 작업을 단계별로 나눠 여러 에이전트를 조율합니다. 순차 실행, 병렬 처리, 조건부 분기, 체크포인팅을 지원하죠. 장기 실행 프로세스나 신뢰성이 중요한 비즈니스 로직에 사용됩니다.

간단한 작업은 단일 에이전트로, 복잡한 워크플로우는 여러 에이전트의 협업으로 해결하는 구조입니다.

몇 분 만에 만드는 첫 에이전트

시작은 놀랍도록 간단합니다. .NET 환경이라면 다음 코드로 충분합니다.

IChatClient chatClient = new ChatClient(
    "gpt-4o-mini",
    new ApiKeyCredential(Environment.GetEnvironmentVariable("GITHUB_TOKEN")!),
    new OpenAIClientOptions { Endpoint = new Uri("https://models.github.ai/inference") })
    .AsIChatClient();

AIAgent writer = new ChatClientAgent(
    chatClient,
    new ChatClientAgentOptions
    {
        Name = "Writer",
        Instructions = "Write stories that are engaging and creative."
    });

AgentRunResponse response = await writer.RunAsync("Write a short story about a haunted house.");
Console.WriteLine(response.Text);

Python도 마찬가지로 간결합니다.

pip install agent-framework

이게 전부입니다. 복잡한 설정 없이 바로 AI 에이전트가 동작합니다.

멀티-에이전트로 확장하기

실무에서는 단일 에이전트만으로 부족한 경우가 많습니다. 작가 에이전트가 초안을 쓰면 편집자 에이전트가 다듬는 식의 협업이 필요하죠.

AIAgent editor = new ChatClientAgent(
    chatClient,
    new ChatClientAgentOptions
    {
        Name = "Editor",
        Instructions = "Make the story more engaging, fix grammar, and enhance the plot."
    });

Workflow workflow = AgentWorkflowBuilder.BuildSequential(writer, editor);
AIAgent workflowAgent = await workflow.AsAgentAsync();

AgentRunResponse workflowResponse = await workflowAgent.RunAsync("Write a short story about a haunted house.");

워크플로우는 외부에서 보면 하나의 강력한 에이전트처럼 보입니다. 내부적으로는 여러 전문 에이전트가 순차적으로 작업을 처리하는 구조죠.

이 패턴은 무한히 확장 가능합니다. 리서처 → 팩트체커 → 요약가로 이어지는 리서치 파이프라인이나, 의도 분석 → 전문가 에이전트 → 품질 검토로 구성된 고객 서비스 시스템까지 만들 수 있습니다.

Writer-Editor Workflow
Writer와 Editor 에이전트의 순차 워크플로우 (출처: Microsoft .NET Blog)

외부 도구와 연결하기

에이전트가 진짜 유용해지려면 외부 시스템과 통신할 수 있어야 합니다. Agent Framework는 세 가지 주요 표준을 지원합니다.

MCP (Model Context Protocol)로 외부 데이터 서버나 도구를 동적으로 발견하고 호출합니다. Agent-to-Agent (A2A) 프로토콜로 서로 다른 런타임의 에이전트들이 협업하죠. OpenAPI 명세가 있는 REST API는 즉시 도구로 가져올 수 있습니다.

예를 들어 작가 에이전트에 포매팅 도구를 추가하는 것은 이렇게 간단합니다.

[Description("Formats the story for display.")]
string FormatStory(string title, string author, string story) =>
    $"Title: {title}\nAuthor: {author}\n\n{story}";

AIAgent writer = new ChatClientAgent(
    chatClient,
    new ChatClientAgentOptions
    {
        Name = "Writer",
        Instructions = "Write and format stories.",
        ChatOptions = new ChatOptions
        {
            Tools = [AIFunctionFactory.Create(FormatStory)]
        }
    });

에이전트는 필요할 때 자동으로 이 도구를 호출합니다. 개발자가 따로 제어 흐름을 관리할 필요가 없습니다.

프로덕션 배포는 익숙한 방식으로

Agent Framework의 가장 큰 장점 중 하나는 .NET 개발자에게 익숙한 방식으로 배포할 수 있다는 점입니다. ASP.NET 앱에 에이전트를 추가하는 것은 일반 서비스를 등록하는 것과 다르지 않습니다.

builder.AddAIAgent("Writer", (sp, key) =>
{
    var chatClient = sp.GetRequiredService<IChatClient>();
    return new ChatClientAgent(chatClient, name: key, instructions: "...");
});

app.MapGet("/agent/chat", async (
    [FromKeyedServices("Writer")] AIAgent writer,
    string prompt) =>
{
    AgentRunResponse response = await writer.RunAsync(prompt);
    return Results.Ok(response);
});

새로운 호스팅 모델을 배울 필요가 없습니다. .NET 앱을 배포할 수 있다면 에이전트도 배포할 수 있습니다.

관찰과 개선

프로덕션 시스템에는 가시성이 필수입니다. Agent Framework는 OpenTelemetry를 기본 지원하여 대화 흐름, 모델 사용량, 성능 지표, 에러 추적을 자동으로 수집합니다.

writer.WithOpenTelemetry();
editor.WithOpenTelemetry();

이 한 줄이면 Aspire, Azure Monitor, Grafana 같은 기존 관찰성 플랫폼과 연결됩니다. 토큰 소비량, 응답 시간, 병목 지점을 실시간으로 파악할 수 있죠.

Aspire Telemetry Dashboard
.NET Aspire 대시보드의 에이전트 텔레메트리 (출처: Microsoft .NET Blog)

실제 기업들의 선택

이미 여러 기업이 Agent Framework를 실무에 도입하고 있습니다.

KPMG는 감사 테스트와 문서화를 자동화하는 Clara AI를 구축 중입니다. 규제 산업에 필요한 거버넌스와 관찰성이 핵심이었죠. BMW는 테라바이트급 차량 텔레메트리를 실시간 분석하는 멀티-에이전트 시스템을 운영합니다. 엔지니어들이 며칠 걸리던 분석을 몇 분으로 단축했습니다.

Commerzbank는 아바타 기반 고객 지원에 사용하고, Citrix는 VDI 환경에 통합하며, Sitecore는 마케터를 위한 콘텐츠 자동화 에이전트를 개발 중입니다. 공통점은 프로토타입이 아닌 실제 프로덕션 시스템이라는 점입니다.

기존 사용자를 위한 마이그레이션

Semantic Kernel이나 AutoGen을 이미 사용 중이라면 전환은 비교적 명확합니다.

Semantic Kernel 사용자는 Kernel과 플러그인 패턴을 Agent와 Tool로 바꾸면 됩니다. .NET에서는 Microsoft.SemanticKernel.* 대신 Microsoft.Extensions.AI.* 네임스페이스를 사용하고, Python에서는 필요한 컴포넌트만 선택 설치할 수 있습니다.

AutoGen 사용자는 AssistantAgent가 ChatAgent로, FunctionTool이 @ai_function 데코레이터로 매핑됩니다. 이벤트 기반 모델은 타입 안전한 그래프 기반 Workflow API로 전환되죠.

대부분의 단일 에이전트는 약간의 리팩토링만 필요하고, 멀티-에이전트는 새로운 Workflow 모델의 이점을 활용할 수 있습니다.

지금 시작하기

Agent Framework는 현재 공개 프리뷰 상태입니다. 공식 문서에서 시작 가이드를 확인하고, GitHub 저장소에서 샘플 코드를 탐색할 수 있습니다. Microsoft Learn에는 단계별 학습 모듈이 준비되어 있고, Azure AI Foundry Discord에서 커뮤니티와 소통할 수 있습니다.

AI 에이전트는 이제 애플리케이션 로직의 새로운 계층이 되고 있습니다. Agent Framework는 실험과 프로덕션 사이의 간극을 메우고, 개발자가 신뢰할 수 있는 시스템을 빠르게 구축할 수 있게 합니다. 연구실의 혁신을 실무에서 바로 사용할 수 있는 환경, 그것이 이 프레임워크가 제공하는 핵심 가치입니다.


참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments