하나의 AI 에이전트로 모든 것을 해결하려고 했던 적이 있으신가요? 간단한 작업에는 문제없지만, 프로젝트가 복잡해질수록 단일 에이전트의 한계가 드러납니다. 컨텍스트 윈도우가 부족하고, 작업이 뒤엉키고, 결과물의 품질이 떨어집니다.
❝혼자서 모든 일을 하는 풀스택 엔지니어보다, 역할이 명확한 팀이 더 효과적인 것처럼, AI 에이전트도 마찬가지입니다.
❞
Anthropic은 이 문제를 멀티 에이전트 시스템으로 해결했습니다. 복잡한 쿼리의 처리 시간을 최대 90%까지 단축한 이 시스템의 핵심 패턴을 살펴보겠습니다.
이 글은 Anthropic Engineering Blog의 "How we built our multi-agent research system"과 Anthropic의 6가지 에이전트 구성 패턴을 참고하여 작성했습니다.왜 멀티 에이전트인가?
✦단일 에이전트의 한계
| 문제 | 증상 | 원인 |
|---|---|---|
| 컨텍스트 폭발 | 대규모 코드베이스 처리 불가 | 단일 윈도우 용량 한계 |
| 작업 뒤엉킴 | 여러 작업을 번갈아 하다 실수 | 역할 분리 없음 |
| 병목 현상 | 순차 처리로 시간 낭비 | 병렬 처리 불가 |
| 전문성 부족 | 모든 분야에 보통 수준 | 특화 불가 |
❌ 단일 에이전트:
"코드 작성 + 리뷰 + 테스트 + 문서화를 혼자 다 하겠습니다"
→ 컨텍스트 부족, 품질 저하
✅ 멀티 에이전트:
Coder: "코드 작성에 집중합니다"
Reviewer: "코드 리뷰에 집중합니다"
Tester: "테스트에 집중합니다"
→ 각자의 전문성 발휘✦멀티 에이전트의 장점
- ❧병렬 처리: 독립적인 작업을 동시 수행
- ❧전문화: 각 에이전트가 특정 역할에 특화
- ❧확장성: 작업량에 따라 에이전트 수 조절
- ❧격리: 한 에이전트의 실패가 전체에 영향 최소화
6가지 에이전트 구성 패턴
Anthropic은 멀티 에이전트 시스템을 설계할 때 활용할 수 있는 6가지 구성 패턴을 제시합니다. 복잡도가 낮은 것부터 높은 순서로 살펴보겠습니다.
✦1. Prompt Chaining (프롬프트 체이닝)
작업을 순차적 단계로 분해하여, 각 단계의 결과를 다음 단계의 입력으로 전달합니다.
[단계 1] → 결과 → [단계 2] → 결과 → [단계 3]
💡 예시: 블로그 작성
개요 생성 → 품질 평가 → 본문 작성 → 최종 편집- ❧작업을 명확한 단계로 분해할 수 있을 때
- ❧각 단계의 입출력이 명확할 때
- ❧단계 간 의존성이 복잡할 때
- ❧병렬 처리가 필요할 때
✦2. Routing (라우팅)
입력을 분석하여 적절한 전문 에이전트로 분배합니다.
┌→ [환불 에이전트]
[입력] →┤→ [기술 지원 에이전트]
└→ [일반 문의 에이전트]
💡 예시: 고객 서비스
"환불 요청" → 환불 담당
"로그인 안 됨" → 기술 지원
"영업시간 문의" → 일반 문의- ❧입력 유형이 명확히 구분될 때
- ❧각 유형별 전문 처리가 필요할 때
✦3. Parallelization (병렬화)
여러 에이전트가 동시에 작업을 수행하고 결과를 통합합니다.
┌→ [에이전트 A] → 결과A ─┐
[입력] →┤→ [에이전트 B] → 결과B ─┤→ [통합]
└→ [에이전트 C] → 결과C ─┘
💡 예시: 코드 리뷰
보안 검사 + 성능 분석 + 스타일 검사 동시 수행- ❧작업이 독립적으로 분할 가능할 때
- ❧처리 속도가 중요할 때
✦4. Orchestrator-Worker (오케스트레이터-워커)
오케스트레이터가 작업을 동적으로 분석하고, 워커에게 할당합니다. 미리 정해진 흐름이 아니라 상황에 따라 유연하게 대응합니다.
[오케스트레이터]
├→ "이 부분은 A가 처리" → [워커 A]
├→ "이 부분은 B가 처리" → [워커 B]
└→ "추가 조사 필요" → [워커 C] (동적 생성)적합한 경우:❝Anthropic의 멀티 에이전트 연구 시스템이 바로 이 패턴을 사용합니다. Lead Agent가 쿼리를 분석하고, 3-5개의 Subagent를 동적으로 생성하여 병렬 처리합니다.
❞
- ❧작업의 복잡도를 사전에 예측하기 어려울 때
- ❧유연한 작업 분배가 필요할 때
✦5. Evaluator-Optimizer (평가자-최적화자)
최적화자가 결과물을 생성하고, 평가자가 검토하여 피드백을 제공합니다. 품질 기준을 충족할 때까지 반복합니다.
[최적화자] → 초안 → [평가자]
↑ │
└── 피드백 ─────────┘
(기준 충족까지 반복)
💡 예시: 코드 작성
Coder가 코드 작성 → Reviewer가 리뷰
→ 피드백 반영 → 재리뷰 → 승인- ❧높은 품질 기준이 요구될 때
- ❧명확한 평가 기준이 있을 때
✦6. Autonomous Agent (자율 에이전트)
최소한의 인간 입력으로 독립적으로 판단하고 행동합니다. 환경 피드백을 기반으로 자가 평가합니다.
[목표 설정] → [자율 에이전트]
├→ 계획 수립
├→ 도구 사용
├→ 결과 평가
└→ 필요시 방향 수정- ❧장기 실행 작업
- ❧높은 수준의 자율성이 가능한 환경
⚠️ 주의: 자율성이 높을수록 모니터링과 안전장치가 필수입니다.
어떤 패턴을 선택해야 하는가?
| 상황 | 추천 패턴 |
|---|---|
| 단순하고 순차적인 작업 | Prompt Chaining |
| 입력 유형별 다른 처리 | Routing |
| 독립적 작업의 동시 처리 | Parallelization |
| 복잡하고 예측 불가능한 작업 | Orchestrator-Worker |
| 높은 품질이 필요한 작업 | Evaluator-Optimizer |
| 장기 자율 실행 | Autonomous Agent |
💡 패턴은 조합할 수 있습니다. 예를 들어, Orchestrator-Worker 안에서 각 Worker가 Evaluator-Optimizer 패턴을 사용할 수 있습니다.
Anthropic의 멀티 에이전트 연구 시스템
Anthropic이 실제로 구축한 시스템의 아키텍처를 살펴보겠습니다.
✦전체 구조
[사용자 쿼리]
│
▼
[Lead Agent]
├→ 쿼리 분석 및 전략 수립
├→ 메모리에 계획 저장
│
├→ [Subagent 1] ── 웹 검색, 정보 수집
├→ [Subagent 2] ── 웹 검색, 정보 수집
├→ [Subagent 3] ── 웹 검색, 정보 수집
│
├→ 결과 종합 및 추가 연구 판단
│
└→ [Citation Agent] ── 최종 인용 처리✦Lead Agent의 역할
- ❧사용자 쿼리를 분석하고 접근 전략을 수립
- ❧확장된 사고 모드로 계획을 메모리에 저장 (200K 토큰 초과 방지)
- ❧Subagent의 성과를 종합하고 추가 연구 필요성 판단
✦Subagent의 역할
- ❧Lead Agent가 정의한 구체적 연구 작업 수행
- ❧웹 검색 및 정보 수집
- ❧발견사항을 Lead Agent에 반환
✦핵심 성과
| 지표 | 결과 |
|---|---|
| 처리 시간 단축 | 최대 90% |
| 동시 실행 에이전트 | 3-5개 |
| 도구 병렬화 | 각 에이전트당 3개+ 동시 사용 |
프로덕션 교훈
Anthropic 팀이 멀티 에이전트 시스템을 운영하며 얻은 교훈입니다.
✦프롬프트 설계
💡 에이전트에게 위임할 때:
- 명확한 목표(objective) 제시
- 출력 형식(output format) 정의
- 사용할 도구와 소스 안내
- 명확한 작업 경계(task boundaries) 설정❝"최고의 에이전트 프롬프트는 단순한 지시가 아니라, 업무 분담과 문제 해결 접근법, 노력 배분을 정의하는 협업 프레임워크입니다."
❞
✦복잡도에 따른 확장
| 쿼리 복잡도 | 에이전트 수 | 접근법 |
|---|---|---|
| 단순 | 1개 | 직접 처리 |
| 보통 | 2-3개 | 병렬 검색 |
| 복잡 | 5-10+개 | 다단계 연구 |
✦"Last Mile" 문제
❝"프로토타입에서 프로덕션까지의 마지막 구간이, 전체 여정의 대부분이 됩니다."
❞
- ❧상태 관리: 장시간 실행 중 견고한 실행 코드 필요
- ❧관찰성: 에이전트의 결정 패턴을 모니터링
- ❧점진적 배포: "Rainbow deployments"로 기존 에이전트 중단 없이 전환
마치며
✦핵심 요약
| 개념 | 설명 |
|---|---|
| 멀티 에이전트 | 여러 전문 에이전트가 역할을 나누어 협업하는 시스템 |
| 6가지 패턴 | Chaining, Routing, Parallelization, Orchestrator-Worker, Evaluator-Optimizer, Autonomous |
| 핵심 원칙 | 단순한 패턴부터 시작하고, 필요할 때만 복잡도를 높이기 |
| 프로덕션 교훈 | "마지막 구간이 전체 여정의 대부분" |
❝"혼자서 모든 것을 해결하려는 슈퍼 에이전트보다, 역할이 명확한 에이전트 팀이 더 효과적입니다. 핵심은 적절한 패턴을 선택하고, 단순한 것부터 시작하는 것입니다."
❞