AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Microsoft Agent Framework 튜토리얼 – SKILL-first 설계로 에이전트가 에이전트를 만드는 아키텍처

ms-agent-framework에서 제안하는 핵심 원칙은 단순하다: 에이전트를 만드는 에이전트와 에이전트를 운영하는 에이전트를 완전히 분리한다. 이 글은 Microsoft Agent Framework와 Microsoft Foundry를 이용해 SKILL-first 설계로 두 레이어 아키텍처를 구현하는 방법을 ZavaShop이라는 가상 이커머스 기업 사례로 설명한다.

왜 두 레이어인가

대부분의 에이전트 튜토리얼은 “에이전트 빌드”와 “에이전트 실행”을 하나의 코드 덩어리로 섞어버린다. 이러면 두 가지 문제가 생긴다:

  • 빌드 타임 요구사항(코드 컨벤션, 픽스처, 검증)이 런타임 추론 로직과 뒤엉킴
  • 도메인 지식이 프롬프트에 흩어져 버전 관리·재사용이 어려움

두 레이어를 분리하면:

Layer 1 (빌드 타임) ─ Coding Agent + SKILL → 에이전트 아티팩트 생성 → Foundry 배포
Layer 2 (런타임)    ─ Runtime Agent → 사용자 요청 처리 → 채널로 응답 스트리밍

Layer 1: Coding Agent와 SKILL

SKILL이란

SKILL은 Coding Agent가 코드를 한 줄도 생성하기 전에 읽는 구조화된 명세 파일이다. 내용은 다음을 포함한다:

  • 목적: 이 에이전트가 해결하는 비즈니스 문제
  • 도구 목록: MCP 엔드포인트, API, 함수 시그니처
  • 컨벤션: 프레임워크 스타일, 명명 규칙, 에러 처리 패턴
  • 픽스처: 테스트용 샘플 데이터와 예상 출력

ZavaShop에는 6개의 SKILL이 있다: 재고 조회, 공급업체 알림, 배송 추적, 이상 탐지, 대시보드 집계, 보고서 생성.

Coding Agent의 워크플로 (한 문장 → 실행 가능한 에이전트)

Step 1 — 라우팅: 입력 요청을 적절한 SKILL에 매핑
Step 2 — 계획: 구현 계획 수립 (도구·컨벤션·픽스처 기반)
Step 3 — 생성: SKILL에 맞는 에이전트 코드 작성
Step 4 — 검증: 생성된 에이전트를 픽스처로 자동 테스트
Step 5 — 완료: Foundry에 패키징·배포
# Python 예시 — Coding Agent가 생성하는 Runtime Agent 구조
agent = client.create_agent(
    name="Zara",
    instructions=skill.to_prompt(),      # SKILL → 프롬프트 변환
    tools=skill.tools,                   # SKILL에 정의된 도구 목록
    model="gpt-4o",
)

Layer 2: Runtime Agent

Runtime Agent는 빌드 결과물이다. 실제 사용자 요청을 받아 처리한다.

작동 구조

  1. 사용자 채널(Slack, Teams, API 등)에서 요청 수신
  2. 계획 수립 및 다음 단계 추론
  3. MCP·Toolbox·로컬 함수를 통해 도구 호출
  4. 메모리 읽기·쓰기 (장기 컨텍스트 유지)
  5. 결과를 채널로 스트리밍

특징

  • 프레임워크와 모델에 독립적: SKILL이 바뀌어도 Runtime Agent 구조는 그대로
  • 멀티채널: 동일한 에이전트를 Slack, 웹, API로 동시 서빙 가능
  • 메모리 내장: 사용자별 장기 기억을 유지해 반복 설명 불필요

ZavaShop 적용 예시

ZavaShop CEO는 5개 물류센터·수십 개 공급업체의 데이터를 한 대시보드에서 보고 싶다. SKILL-first 접근:

  1. inventory-skill.md → Coding Agent가 재고 조회 에이전트 생성
  2. supplier-skill.md → 공급업체 알림 에이전트 생성
  3. dashboard-skill.md → 집계 대시보드 에이전트 생성
  4. 세 에이전트를 Foundry에 배포 → CEO 채널에 연결

SKILL이 모든 컨벤션을 담고 있으므로 세 에이전트가 동일한 API 스타일, 에러 형식, 로깅 패턴을 자동으로 따른다.

Python과 .NET 지원

Python과 .NET(C#) 모두 동등하게 지원한다. SKILL 파일 형식은 언어에 무관하고, 코드 생성 단계에서만 언어가 갈린다. 팀이 주력으로 쓰는 언어 그대로 사용하면 된다.

참고 자료



AI Sparkup 구독하기

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