Claude Code 서브에이전트 (2) - 병렬 워크플로우
서브에이전트를 병렬로 실행하고 결과를 취합하는 패턴 실습.
- Claude Code 서브에이전트 (1) - 기초
- Claude Code 서브에이전트 (2) - 병렬 워크플로우
- Claude Code 서브에이전트 (3) - 오케스트레이터 패턴
배송센터별로 이상치를 탐지해야한다. 이떄 30개 이상의 배송센터 대규모 분석 필요했고 다음과 같은 문제점들을 발견 되었다.
- 속도저하 문제 발생
- 컨텍스트 윈도우 폭발
특히 컨텍스트 윈도우가 터지는문제는 매우 치명적이었다. 배송센터별로 독립적인 계산을 시도해야하는데, 상대적인 비교 평가를 시도했고, 컨텍스트윈도우가 계속 누적되다 터지는 현상이었다. 이를 해결하기 위해 병렬 & 애그리게잇 패턴을 도입한다.
병렬 & 애그리게잇 패턴 소개
여러 서브에이전트를 병렬로 실행하고, 메인 에이전트가 결과를 취합한다.

장점:
- 독립적인 작업을 동시에 처리해서 시간 단축
- 각 서브에이전트가 전문 영역에 집중
- 리서치는 다른 모델에게 위임 가능 (더 빠르고 저렴한 모델을 사용)
실습 시나리오
배송센터별 메트릭을 병렬로 수집하고, 결과를 테이블로 취합하는 시나리오를 실습했다.
- 사용자 프롬프트 입력
- 서브에이전트 병렬 실행 (각 배송센터별 분석)
- 메인 에이전트에서 결과 취합 후 테이블로 출력
실행 프롬프트
아래 2개의 배송센터의 메트릭을 확인하세요.
delivery-center-anomaly-detector를 활용하여 메트릭을 수집하고
각 배송센터별로 아래 데이터를 구해 집계하세요.
빠른 처리를 위해 병렬로 실행하세요.
데이터 집계가 완료되면, 이해하기 쉽게 컬럼으로 구성된 테이블로 출력하세요.
## 탐색 범위
- 배송예정일: 2025-07-14 ~ 2025-08-13
- 배송센터: A, B
## 필요 데이터
1. 평균 지연율
2. 평균 실패율
3. 평균 대응배송율
4. 4분위 지연율
5. 4분위 실패율
6. 4분위 대응배송율
핵심 포인트:
- "병렬로 실행하세요": 메인 에이전트가 서브에이전트를 동시에 호출하도록 유도
- 필요 데이터 명시: 서브에이전트가 무엇을 반환해야 하는지 명확히 지정
- 출력 형식 지정: 취합 결과를 테이블로 정리하도록 요청
실행 과정
메인 에이전트가 N개의 Task tool을 동시에 호출하는것을 확인함 :
⏺ 배송센터 메트릭 분석 중...
├─ Task: delivery-center-anomaly-detector (센터 A)
└─ Task: delivery-center-anomaly-detector (센터 B)
결과 취합
두 서브에이전트의 작업이 완료되면, 메인 에이전트가 결과를 취합한다:
| 배송센터 | 평균 지연율 | 평균 실패율 | 평균 대응배송율 | 4분위 지연율 | 4분위 실패율 | 4분위 대응배송율 |
|---|---|---|---|---|---|---|
| A | 0.42% | 0.31% | 0.76% | 0.55% | 0.40% | 0.85% |
| B | 0.38% | 0.28% | 0.72% | 0.48% | 0.35% | 0.80% |
하이쿠 vs 소넷 성공률 비교 해보기
두 모델을 같은 프롬프트로 여러 번 실행해 봤다. 다음과 같이 성공률에 꽤 큰 차이가 났다.
| 모델 | 시도 | 성공 | 성공률 |
|---|---|---|---|
| Sonnet 4.5 | 6회 | 6회 | 100% |
| Haiku 4.5 | 6회 | 6회 | 50% |
성공 케이스: 서브에이전트가 Python 코드로 IQR 계산을 직접 수행했다. 하이쿠의 실패 원인은 코드를 실행하지 않았다.
q1 = df['delay_rate'].quantile(0.25)
q3 = df['delay_rate'].quantile(0.75)
iqr = q3 - q1실패 케이스: 서브에이전트가 코드 없이 대략적인 추정값을 반환
Haiku는 코드 실행 없이 답변하려는 경향이 있었다. 프롬프트에 "반드시 코드로 계산하세요"를 추가하면 성공률이 올라갈 것이다.
병렬 실행 팁
명시적으로 병렬 요청하기
프롬프트에 "병렬로 실행하세요"를 명시하면 메인 에이전트가 Task tool을 동시에 호출한다. 명시하지 않으면 순차 실행될 수 있다.
독립적인 작업 단위로 분리
병렬 실행이 효과적이려면 각 서브에이전트의 작업이 서로 독립적이어야 한다. 의존성이 있으면 순차 실행이 맞다.
좋은 예시:
- 배송센터 A 분석 / 배송센터 B 분석 (독립적)
- 파일 A 검토 / 파일 B 검토 (독립적)
나쁜 예시:
- 데이터 조회 → 데이터 분석 (의존적, 순차 실행 필요)
정리
서브에이전트를 병렬로 실행하고 결과를 취합하는 패턴이 Claude Code에서 잘 동작한다. 모델과 프롬프트에 따라 성공률이 달라지니, 코드 실행 여부 등을 명시하는 게 좋다.
다음 글에서는 PM-엔지니어-QA가 협업하는 사례로 오케스트레이터 패턴을 다룬다.