AI Agents for Beginners - 8. Multi-Agent Design Pattern
Multi-agent design patterns — when to use them, building blocks of agent communication and coordination, Group Chat / Hand-off / Collaborative Filtering patterns, and a WorkflowBuilder pipeline walkthrough.
June 9, 2026
AI Agents for Beginners - 8. Multi-Agent Design Pattern
이 글은 Microsoft의 AI Agents for Beginners 강좌 Lesson 08을 기반으로 정리한 내용입니다.
Scenarios Where Multi-Agents Are Applicable
Multi-Agent System은 여러 에이전트가 공통 목표를 달성하기 위해 함께 동작하는 디자인 패턴입니다.
특히 다음 세 가지 상황에서 멀티에이전트를 사용하면 큰 이점을 얻을 수 있습니다:
특히 다음 세 가지 상황에서 멀티에이전트를 사용하면 큰 이점을 얻을 수 있습니다:
| 시나리오 | 설명 | 예시 |
|---|---|---|
| Large Workloads | 대규모 태스크를 작은 단위로 나눠 병렬 처리 | 대용량 데이터 파이프라인 |
| Complex Tasks | 복잡한 태스크를 전문 영역별로 분리 | 자율주행: 내비게이션·장애물 감지·통신 에이전트 |
| Diverse Expertise | 각 에이전트가 서로 다른 전문성을 보유 | 의료: 진단·치료 계획·환자 모니터링 에이전트 |
Advantages of Using Multi-Agents Over a Singular Agent
단일 에이전트 시스템은 간단한 태스크에 잘 동작하지만, 복잡한 태스크에서는 멀티에이전트가 여러 이점을 제공합니다.
| 장점 | 설명 |
|---|---|
| Specialization | 각 에이전트가 특정 태스크에 집중 → 복잡한 요청에도 혼란 없음 |
| Scalability | 새 에이전트 추가로 시스템 확장, 기존 에이전트 수정 불필요 |
| Fault Tolerance | 하나의 에이전트가 실패해도 나머지가 계속 동작 |
예를 들어 여행 예약 시스템을 단일 에이전트(mom-and-pop)로 만들면 항공·호텔·렌터카를 모두 처리하는 복잡하고 유지보수가 어려운 시스템이 됩니다. 멀티에이전트(franchise)로 구성하면 각 영역 전담 에이전트로 모듈화되어 확장·유지보수가 쉬워집니다.
Single Agent vs Multi-AgentMermaidflowchart LR subgraph Single["단일 에이전트 (Mom & Pop)"] SA["SingleAgent\n항공+호텔+렌터카\n모두 처리"] end subgraph Multi["멀티 에이전트 (Franchise)"] FA["FlightAgent"] HA["HotelAgent"] CA["CarAgent"] end User1["User"] --> SA User2["User"] --> FA & HA & CA
Building Blocks of Implementing the Multi-Agent Design Pattern
멀티에이전트 시스템을 구현하기 위한 핵심 빌딩 블록:
| Building Block | 설명 | 여행 예약 예시 |
|---|---|---|
| Agent Communication | 에이전트 간 정보 공유 방식·프로토콜 결정 | 항공 에이전트가 호텔 에이전트에 여행 날짜 전달 |
| Coordination Mechanisms | 사용자 선호·제약 조건을 맞추기 위한 에이전트 간 조율 | 호텔 위치와 렌터카 픽업 장소 조율 |
| Agent Architecture | 에이전트 내부 의사결정 구조와 학습 메커니즘 | 과거 선호도 기반 ML 모델로 항공편 추천 |
| Visibility | 에이전트 활동·상호작용 추적 도구 | 대시보드로 각 에이전트 상태 모니터링 |
| Multi-Agent Patterns | 중앙집중·분산·하이브리드 아키텍처 선택 | Group Chat, Hand-off, Collaborative Filtering |
| Human-in-the-Loop | 에이전트가 인간 개입을 요청하는 시점 정의 | 최종 예약 전 사용자 확인 요청 |
Multi-Agent Building BlocksMermaidflowchart TD MAD["Multi-Agent\nDesign Pattern"] MAD --> Comm["Agent Communication\n정보 공유 방식"] MAD --> Coord["Coordination\n제약 조건 조율"] MAD --> Arch["Agent Architecture\n의사결정·학습"] MAD --> Vis["Visibility\n활동 추적"] MAD --> Pat["Patterns\nGroup/Hand-off/Filter"] MAD --> HITL["Human-in-the-Loop\n개입 시점 정의"]
Multi-Agent Patterns
Group Chat
여러 에이전트가 그룹 채팅 형식으로 메시지를 주고받는 패턴입니다.
팀 협업, 고객 지원, 소셜 네트워킹 등에 활용됩니다.
팀 협업, 고객 지원, 소셜 네트워킹 등에 활용됩니다.
- 중앙 서버를 통한 Centralized 아키텍처, 또는 에이전트 간 직접 교환하는 Decentralized 아키텍처로 구현 가능
- 각 에이전트는 그룹 채팅에 메시지를 전송·수신하고 응답합니다
Group Chat PatternMermaidflowchart LR GroupChat["Group Chat\n(Central Hub)"] A1["Agent 1\nTravelPlanner"] <--> GroupChat A2["Agent 2\nConcierge"] <--> GroupChat A3["Agent 3\nBudgetReviewer"] <--> GroupChat User["User"] --> GroupChat GroupChat --> User
Hand-off
하나의 에이전트가 태스크를 완료한 뒤 다음 에이전트에게 전달하는 패턴입니다.
고객 지원, 태스크 관리, 워크플로우 자동화에 적합합니다.
고객 지원, 태스크 관리, 워크플로우 자동화에 적합합니다.
zenuml title Hand-off Pattern User->AgentA: initial request AgentA->AgentA: process own scope AgentA->AgentB: hand off with context AgentB->AgentB: process own scope AgentB->AgentC: hand off with context AgentC->User: final response
Collaborative Filtering
여러 에이전트가 각자의 전문성을 바탕으로 협력해 추천을 생성하는 패턴입니다.
주식 추천 시나리오를 예로 들면:
주식 추천 시나리오를 예로 들면:
| 에이전트 | 전문 영역 |
|---|---|
| Industry Expert Agent | 특정 산업 도메인 지식 |
| Technical Analysis Agent | 차트·패턴 분석 |
| Fundamental Analysis Agent | 재무제표·기업 가치 분석 |
세 에이전트가 협력해 단일 에이전트보다 훨씬 포괄적인 추천을 제공합니다.
Collaborative Filtering PatternMermaidflowchart TD User["User\n'어떤 주식을 사야 할까요?'"] --> Coordinator["Coordinator Agent\n요청 분배 & 결과 취합"] Coordinator --> IE["Industry Expert Agent\n산업 트렌드·섹터 분석"] Coordinator --> TA["Technical Analysis Agent\n차트·패턴·진입 시점 분석"] Coordinator --> FA["Fundamental Analysis Agent\n재무제표·기업 가치 분석"] IE --> Agg["Aggregator\n다각도 인사이트 종합"] TA --> Agg FA --> Agg Agg --> Rec["Comprehensive Recommendation\n포괄적 투자 추천"] Rec --> User
Creating Specialized Agents
Setup
setup.pypython
WorkflowBuilder를 사용하면 에이전트를 방향 그래프(directed graph)로 연결할 수 있습니다.
먼저 각각 집중된 역할을 가진 전문 에이전트를 만듭니다:
먼저 각각 집중된 역할을 가진 전문 에이전트를 만듭니다:
specialized_agents.pypython
Specialized AgentsMermaidflowchart LR P["TravelPlanner\n일정 초안 작성\n(attractions, logistics)"] C["TravelConcierge\n계획 검토·강화\n(tips, restaurants, issues)"] P -->|"context 전달"| C
Sequential Workflow with WorkflowBuilder
WorkflowBuilder로 에이전트를 순차 파이프라인으로 연결합니다.add_edge(A, B)는 A의 출력이 B의 입력으로 흐르는 엣지를 정의합니다:sequential_workflow.pypython
Sequential Workflow: 2-Agent PipelineMermaidflowchart LR U["User\n'Plan 5-day Paris, $3000'"] --> W["WorkflowBuilder\nstart_executor=planner_agent"] W --> P["TravelPlanner\n일정 초안 작성\n(attractions, logistics)"] P -->|"AgentResponseUpdate"| C["TravelConcierge\n계획 검토·강화\n(tips, restaurants, issues)"] C -->|"AgentResponseUpdate"| S["Stream to User"]
Extending the Workflow
멀티에이전트 패턴의 가장 큰 장점 중 하나는 기존 에이전트를 수정하지 않고 새 에이전트를 추가할 수 있다는 점입니다.
BudgetReviewer 에이전트를 추가해 3단계 파이프라인으로 확장합니다:
BudgetReviewer 에이전트를 추가해 3단계 파이프라인으로 확장합니다:
extended_workflow.pypython
Extended 3-Agent PipelineMermaidflowchart LR U["User\n'5-day Paris, $3000'"] --> P["TravelPlanner\n일정 초안"] --> C["TravelConcierge\n검토·강화"] --> B["BudgetReviewer\n예산 검증·절약 제안"] --> R["Final\nItinerary"]
Visibility into Multi-Agent Interactions
에이전트가 많아질수록 상호작용 추적이 필수입니다.
세 가지 도구로 멀티에이전트 시스템의 가시성을 확보합니다:
세 가지 도구로 멀티에이전트 시스템의 가시성을 확보합니다:
| 도구 | 내용 | 활용 |
|---|---|---|
| Logging & Monitoring | 에이전트·액션·시각·결과를 로그로 기록 | 디버깅, 성능 최적화 |
| Visualization Tools | 에이전트 간 정보 흐름을 그래프로 시각화 | 병목·비효율 구간 식별 |
| Performance Metrics | 태스크 완료 시간, 처리량, 추천 정확도 추적 | 시스템 개선 영역 파악 |
여행 예약 대시보드 예시: 각 에이전트 상태, 사용자 선호·제약 조건, 에이전트 간 교환 정보를 한눈에 확인.
Scenario: Refund Process
환불 프로세스를 멀티에이전트로 설계하면 어떻게 될까요?
에이전트는 프로세스 전용과 범용으로 나뉩니다:
에이전트는 프로세스 전용과 범용으로 나뉩니다:
Refund-specific agents
| 에이전트 | 역할 |
|---|---|
| Customer Agent | 고객을 대표하며 환불 프로세스 시작 |
| Seller Agent | 판매자를 대표하며 환불 처리 |
| Payment Agent | 결제 환불 처리 |
| Resolution Agent | 환불 중 발생한 이슈 해결 |
| Compliance Agent | 규정·정책 준수 검증 |
General-purpose agents (다른 비즈니스 프로세스에서도 재사용 가능)
| 에이전트 | 역할 |
|---|---|
| Shipping Agent | 제품 반송 처리 (구매 배송에도 활용) |
| Notification Agent | 각 단계별 고객 알림 발송 |
| Escalation Agent | 이슈를 상위 지원으로 에스컬레이션 |
| Feedback Agent | 고객 피드백 수집 |
| Audit Agent | 프로세스 감사 |
| Analytics Agent | 데이터 분석 |
Refund Process Multi-Agent SystemMermaid%%{init: {'look': 'default', 'themeVariables': {'clusterBkg': '#e8efff28', 'clusterBorder': '#aabbcc'}, 'flowchart': {'subGraphTitleMargin': {'top': 14, 'bottom': 8}}}}%% flowchart TD subgraph Core["핵심 환불 흐름 (순차)"] Customer["Customer Agent\n환불 요청"] Resolution["Resolution Agent\n이슈 분석·조율"] Seller["Seller Agent\n환불 승인"] Payment["Payment Agent\n결제 환불"] end subgraph Checks["병렬 검증 — Resolution 단계"] direction LR Compliance["Compliance Agent\n규정 준수 검증"] Security["Security Agent\n보안 검증"] Knowledge["Knowledge Agent\n정책·규정 참조"] end subgraph Fulfillment["병렬 이행 — Seller 단계"] Shipping["Shipping Agent\n제품 반송 처리"] end subgraph PostProcess["사후 처리 (병렬)"] direction LR Feedback["Feedback Agent\n고객 피드백 수집"] Analytics["Analytics Agent\n데이터 분석"] Audit["Audit Agent\n프로세스 감사"] Reporting["Reporting Agent\n보고서 생성"] Quality["Quality Agent\n품질 검증"] end Escalation["Escalation Agent\n상위 지원 에스컬레이션"] Notification["Notification Agent\n단계별 고객 알림"] Customer --> Resolution Resolution -->|"이슈 복잡"| Escalation Resolution --> Compliance & Security & Knowledge Compliance & Security & Knowledge --> Seller Seller --> Payment & Shipping Customer & Seller & Payment --> Notification Payment --> Feedback & Analytics & Audit & Reporting & Quality
범용 에이전트(Shipping, Notification, Escalation 등)는 다른 프로세스에서도 재사용할 수 있어 시스템 전체의 모듈성과 확장성을 높입니다.
Summary
Lesson 08 SummaryMermaidflowchart LR Root["Multi-Agent\nDesign Pattern"] Root --> Why["Why Multi-Agent?"] Root --> Blocks["Building Blocks"] Root --> Patterns["Patterns"] Root --> Code["WorkflowBuilder"] Root --> Vis["Visibility"] Why --> W1["Specialization"] Why --> W2["Scalability"] Why --> W3["Fault Tolerance"] Blocks --> B1["Communication"] Blocks --> B2["Coordination"] Blocks --> B3["Architecture"] Patterns --> P1["Group Chat"] Patterns --> P2["Hand-off"] Patterns --> P3["Collaborative\nFiltering"] Code --> C1["create_agent x N"] Code --> C2["WorkflowBuilder\n+ add_edge"] Code --> C3["stream output"] Vis --> V1["Logging"] Vis --> V2["Visualization"] Vis --> V3["Metrics"]
- Multi-Agent System은 Specialization·Scalability·Fault Tolerance로 단일 에이전트의 한계를 극복합니다
- WorkflowBuilder의
add_edge로 에이전트를 순차 파이프라인으로 연결하고, 기존 코드 수정 없이 새 에이전트를 추가해 확장합니다 - Group Chat·Hand-off·Collaborative Filtering 세 가지 패턴으로 에이전트 간 통신·조율 방식을 선택합니다
- 에이전트 수가 많아질수록 Logging·Visualization·Performance Metrics로 상호작용 가시성을 확보하는 것이 중요합니다