How we built our multi-agent research system
How we built our multi-agent research system
출처: https://www.anthropic.com/engineering/multi-agent-research-system
- 출처: Anthropic Engineering Blog
- 주제: Claude의 Research 기능을 위한 멀티에이전트 시스템 구축
- 핵심 키워드: Multi-Agent System, Orchestrator-Worker Pattern, Claude Opus 4, Claude Sonnet 4
1. 개요 (Overview)
멀티에이전트 시스템 정의
- 멀티에이전트 시스템: “여러 에이전트(도구를 자율적으로 루프에서 사용하는 LLM)가 함께 작동”하는 시스템
- 사용자가 쿼리를 제출하면, 리드 에이전트가 분석하고 전략을 수립한 후 병렬로 서브에이전트를 생성하여 다양한 측면을 동시에 탐색
핵심 성과
- Claude Opus 4를 리드 에이전트로, Claude Sonnet 4를 서브에이전트로 사용한 멀티에이전트 시스템이 단일 에이전트 Claude Opus 4 대비 90.2% 성능 향상
- 분석 결과, 토큰 사용량이 성능 차이의 80%를 설명하며, 도구 호출과 모델 선택이 나머지를 차지
2. 시스템 아키텍처 (System Architecture)
2.1 Orchestrator-Worker 패턴
시스템은 3가지 핵심 컴포넌트로 구성:
(1) Lead Researcher Agent (리드 연구원 에이전트)
- 역할: 중앙 조정자
- 사용자 쿼리를 분석하고 조사 전략 수립
- 입력 쿼리를 하위 질문이나 연구 경로로 분해
- 조사 방법 결정 및 작업 위임
- Memory에 계획 저장하여 장기 연구 작업 중 토큰 한도 문제 방지
- “훌륭한 연구 프로젝트 매니저”처럼 작업 분해, 자원 조정, 결과 통합에 탁월
(2) Subagents (서브에이전트)
- 역할: 전문화된 작업자
- 리드 에이전트가 생성하여 개별 작업을 병렬로 처리
- 특정 회사, 기간, 기술적 세부사항 등 쿼리의 특정 측면 탐색
- 각자 독립적인 컨텍스트 윈도우에서 작동
- 독립적으로 검색, 추론, 출처 인용 수행
- 가장 핵심적인 발견만 메인 에이전트에 전달
(3) Citation Agent (인용 에이전트)
- 역할: 검증자
- 모든 주장을 출처와 대조하여 검증
- 적절한 출처 귀속 보장
- 최종 출력물의 환각이나 잘못된 귀속 방지
2.2 전체 작업 흐름
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. 사용자 쿼리 입력
↓
2. Lead Researcher가 쿼리 분석 및 연구 계획 수립
↓
3. 병렬 서브에이전트 생성 (동시에 정보 검색)
↓
4. 결과 수집 및 종합
↓
5. 추가 연구 필요 여부 판단
├─ 필요시: 추가 서브에이전트 생성 또는 전략 수정
└─ 충분시: 다음 단계로 진행
↓
6. Citation Agent가 문서와 연구 보고서 처리
↓
7. 인용이 포함된 최종 연구 결과 사용자에게 반환
2.3 OODA 루프 (서브에이전트 연구 루프)
서브에이전트는 OODA 연구 루프를 사용:
- Observe (관찰): 지금까지 수집된 정보, 아직 수집해야 할 정보, 현재 사용 가능한 도구 파악
- Orient (방향설정): 필요한 정보 수집에 가장 적합한 도구와 쿼리 결정, 학습 내용을 바탕으로 신념 업데이트
- Decide (결정): 특정 도구를 특정 방식으로 사용하기로 정보에 입각한 합리적 결정
- Act (행동): 해당 도구 사용
3. 컨텍스트 관리 전략 (Context Management)
핵심 이점
- 각 하위 작업이 별도의 컨텍스트를 가짐
- 연구 작업의 일부로 훨씬 더 많은 양의 콘텐츠 처리 가능
- 200,000 토큰 컨텍스트 제한 관리가 핵심
작동 방식
- Lead Researcher는 접근 방식을 먼저 생각한 후 Memory에 계획 저장하여 컨텍스트 유지
- 컨텍스트 한도 초과 시 잘림(truncation) 발생하므로 메모리 활용이 중요
4. 8가지 프롬프팅 원칙 (Eight Prompting Principles)
원칙 1: 에이전트 행동 시뮬레이션
- Console을 사용하여 단계별 워크스루로 프롬프트 테스트
- 프로덕션 배포 전 실패 모드 관찰 및 식별
원칙 2: 상세한 작업 위임
서브에이전트에게 제공해야 할 정보:
- 명확한 목표
- 출력 형식
- 작업 경계
- 도구 안내
원칙 3: 노력 스케일링 (Effort Scaling)
에이전트는 적절한 노력 수준 판단에 어려움을 겪음 → 명시적 스케일링 규칙 내장:
| 쿼리 복잡도 | 서브에이전트 수 | 도구 호출 수 |
|---|---|---|
| 단순 팩트 체크 | 1개 | 3-10회 |
| 직접 비교 | 2-4개 | 각 10-15회 |
| 복잡한 연구 | 10개 이상 | 명확히 분담된 책임 |
2단계 병렬화 구현:
- 리드 에이전트가 3-5개 서브에이전트를 동시 생성
- 서브에이전트가 3개 이상의 도구를 병렬로 사용
원칙 4: 전략적 도구 설계
- 사용자 의도와 도구를 매칭하는 휴리스틱 필요
- 광범위한 웹 검색보다 전문화된 도구 선호
- 명확한 도구 설명 제공
원칙 5: 자동화된 개선 (Self-Improvement)
- Claude 4 모델은 프롬프트 엔지니어로서 뛰어난 능력 보유
- 프롬프트와 실패 모드를 제시하면 문제 진단 및 개선 제안 가능
- 도구 테스팅 에이전트 생성:
- 결함 있는 도구 사용 시도
- 실패 방지를 위해 설명 재작성
- 작업 완료 시간 40% 단축 달성
원칙 6: 점진적 검색 전략 (Breadth-First Exploration)
- 초기에는 광범위한 쿼리로 시작
- 인사이트가 나타나면 점차 초점 좁히기
원칙 7: 확장된 사고 모드 (Extended Thinking)
- 계획 수립: Extended thinking 사용
- 평가: 도구 출력 수신 후 Interleaved thinking 사용
원칙 8: 병렬 도구 실행
- 동시 서브에이전트 배포와 멀티 도구 실행 장려
- 복잡한 쿼리에서 연구 시간 최대 90% 단축
5. 성능 및 비용 분석 (Performance & Cost Analysis)
성능 지표
- 멀티에이전트 시스템: 단일 에이전트 대비 90.2% 성능 향상
- 복잡한 쿼리에서 병렬화로 연구 시간 최대 90% 단축
- 토큰 사용량이 성능 차이의 80% 설명
토큰 비용
| 사용 유형 | 토큰 사용량 (상대적) |
|---|---|
| 표준 채팅 | 1x (기준) |
| 단일 에이전트 | ~4x |
| 멀티에이전트 시스템 | ~15x |
비용 대비 가치
- 멀티에이전트 시스템은 고가치 작업에 적합
- 단일 컨텍스트 윈도우를 초과하는 정보와 상당한 병렬화가 필요한 작업에 효과적
- 결과의 가치가 비용을 상회하는 경우에 권장
6. 평가 방법론 (Evaluation Methodology)
소규모 테스트 우선
- 대규모 평가를 기다리지 않고 20개의 테스트 쿼리로 시작
- 작은 샘플로 개선 사항 감지 후 스케일링
LLM-as-Judge 평가
별도 모델이 0.0-1.0 척도로 출력물 점수화:
| 평가 기준 | 설명 |
|---|---|
| 사실적 정확성 | 정보의 정확도 |
| 인용 정밀도 | 출처 인용의 정확성 |
| 완전성 | 답변의 포괄성 |
| 출처 품질 | 참조 자료의 신뢰성 |
| 도구 효율성 | 도구 사용의 효율성 |
인간 검증의 중요성
- 도메인 전문가가 엣지 케이스 식별
- 환각, SEO 편향 등 발견하여 새로운 휴리스틱 반영
- 루브릭 기반 평가의 인간 테스트 검증
7. 프로덕션 엔지니어링 과제 (Production Engineering Challenges)
7.1 상태 관리 (Stateful Operations)
- 장기 실행 에이전트는 오류 누적
- 필요한 메커니즘:
- 지속적 실행 (Durable execution)
- 재개 가능한 체크포인트 (Resumable checkpoints)
- 적응형 도구 실패 처리
7.2 디버깅 복잡성
- 비결정적 에이전트 행동으로 디버깅 어려움
- 필요한 기능:
- 포괄적인 프로덕션 추적
- 고수준 의사결정 모니터링
- 민감한 사용자 데이터 보호
7.3 배포 위험
- 업데이트가 작업 중인 에이전트를 방해할 수 있음
- Rainbow 배포: 버전 간 트래픽을 점진적으로 전환
7.4 동기화 병목
- 현재 아키텍처: Lead Researcher가 서브에이전트 완료를 대기해야 함
- 처리량 제한 발생
- 비동기 실행으로 속도 개선 가능하지만 상태 관리 복잡성 증가
8. 초기 과제 및 해결책 (Early Challenges & Solutions)
초기 실패 사례
- 단순 쿼리에 50개의 서브에이전트 생성
- 존재하지 않는 출처를 찾아 웹을 끝없이 검색
- 과도한 업데이트로 서로를 방해
해결 접근법
- 모든 에이전트가 프롬프트에 의해 조종되므로 프롬프트 엔지니어링이 주요 레버
- 협업을 안내하는 프롬프트 프레임워크가 엄격한 규칙보다 중요
- 목표, 출력 형식, 도구 안내, 작업 경계를 명시하는 신중한 프롬프트 설계
SEO 편향 문제
- 인간 테스터 발견: 에이전트가 학술 논문 같은 권위 있는 출처보다 SEO 최적화 콘텐츠 선호
- 프롬프트 수정을 통해 품질 휴리스틱 조정으로 해결
9. 적합한 사용 사례 (Use Case Suitability)
적합한 경우
- 폭넓은, 병렬화 가능한 문제
- 신뢰할 수 있는 출처가 필요한 연구
- 단일 컨텍스트 윈도우를 초과하는 정보 처리
부적합한 경우
- 긴밀하게 상호의존적인 작업 (예: 코딩)
- 순차적 추론이 지배적인 작업
- 단순 팩트 체크 (비용 대비 효율성 낮음)
10. 핵심 인사이트 요약
| 항목 | 내용 |
|---|---|
| 아키텍처 | Orchestrator-Worker 패턴 (Lead + Subagents + Citation) |
| 성능 향상 | 단일 에이전트 대비 90.2% |
| 토큰 비용 | 표준 채팅의 15배 |
| 핵심 이점 | 여러 독립적 컨텍스트 윈도우에 추론 분산 |
| 자동 개선 | 도구 설명 재작성으로 40% 시간 단축 |
| 병렬화 효과 | 연구 시간 최대 90% 단축 |
This post is licensed under CC BY 4.0 by the author.