Back to posts

Claude Code 서브에이전트 (2) - 병렬 워크플로우

서브에이전트를 병렬로 실행하고 결과를 취합하는 패턴 실습.


배송센터별로 이상치를 탐지해야한다. 이떄 30개 이상의 배송센터 대규모 분석 필요했고 다음과 같은 문제점들을 발견 되었다.

  1. 속도저하 문제 발생
  2. 컨텍스트 윈도우 폭발

특히 컨텍스트 윈도우가 터지는문제는 매우 치명적이었다. 배송센터별로 독립적인 계산을 시도해야하는데, 상대적인 비교 평가를 시도했고, 컨텍스트윈도우가 계속 누적되다 터지는 현상이었다. 이를 해결하기 위해 병렬 & 애그리게잇 패턴을 도입한다.

병렬 & 애그리게잇 패턴 소개

여러 서브에이전트를 병렬로 실행하고, 메인 에이전트가 결과를 취합한다.

img.png

장점:

  • 독립적인 작업을 동시에 처리해서 시간 단축
  • 각 서브에이전트가 전문 영역에 집중
  • 리서치는 다른 모델에게 위임 가능 (더 빠르고 저렴한 모델을 사용)

실습 시나리오

배송센터별 메트릭을 병렬로 수집하고, 결과를 테이블로 취합하는 시나리오를 실습했다.

  1. 사용자 프롬프트 입력
  2. 서브에이전트 병렬 실행 (각 배송센터별 분석)
  3. 메인 에이전트에서 결과 취합 후 테이블로 출력

실행 프롬프트

아래 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분위 대응배송율
A0.42%0.31%0.76%0.55%0.40%0.85%
B0.38%0.28%0.72%0.48%0.35%0.80%

하이쿠 vs 소넷 성공률 비교 해보기

두 모델을 같은 프롬프트로 여러 번 실행해 봤다. 다음과 같이 성공률에 꽤 큰 차이가 났다.

모델시도성공성공률
Sonnet 4.56회6회100%
Haiku 4.56회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가 협업하는 사례로 오케스트레이터 패턴을 다룬다.