Agent Teams

[!tldr] 한줄 요약 Agent Teams는 여러 Claude Code 인스턴스가 리드/팀원 구조로 공유 태스크 목록을 통해 병렬 협업하는 멀티에이전트 오케스트레이션이다.

핵심 내용

Agent Teams란?

여러 Claude Code 인스턴스가 리드(lead)/팀원(teammate) 구조로 협업하는 기능이다. 리드가 작업을 분배하고, 팀원들이 각자의 컨텍스트 윈도우에서 독립적으로 작업한다. 팀원끼리 직접 메시지를 주고받을 수도 있다.

[!warning] 실험적 기능 현재 실험적 기능으로, CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 환경변수로 활성화해야 한다.

서브에이전트(Task) vs Agent Teams

서브에이전트Agent Teams
컨텍스트독립 윈도우, 결과만 리턴독립 윈도우, 완전 자율
소통메인에게만 보고팀원끼리 직접 메시지 가능
조정메인이 모든 작업 관리공유 태스크 목록으로 자율 조정
비용낮음 (결과 요약)높음 (각자 별도 인스턴스)
적합결과만 필요한 집중 작업토론과 협업이 필요한 복잡 작업

아키텍처

┌─────────┐
│  Lead   │ ← 팀 생성, 작업 분배, 결과 종합
└────┬────┘
     │ SendMessage / TaskCreate
     ├──────────────┬──────────────┐
┌────▼────┐  ┌─────▼─────┐  ┌────▼────┐
│Teammate1│  │Teammate2  │  │Teammate3│
│(보안)   │  │(프론트)   │  │(테스트) │
└─────────┘  └───────────┘  └─────────┘
     ↕ 팀원끼리도 직접 메시지 가능
graph TB
    Lead["Lead Agent<br/>(팀 생성, 작업 분배, 결과 종합)"]

    Lead -->|TaskCreate<br/>SendMessage| T1["Teammate1<br/>(보안 리뷰)"]
    Lead -->|TaskCreate<br/>SendMessage| T2["Teammate2<br/>(프론트엔드)"]
    Lead -->|TaskCreate<br/>SendMessage| T3["Teammate3<br/>(테스트)"]

    T1 <-->|SendMessage| T2
    T2 <-->|SendMessage| T3
    T1 <-->|SendMessage| T3

    T1 -->|결과 반환| Lead
    T2 -->|결과 반환| Lead
    T3 -->|결과 반환| Lead

    TaskList["공유 태스크 목록"]
    Lead -.->|읽기/쓰기| TaskList
    T1 -.->|claim/complete| TaskList
    T2 -.->|claim/complete| TaskList
    T3 -.->|claim/complete| TaskList

    style Lead fill:#e1f5ff
    style T1 fill:#ffe1e1
    style T2 fill:#e1ffe1
    style T3 fill:#ffe1ff
    style TaskList fill:#f0f0f0

팀원 표시 모드

모드설명비고
in-process메인 터미널 안에서 실행기본값, 어디서나 동작
tmux각 팀원이 별도 panetmux 또는 iTerm2 필요
autotmux 세션이면 split, 아니면 in-process권장
claude --teammate-mode tmux

작업 흐름

  1. 팀 생성: 리드가 팀과 팀원을 생성
  2. 작업 생성: TaskCreate로 공유 태스크 목록에 추가
  3. 작업 할당: 리드가 직접 할당하거나, 팀원이 자율 claim
  4. 작업 수행: 각 팀원이 독립 작업 (pending → in_progress → completed)
  5. 소통: SendMessage로 리드↔팀원, 팀원↔팀원 메시지
  6. 종료: 팀원 셧다운 → 팀 정리 (반드시 리드가 수행)
stateDiagram-v2
    [*] --> pending: TaskCreate
    pending --> in_progress: 팀원이 claim
    in_progress --> completed: 작업 완료
    in_progress --> failed: 오류 발생
    pending --> cancelled: 작업 취소
    in_progress --> cancelled: 작업 취소

    completed --> [*]
    failed --> [*]
    cancelled --> [*]

    note right of pending
        리드가 생성
        또는 팀원이 자율 claim 대기
    end note

    note right of in_progress
        팀원이 독립적으로 작업
        다른 팀원과 메시지 교환 가능
    end note

Delegate 모드

리드가 직접 코드를 건드리지 않고 조정에만 집중하게 하는 Permission 모드다. Shift+Tab으로 전환하면 리드는 팀원 생성, 메시지, 작업 관리만 할 수 있다.

Hooks 연동

Hook용도
TeammateIdle팀원이 멈추려 할 때 검증. exit 2로 계속 작업 강제
TaskCompleted작업 완료 시 검증. exit 2로 완료 차단

실제 사용법

별도 API 호출 없이 리드에게 자연어로 지시하면 된다.

1단계: 활성화 (~/.claude/settings.json)

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

2단계: 프롬프트로 팀 생성 & 작업 지시

이 프로젝트의 인증 모듈을 리팩토링해줘.
3명의 팀원을 만들어서 병렬로 작업해:
- backend: API 라우트와 미들웨어 리팩토링
- frontend: 로그인/회원가입 UI 수정
- tester: 리팩토링된 코드의 테스트 작성

각 팀원이 작업 완료하면 결과를 종합해줘.

3단계: 모니터링

단축키기능
Shift+Up/Down팀원 간 전환
Ctrl+T태스크 목록 보기
Enter선택한 팀원 세션 보기
Escape팀원 인터럽트

4단계: 종료

모든 팀원을 종료하고 팀을 정리해줘.

적합한 사용 사례

주의사항

예시

# tmux 모드로 시작
claude --teammate-mode tmux
# 프롬프트 예시: PR 병렬 리뷰
이 PR을 3명이 동시에 리뷰해줘.
보안, 성능, 코드 품질 관점에서 각각 검토하고 결과를 정리해.
# 프롬프트 예시: 버그 조사
로그인 실패 버그를 조사해줘.
팀원 3명이 각각 다른 가설을 테스트해:
- auth: 토큰 만료 로직 확인
- db: 세션 저장소 상태 확인
- network: API 게이트웨이 로그 확인

[!example] 리드에게 자연어로 지시 사용자가 TeamCreate() 같은 API를 직접 호출하는 게 아니다. 리드(Claude)에게 자연어로 지시하면 리드가 내부적으로 TeamCreate, TaskCreate, SendMessage 도구를 사용해 팀을 운영한다.

참고 자료

관련 노트