ai-rules 10-subagent-patterns · Subagent 활용 패턴

10-subagent-patterns Subagent 활용 패턴

왜 Subagent인가

왜 Subagent인가

메인 세션에서 탐색·분석 작업을 수행하면 컨텍스트 윈도우를 소비한다. Context 70% 초과 시 정밀도 저하, 85% 초과 시 할루시네이션 증가 (리서치 기반).

Subagent는 독립 컨텍스트로 실행되어 메인 세션을 오염시키지 않는다.


핵심 패턴: 탐색은 Subagent, 구현은 메인

탐색 작업(파일 읽기, 검색, 분석)을 메인에서 직접 하지 않고 Subagent에 위임 → 결과 요약만 메인으로 수신.

위임 적합 작업:

  • 프로젝트 전체 구조 분석
  • 의존성 관계 조사
  • 기존 패턴 코드베이스 검색 (API 엔드포인트 목록, 컴포넌트 목록 등)
  • 보안 취약점 스캔
  • 대규모 리뷰 (PR 전체 검토)

메인 세션에서 직접 실행:

  • 코드 구현 및 수정
  • 커밋, push
  • 사용자와의 대화

Subagent 권한 제한 설계 (운영 철학)

각 에이전트는 역할에 필요한 최소 권한만 가진다.

에이전트 허용 도구 금지 도구 모델
planner Read, Glob, Grep, WebSearch Edit, Write, Bash 기본
builder 전체 기본
investigator Read, Glob, Grep, Bash Edit, Write 기본
reviewer Read, Glob, Grep Edit, Write, Bash claude-opus-4-6 (정밀도 중요)
qa Read, Glob, Grep, Bash Edit, Write 기본
security Read, Glob, Grep Edit, Write, Bash claude-opus-4-6

왜 권한 제한인가:

  • investigator가 Edit 권한을 가지면 "진단하다가 수정"하는 역할 혼선 발생 — Iron Law 위반
  • reviewer가 Edit 권한을 가지면 "리뷰하다가 수정"하는 역할 혼선 발생
  • security가 Bash를 가지면 취약점 발견 시 임의로 패치 시도 가능
  • planner가 Write 권한을 가지면 계획 단계에서 코드 생성 시작

Subagent 정의 포맷 (.claude/agents/)

파일 위치: .claude/agents/{agent-name}.md

---
name: reviewer
description: PR 생성 전 코드 리뷰 에이전트. 수정 없이 읽기와 분석만 수행.
  코드 품질, 규칙 준수, 보안 이슈를 검토하고 리뷰 코멘트를 반환한다.
model: claude-opus-4-6
tools: Read, Glob, Grep
---

## 역할

PR 생성 전 코드 리뷰 전문 에이전트.
수정은 하지 않는다 — 발견 사항만 보고한다.

## 리뷰 체크리스트

- [ ] 02-code Hard Bans 위반 여부
- [ ] 03-security STRIDE 항목
- [ ] API 시그니처 변경 시 하위 호환성
- [ ] 테스트 커버리지 적절성

base agent → .claude/agents/ 전환 계획

현재 agents/base-*.md 파일들은 Claude Code 공식 subagent 포맷이 아님. YAML frontmatter 추가로 실제 실행 가능한 subagent로 전환:

현재 파일 전환 후 권한 변경 사항
agents/base-planner.md name: planner, tools: Read,Glob,Grep,WebSearch Write/Edit 제거
agents/base-builder.md name: builder, tools: 전체 변경 없음
agents/base-reviewer.md name: reviewer, model: claude-opus-4-6, tools: Read,Glob,Grep Edit/Bash 제거
agents/base-qa.md name: qa, tools: Read,Glob,Grep,Bash Edit/Write 제거
agents/base-security.md name: security, model: claude-opus-4-6, tools: Read,Glob,Grep Edit/Write/Bash 제거

adapters/claude-code.mjs에서 프로젝트별 .claude/agents/ 출력 시 frontmatter 포함하도록 수정 예정 (Phase 3).


Teammate 패턴 (병렬 독립 작업)

Subagent는 메인 에이전트에만 보고하지만, Teammate는 서로 직접 메시지 가능한 독립 에이전트다.

구분 Subagent Teammate
통신 방향 메인 에이전트에만 보고 서로 직접 메시지 가능
컨텍스트 독립 독립
적합 작업 순차 위임 (탐색→결과) 병렬 독립 작업

Teammate 사용 기준:

  • 프론트엔드 구현 + 백엔드 구현을 동시에 진행할 때
  • 두 작업이 서로 결과를 기다릴 필요가 없고 독립적일 때
  • 각자 완료 후 메인 에이전트에게 결과 보고
# Teammate 패턴 예시
메인: "프론트 teammate + 백엔드 teammate 동시 소환"
  └─ frontend-builder teammate: UI 컴포넌트 구현
  └─ backend-builder teammate: API 엔드포인트 구현
  └─ (둘 다 완료 후) 메인: 통합 검증

Context Budget 가이드라인

상황 권장 행동
탐색할 파일 5개 이하 메인 세션에서 직접 읽기
탐색할 파일 6개 이상 Subagent에 위임
대화 30턴 초과 세션 파일 HANDOFF 작성 → 새 세션
응답 속도 저하 감지 즉시 세션 파일 HANDOFF 작성 → 새 세션 요청
리뷰 대상 파일 3개 이상 reviewer subagent에 위임