Skip to content

Subagents (역할 분리 & 병렬 처리)

Subagent는 Claude Code v1.x 이상에서 지원되는 공식 기능입니다.

단일 Claude 세션에서 모든 걸 처리하다 보면 컨텍스트가 오염되고 집중력이 분산됩니다. Subagent는 특정 역할만 수행하는 독립된 AI 인스턴스로, 각자 별도의 컨텍스트 윈도우에서 실행됩니다.


Subagent의 핵심 특성

특성설명
독립 컨텍스트메인 세션과 별도의 컨텍스트 윈도우를 가짐
도구 제한허용된 도구만 사용 가능 (보안 + 토큰 절약)
전용 시스템 프롬프트역할에 맞는 지시사항을 주입
독립 권한메인 세션과 다른 권한 수준 설정 가능

Subagent 정의 방법

.claude/agents/ 폴더에 Markdown 파일로 정의합니다.

📁 프로젝트 루트/
└── .claude/
    └── agents/
        ├── frontend-reviewer.md
        ├── test-writer.md
        └── db-migration.md

또는 대화창에서 /agents 명령으로 생성할 수 있습니다.


Subagent 파일 구조 (Front-matter)

yaml
---
name: frontend-reviewer
description: React/TypeScript 컴포넌트 코드 리뷰 전문가.
             'UI 리뷰해줘', '컴포넌트 검토' 요청 시 자동 트리거.
tools: Read, Grep, Glob        # 읽기만 허용 (수정 불가)
model: claude-sonnet-4-5       # 비용 절약을 위해 Sonnet 사용
---

당신은 React/TypeScript 전문가입니다.

## 리뷰 기준
- Props 타입 정의가 명확한가
- 불필요한 리렌더링이 있는가
- 접근성(a11y) 속성이 누락됐는가
- 컴포넌트가 단일 책임 원칙을 지키는가

## 출력 형식
문제점은 파일명과 줄 번호를 명시하고, 심각도를 [critical / warning / suggestion]으로 분류하세요.

Front-matter 옵션 전체 목록

옵션타입설명기본값
namestring에이전트 식별자파일명
descriptionstring트리거 조건 포함한 역할 설명필수
toolsstring허용 도구 목록 (쉼표 구분)전체 허용
modelstring사용할 Claude 모델메인 세션 모델

사용 가능한 도구 목록:

도구동작
Read파일 읽기
Write파일 쓰기/생성
Edit파일 수정
Bash터미널 명령 실행
Grep파일 내 텍스트 검색
Glob파일 패턴 검색
WebFetch웹 페이지 조회

💡 tools: Read, Grep, Glob 처럼 읽기 전용 도구만 허용하면 코드 리뷰 에이전트가 실수로 파일을 수정하는 것을 원천 차단합니다. 보안과 토큰 절약 두 가지 효과가 있습니다.


병렬 vs 순차 실행 판단 기준

에이전트를 여러 개 띄울 때 가장 중요한 판단입니다.

조건실행 방식
작업이 서로 독립적 + 같은 파일 수정 없음병렬 실행
이전 결과가 다음 단계에 필요순차 실행
같은 파일을 두 에이전트가 수정해야 함순차 실행 (충돌 방지)

병렬 실행 예시 (독립적인 작업):

백엔드 에이전트: /api 폴더의 라우트 작성
프론트엔드 에이전트: /components 폴더의 UI 컴포넌트 작성
→ 서로 다른 파일을 건드리므로 동시에 진행 가능

순차 실행 예시 (의존성 있는 작업):

1단계: DB 스키마 에이전트 → schema.sql 생성
2단계: API 에이전트 → 1단계 결과를 보고 라우트 작성
→ 2단계가 1단계 결과에 의존하므로 순차 실행 필요

비용 계산 & 절감 팁

서브에이전트는 각자 별도의 컨텍스트 윈도우를 사용합니다. 3개 에이전트를 병렬 실행하면 토큰이 최대 3배 소비됩니다.

모델 분리 전략 (비용 절감 핵심):

bash
# 메인 세션: Opus (복잡한 판단, 조율)
# 서브에이전트: Sonnet (실행 작업)
export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-5"

.claude/agents/ 파일에서도 모델을 개별 지정할 수 있습니다.

yaml
---
name: file-scanner
model: claude-haiku-4-5   # 단순 파일 탐색은 Haiku로
tools: Read, Glob
---

실전 활용 예시

풀스택 기능 개발

메인 세션 (Opus): 요구사항 분석 → 작업 분리 → 결과 통합
  ├── backend-agent (Sonnet): API 라우트, 비즈니스 로직
  └── frontend-agent (Sonnet): React 컴포넌트, 상태 관리

코드 품질 파이프라인

메인 세션: /code-review 커맨드 실행
  ├── lint-agent: ESLint, TypeScript 오류 탐지
  ├── test-agent: 테스트 커버리지 분석
  └── security-agent: 취약점 스캔

문서화 자동화

메인 세션: 변경된 파일 목록 추출
  └── doc-agent (Haiku): 각 파일의 JSDoc 주석 업데이트

주의사항

서브에이전트가 필요 없는 경우 단순히 작업을 "더 잘" 하기 위해 에이전트를 추가하는 건 비용 낭비입니다. 작업이 독립적으로 분리될 수 없다면 단일 세션이 훨씬 효율적입니다.

컨텍스트 공유 불가 서브에이전트는 메인 세션의 대화 히스토리를 볼 수 없습니다. 필요한 맥락은 front-matter의 시스템 프롬프트나 파일로 전달해야 합니다.

→ WAT 프레임워크 전체 맥락은 wat-overview.md 참고

PR 환영합니다 ✦