- 여러 Claude Code 인스턴스를 하나의 팀으로 구성해 병렬 작업, 메시징, 중앙 관리 기능을 수행하는 실험적 기능
- 각 세션은 팀 리드와 팀원으로 구성되며, 리드는 작업을 분배하고 결과를 통합, 팀원은 독립된 컨텍스트에서 협업
-
Subagent와 달리 팀원 간 직접 통신이 가능하며, 병렬 연구·리뷰·디버깅 등에서 효율적
-
환경 변수 설정으로 기능을 활성화할 수 있으며, tmux 또는 iTerm2를 통한 분할 화면 모드 지원
- 병렬 탐색과 협업 자동화를 통해 복잡한 개발 작업의 생산성과 품질 향상을 지원
Agent Teams 개요
- 여러 Claude Code 세션을 하나의 팀 단위로 조정해 병렬로 작업 수행
- 팀 리드가 작업을 분배하고 결과를 종합
- 각 팀원은 독립된 컨텍스트 창에서 개별적으로 실행
-
Subagent와 달리 팀원 간 직접 메시징 가능
- 실험적 기능으로 기본 비활성화 상태이며, CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 환경 변수 설정으로 활성화
사용 시점
- 병렬 탐색이 가치 있는 작업에 적합
-
연구 및 리뷰: 여러 팀원이 문제의 다양한 측면을 동시에 조사
-
새 모듈 개발: 각 팀원이 별도 구성 요소 담당
-
경쟁적 가설 검증: 병렬로 다른 이론을 테스트
-
계층 간 조정: 프론트엔드·백엔드·테스트 등 분리된 영역 협업
- 순차적 작업이나 동일 파일 편집에는 단일 세션 또는 Subagent가 더 효율적
Subagent와의 비교
-
Subagent는 단일 세션 내에서 실행되어 결과만 리드에게 보고
-
Agent Team은 각 인스턴스가 완전히 독립되어 상호 통신 가능
-
조정 방식: Subagent는 리드가 전담, Agent Team은 공유 작업 목록 기반 자율 조정
-
토큰 비용: 팀 구성원 수에 따라 증가
활성화 및 첫 팀 생성
-
settings.json 또는 환경 변수에 "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" 추가
- 활성화 후 자연어로 팀 구성과 역할을 지정 가능
- 예: “UX, 기술 아키텍처, 비판적 검토 역할의 팀 생성”
- Claude가 팀을 생성하고 작업 목록을 공유하며, 각 팀원은 독립적으로 문제 탐색
팀 제어 및 표시 모드
- 리드에게 자연어로 명령해 작업 분배·위임·조정 수행
- 표시 모드:
-
In-process: 모든 팀원이 한 터미널 내에서 실행, Shift+Up/Down으로 전환
-
Split panes: 각 팀원이 별도 창에서 실행, tmux 또는 iTerm2 필요
-
settings.json의 teammateMode로 모드 지정 가능
팀원 및 모델 지정
- Claude가 자동으로 팀원 수를 결정하거나 명시적으로 지정 가능
- 예: “4명의 팀원으로 병렬 리팩터링 수행, 각 팀원 Sonnet 모델 사용”
계획 승인 및 Delegate 모드
- 위험하거나 복잡한 작업은 계획 승인 모드로 설정 가능
- 팀원이 계획을 제출하면 리드가 승인 또는 피드백 후 재검토
-
Delegate 모드는 리드가 직접 구현하지 않고 조정만 수행하도록 제한
직접 대화 및 작업 관리
- 각 팀원은 독립된 세션으로, 직접 메시지 전송 가능
- In-process: Shift+Up/Down으로 선택 후 입력
- Split-pane: 해당 창 클릭 후 상호작용
-
공유 작업 목록으로 진행 상태 관리
- 작업 상태: 대기, 진행 중, 완료
- 리드가 할당하거나 팀원이 자율적으로 Self-claim 가능
- 파일 잠금으로 동시 작업 충돌 방지
종료 및 정리
- 특정 팀원 종료: “연구자 팀원 종료 요청” 명령
- 전체 팀 종료: “Clean up the team” 명령으로 리드가 정리 수행
- 리드만 정리 가능, 팀원이 직접 실행 시 불완전한 상태 발생 가능
내부 구조 및 작동 방식
-
구성 요소
- Team lead: 팀 생성 및 조정 담당
- Teammates: 개별 Claude Code 인스턴스
- Task list: 공유 작업 항목
- Mailbox: 메시징 시스템
- 팀 구성 정보와 작업 목록은 로컬 저장
-
~/.claude/teams/{team-name}/config.json
-
~/.claude/tasks/{team-name}/
권한 및 통신
- 팀원은 리드의 권한 설정을 상속
- 각 팀원은 독립된 컨텍스트 창을 갖고, 자동 메시지 전달 및 작업 상태 공유
- 메시징 방식:
-
message: 특정 팀원에게 전송
-
broadcast: 전체 팀원에게 전송 (비용 증가 주의)
토큰 사용량
- 팀원 수에 비례해 토큰 사용량 증가
- 연구·리뷰·신규 기능 개발에는 유용하지만, 단순 작업에는 단일 세션이 효율적
활용 예시
-
병렬 코드 리뷰: 보안·성능·테스트 커버리지별로 팀원 분리
-
경쟁적 가설 검증: 여러 팀원이 서로의 이론을 반박하며 원인 규명
모범 사례
- 팀원에게 충분한 맥락 정보 제공
- 작업 크기를 적절히 조정 (5~6개 작업 단위 유지)
- 리드가 직접 작업하지 않도록 “Wait for teammates” 명령 사용
- 초기에는 코드 작성보다 리뷰·조사형 작업으로 시작
- 파일 충돌 방지 위해 파일 단위로 작업 분리
- 진행 상황을 주기적으로 점검하고 방향 조정
문제 해결
- 팀원이 표시되지 않을 경우 Shift+Down으로 순환 확인
- 권한 요청 과다 시 사전 승인 설정
- 오류로 중단된 팀원은 직접 지시하거나 새 팀원 생성
- 리드가 조기 종료 시 “계속 진행” 명령으로 재개
- 잔여 tmux 세션은 tmux ls 및 tmux kill-session으로 종료
제한 사항
-
세션 복원 불가, 작업 상태 지연, 종료 지연 등 제약 존재
- 한 세션당 한 팀만 관리 가능, 중첩 팀 생성 불가
- 리드 교체 불가, 권한은 생성 시 일괄 적용
- Split-pane 모드는 tmux 또는 iTerm2 필요, VS Code 등에서는 미지원
다음 단계
- 병렬 작업을 위한 대안:
-
Subagent: 단일 세션 내 보조 에이전트
-
수동 병렬 세션: Git worktree 기반 다중 세션 실행
-
기능 비교표를 통해 Subagent와 Agent Team의 차이 검토