Multi-Agent Collaboration Patterns
2026-04-18 작성2026-06-30 수정23분 읽기
1. 왜 멀티 에이전트인가
단일 LLM 에이전트는 도메인이 넓어지고 툴 사용이 복잡해질수록 빠르게 한계를 드러냅니다. 운영 환경에서 관찰되는 대표적인 한계는 다음과 같습니다.
- 컨텍스트 윈도우 포화: Claude Opus 4.7의 1M 토큰도 대형 모노레포·장기 세션에서는 빠르게 소진되며, 주요 맥락이 요약 손실로 밀려남.
- 툴 스프롤 (Tool Sprawl): 하나의 에이전트에 20개 이상의 MCP 툴을 연결하면 tool-choice 정확도가 급격히 떨어짐 (Anthropic 2024 "Building effective agents" 참조).
- 전문성 범위 제한: 코드 리뷰·SQL 작성·보안 분석은 시스템 프롬프트와 few-shot 구성이 상이. 하나의 프롬프트로 모두 만족시키기 어려움.
- 비용-정확도 트레이드오프: Opus 급 모델을 모든 하위 작업에 쓰면 비용이 폭증, Haiku 급만 쓰면 복잡 추론에서 실패율 상승.
멀티 에이전트 시스템은 이러한 한계를 역할 분리(role decomposition), 전용 컨텍스트(scoped context), **병렬 실행(parallel execution)**으로 해결합니다. 반면 다음과 같은 역기능도 명시적으로 관리해야 합니다.
| 역기능 | 원인 | 완화 방법 |
|---|---|---|
| 통신 비용 | 에이전트 간 메시지 직렬화, 서로 재요약 | 구조화된 shared state, 핸드오프 시 필수 필드만 전달 |
| 합의 지연 | Voting/Debate 시 라운드 반복 | 라운드 상한, 타임박스, 조기 종료 조건 |
| 토큰 비용 폭증 | N개 에이전트 × 평균 토큰 × 라운드 수 | 조건부 escalation, 모델 티어링(Haiku → Sonnet → Opus) |
| 실패 전파 | 한 에이전트 실패가 체인 전체 중단 | Circuit breaker, fallback agent, 부분 결과 허용 |
| 관측 복잡도 | 중첩 trace, 원인 추적 난이도 상승 | Langfuse/OTel hierarchy, agent_name span tag 필수화 |
결정 기준
하위 작업이 (a) 명확히 분리된 역할 또는 (b) 독립 병렬 실행으로 이득을 볼 때만 멀티 에이전트를 도입합니다. 선형 파이프라인은 단일 에이전트 + tool-use가 거의 항상 더 저렴합니다.
2. 핵심 협업 패턴
실무에서 반복적으로 관찰되는 6개 패턴을 정리합니다. 대부분의 시스템은 이 중 2-3개를 조합한 하이브리드입니다.
2.1 Orchestrator-Worker (Router 패턴)
오케스트레이터 에이전트가 사용자 요청을 받아 sub-task로 분해하고, 전문 워커 에이전트에게 할당합니다. 워커의 결과를 수집해 최종 응답을 합성합니다.
- 대표 구현: LangGraph Supervisor, Strands Agents Graph, OpenAI Agents SDK Handoff.
- 적합: 명확히 분류 가능한 도메인 (SQL / 코드 / 검색), 고정된 워커 풀.
- 주의: 오케스트레이터가 병목이 되기 쉬움. 병렬 실행 가능한 sub-task는
asyncio.gather등으로 fan-out.
2.2 Hierarchical Supervisor (Manager-Team)
Orchestrator-Worker를 다층으로 확장한 형태입니다. 최상위 Supervisor가 여러 Team Lead에게 위임하고, 각 Team Lead가 Specialist들을 관리합니다.
- 대표 구현: LangGraph Multi-Agent Supervisor, CrewAI
Crew(process=Process.hierarchical, manager_agent=...). - 적합: 3단 이상의 의사결정 깊이가 필요한 대규모 과제 (예: 전체 서비스 리팩터링, 엔터프라이즈 문서 자동 생성).
- 주의: Supervisor 계층이 깊을수록 지연·비용 증가. 2-3단을 넘기지 않는 것을 권장.