에이전트 팀은 Claude Code v2.1.32 이상이 필요합니다.
claude --version으로 버전을 확인합니다.- 에이전트 팀을 사용할 때, 최적의 사용 사례 및 subagents와의 비교 포함
- 팀 시작하기
- 팀원 제어하기, 표시 모드, 작업 할당, 위임 포함
- 병렬 작업 모범 사례
에이전트 팀을 사용할 때
에이전트 팀은 병렬 탐색이 실질적인 가치를 더하는 작업에 가장 효과적입니다. 전체 시나리오는 사용 사례 예시를 참조합니다. 가장 강력한 사용 사례는 다음과 같습니다:- 연구 및 검토: 여러 팀원이 문제의 다양한 측면을 동시에 조사한 후 서로의 발견을 공유하고 도전할 수 있습니다
- 새로운 모듈 또는 기능: 팀원들이 각각 별도의 부분을 소유하면서 서로 간섭하지 않을 수 있습니다
- 경쟁하는 가설로 디버깅하기: 팀원들이 다양한 이론을 병렬로 테스트하고 더 빠르게 답에 수렴합니다
- 교차 계층 조율: 프론트엔드, 백엔드, 테스트에 걸친 변경 사항으로, 각각 다른 팀원이 소유합니다
subagents와 비교
에이전트 팀과 subagents 모두 작업을 병렬화할 수 있지만, 다르게 작동합니다. 워커들이 서로 통신해야 하는지 여부에 따라 선택합니다:
| Subagents | 에이전트 팀 | |
|---|---|---|
| 컨텍스트 | 자신의 컨텍스트 윈도우; 결과는 호출자에게 반환됨 | 자신의 컨텍스트 윈도우; 완전히 독립적 |
| 통신 | 메인 에이전트에게만 결과 보고 | 팀원들이 서로 직접 메시지 전송 |
| 조율 | 메인 에이전트가 모든 작업 관리 | 자체 조율을 통한 공유 작업 목록 |
| 최적 용도 | 결과만 중요한 집중된 작업 | 논의와 협업이 필요한 복잡한 작업 |
| 토큰 비용 | 낮음: 결과가 메인 컨텍스트로 요약됨 | 높음: 각 팀원이 별도의 Claude 인스턴스 |
에이전트 팀 활성화
에이전트 팀은 기본적으로 비활성화되어 있습니다.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 환경 변수를 1로 설정하여 활성화합니다. 셸 환경이나 settings.json을 통해 설정할 수 있습니다:
settings.json
첫 번째 에이전트 팀 시작하기
에이전트 팀을 활성화한 후, Claude에게 에이전트 팀을 만들도록 요청하고 자연어로 원하는 작업과 팀 구조를 설명합니다. Claude는 팀을 만들고, 팀원들을 생성하며, 프롬프트에 따라 작업을 조율합니다. 이 예시는 세 가지 역할이 독립적이고 서로를 기다리지 않고 문제를 탐색할 수 있기 때문에 잘 작동합니다:에이전트 팀 제어하기
리더에게 자연어로 원하는 것을 말합니다. 지시에 따라 팀 조율, 작업 할당, 위임을 처리합니다.표시 모드 선택
에이전트 팀은 두 가지 표시 모드를 지원합니다:- In-process: 모든 팀원이 메인 터미널 내에서 실행됩니다. Shift+Down을 사용하여 팀원들을 순환하고 입력하여 직접 메시지를 보냅니다. 모든 터미널에서 작동하며 추가 설정이 필요하지 않습니다.
- 분할 창: 각 팀원이 자신의 창을 가집니다. 모든 사람의 출력을 한 번에 볼 수 있고 창을 클릭하여 직접 상호작용할 수 있습니다. tmux 또는 iTerm2가 필요합니다.
tmux는 특정 운영 체제에서 알려진 제한 사항이 있으며 전통적으로 macOS에서 가장 잘 작동합니다. iTerm2에서 tmux -CC를 사용하는 것이 tmux로의 권장 진입점입니다."auto"이며, 이미 tmux 세션 내에서 실행 중이면 분할 창을 사용하고, 그렇지 않으면 in-process를 사용합니다. "tmux" 설정은 분할 창 모드를 활성화하고 터미널에 따라 tmux 또는 iTerm2를 사용할지 자동으로 감지합니다. 재정의하려면 settings.json에서 teammateMode를 설정합니다:
it2 CLI가 있는 iTerm2가 필요합니다. 수동으로 설치하려면:
- tmux: 시스템의 패키지 관리자를 통해 설치합니다. 플랫폼별 지침은 tmux wiki를 참조합니다.
- iTerm2:
it2CLI를 설치한 후, iTerm2 → Settings → General → Magic → Enable Python API에서 Python API를 활성화합니다.
팀원 및 모델 지정
Claude는 작업에 따라 생성할 팀원의 수를 결정하거나, 정확히 원하는 것을 지정할 수 있습니다:팀원을 위한 계획 승인 요구
복잡하거나 위험한 작업의 경우, 팀원들이 구현하기 전에 계획하도록 요구할 수 있습니다. 팀원은 리더가 접근 방식을 승인할 때까지 읽기 전용 계획 모드에서 작동합니다:팀원과 직접 대화하기
각 팀원은 완전하고 독립적인 Claude Code 세션입니다. 모든 팀원에게 직접 메시지를 보내 추가 지시를 제공하고, 후속 질문을 하거나, 접근 방식을 재지정할 수 있습니다.- In-process 모드: Shift+Down을 사용하여 팀원들을 순환한 후 입력하여 메시지를 보냅니다. Enter를 눌러 팀원의 세션을 보고, Escape를 눌러 현재 턴을 중단합니다. Ctrl+T를 눌러 작업 목록을 전환합니다.
- 분할 창 모드: 팀원의 창을 클릭하여 세션과 직접 상호작용합니다. 각 팀원은 자신의 터미널의 전체 보기를 가집니다.
작업 할당 및 요청
공유 작업 목록은 팀 전체의 작업을 조율합니다. 리더는 작업을 만들고 팀원들이 이를 처리합니다. 작업은 세 가지 상태를 가집니다: 대기 중, 진행 중, 완료됨. 작업은 다른 작업에 종속될 수도 있습니다: 미해결 종속성이 있는 대기 중인 작업은 해당 종속성이 완료될 때까지 요청할 수 없습니다. 리더는 작업을 명시적으로 할당하거나 팀원들이 자체 요청할 수 있습니다:- 리더 할당: 리더에게 어느 작업을 어느 팀원에게 줄지 말합니다
- 자체 요청: 작업을 마친 후, 팀원은 다음 미할당, 미차단 작업을 자체적으로 선택합니다
팀원 종료하기
팀원의 세션을 우아하게 종료하려면:팀 정리하기
완료되었을 때, 리더에게 정리하도록 요청합니다:hooks로 품질 게이트 적용
hooks를 사용하여 팀원들이 작업을 마치거나 작업이 완료될 때 규칙을 적용합니다:TeammateIdle: 팀원이 유휴 상태가 되려고 할 때 실행됩니다. 종료 코드 2로 종료하여 피드백을 보내고 팀원을 계속 작동하게 합니다.TaskCompleted: 작업이 완료로 표시될 때 실행됩니다. 종료 코드 2로 종료하여 완료를 방지하고 피드백을 보냅니다.
에이전트 팀이 어떻게 작동하는지
이 섹션은 에이전트 팀 뒤의 아키텍처와 메커니즘을 다룹니다. 사용을 시작하려면 위의 에이전트 팀 제어하기를 참조합니다.Claude가 에이전트 팀을 시작하는 방법
에이전트 팀이 시작되는 두 가지 방법이 있습니다:- 팀 요청: 병렬 작업의 이점이 있는 작업을 제공하고 명시적으로 에이전트 팀을 요청합니다. Claude는 지시에 따라 팀을 만듭니다.
- Claude가 팀 제안: Claude가 작업이 병렬 작업의 이점이 있다고 판단하면, 팀 생성을 제안할 수 있습니다. 진행하기 전에 확인합니다.
아키텍처
에이전트 팀은 다음으로 구성됩니다:| 구성 요소 | 역할 |
|---|---|
| 팀 리더 | 팀을 만들고, 팀원들을 생성하며, 작업을 조율하는 메인 Claude Code 세션 |
| 팀원들 | 할당된 작업에서 각각 작동하는 별도의 Claude Code 인스턴스 |
| 작업 목록 | 팀원들이 요청하고 완료하는 공유 작업 항목 목록 |
| 메일박스 | 에이전트 간 통신을 위한 메시징 시스템 |
- 팀 구성:
~/.claude/teams/{team-name}/config.json - 작업 목록:
~/.claude/tasks/{team-name}/
members 배열이 포함됩니다. 팀원들은 이 파일을 읽어 다른 팀 멤버를 발견할 수 있습니다.
권한
팀원들은 리더의 권한 설정으로 시작합니다. 리더가--dangerously-skip-permissions로 실행되면, 모든 팀원도 그렇게 합니다. 생성 후, 개별 팀원 모드를 변경할 수 있지만, 생성 시 팀원별 모드를 설정할 수 없습니다.
컨텍스트 및 통신
각 팀원은 자신의 컨텍스트 윈도우를 가집니다. 생성될 때, 팀원은 일반 세션과 동일한 프로젝트 컨텍스트를 로드합니다: CLAUDE.md, MCP servers, skills. 또한 리더의 생성 프롬프트를 받습니다. 리더의 대화 기록은 전달되지 않습니다. 팀원들이 정보를 공유하는 방법:- 자동 메시지 전달: 팀원들이 메시지를 보낼 때, 자동으로 수신자에게 전달됩니다. 리더가 업데이트를 폴링할 필요가 없습니다.
- 유휴 알림: 팀원이 완료되고 중지되면, 자동으로 리더에게 알립니다.
- 공유 작업 목록: 모든 에이전트는 작업 상태를 보고 사용 가능한 작업을 요청할 수 있습니다.
- message: 특정 팀원 한 명에게 메시지 보내기
- broadcast: 모든 팀원에게 동시에 보내기. 팀 크기에 따라 비용이 증가하므로 드물게 사용합니다.
토큰 사용
에이전트 팀은 단일 세션보다 훨씬 더 많은 토큰을 사용합니다. 각 팀원은 자신의 컨텍스트 윈도우를 가지며, 토큰 사용은 활성 팀원의 수에 따라 증가합니다. 연구, 검토, 새로운 기능 작업의 경우, 추가 토큰은 일반적으로 가치가 있습니다. 일상적인 작업의 경우, 단일 세션이 더 비용 효율적입니다. 사용 지침은 에이전트 팀 토큰 비용을 참조합니다.사용 사례 예시
이 예시들은 병렬 탐색이 가치를 더하는 작업을 에이전트 팀이 어떻게 처리하는지 보여줍니다.병렬 코드 검토 실행
단일 검토자는 한 번에 한 가지 유형의 문제로 기울어지는 경향이 있습니다. 검토 기준을 독립적인 도메인으로 분할하면 보안, 성능, 테스트 커버리지가 모두 동시에 철저한 주의를 받습니다. 프롬프트는 각 팀원에게 고유한 렌즈를 할당하여 겹치지 않도록 합니다:경쟁하는 가설로 조사하기
근본 원인이 불명확할 때, 단일 에이전트는 그럴듯한 설명 하나를 찾고 멈추는 경향이 있습니다. 프롬프트는 팀원들을 명시적으로 적대적으로 만들어 이를 방지합니다: 각 팀원의 일은 자신의 이론을 조사하는 것뿐만 아니라 다른 팀원들에게 도전하는 것입니다.모범 사례
팀원에게 충분한 컨텍스트 제공
팀원들은 CLAUDE.md, MCP servers, skills를 포함한 프로젝트 컨텍스트를 자동으로 로드하지만, 리더의 대화 기록을 상속하지 않습니다. 자세한 내용은 컨텍스트 및 통신을 참조합니다. 생성 프롬프트에 작업별 세부 사항을 포함합니다:적절한 팀 크기 선택
팀원의 수에 대한 하드 제한은 없지만, 실질적인 제약이 적용됩니다:- 토큰 비용이 선형으로 증가: 각 팀원은 자신의 컨텍스트 윈도우를 가지며 독립적으로 토큰을 소비합니다. 자세한 내용은 에이전트 팀 토큰 비용을 참조합니다.
- 조율 오버헤드 증가: 더 많은 팀원은 더 많은 통신, 작업 조율, 충돌 가능성을 의미합니다
- 수익 감소: 특정 지점을 넘으면, 추가 팀원은 작업 속도를 비례적으로 높이지 않습니다
작업을 적절히 크기 조정
- 너무 작음: 조율 오버헤드가 이점을 초과합니다
- 너무 큼: 팀원들이 체크인 없이 너무 오래 작동하여 낭비된 노력의 위험이 증가합니다
- 적절함: 함수, 테스트 파일, 검토와 같은 명확한 결과물을 생성하는 자체 포함된 단위
팀원들이 완료될 때까지 기다리기
때때로 리더는 팀원들을 기다리지 않고 작업을 자체적으로 구현하기 시작합니다. 이를 알아차리면:연구 및 검토로 시작하기
에이전트 팀을 처음 사용하는 경우, 명확한 경계가 있고 코드 작성이 필요하지 않은 작업으로 시작합니다: PR 검토, 라이브러리 연구, 또는 버그 조사. 이러한 작업은 병렬 탐색의 가치를 보여주면서 병렬 구현과 함께 오는 조율 문제 없이 보여줍니다.파일 충돌 피하기
두 팀원이 동일한 파일을 편집하면 덮어쓰기가 발생합니다. 각 팀원이 다른 파일 집합을 소유하도록 작업을 나눕니다.모니터링 및 조율
팀원들의 진행 상황을 확인하고, 작동하지 않는 접근 방식을 재지정하며, 발견이 들어올 때 종합합니다. 팀을 무인으로 너무 오래 실행하면 낭비된 노력의 위험이 증가합니다.문제 해결
팀원이 나타나지 않음
Claude에게 팀을 만들도록 요청한 후 팀원이 나타나지 않으면:- In-process 모드에서, 팀원들이 이미 실행 중이지만 보이지 않을 수 있습니다. Shift+Down을 눌러 활성 팀원들을 순환합니다.
- Claude에게 준 작업이 팀을 보증할 만큼 복잡한지 확인합니다. Claude는 작업에 따라 팀원을 생성할지 결정합니다.
- 분할 창을 명시적으로 요청했으면, tmux가 설치되어 있고 PATH에서 사용 가능한지 확인합니다:
- iTerm2의 경우,
it2CLI가 설치되어 있고 Python API가 iTerm2 환경 설정에서 활성화되어 있는지 확인합니다.
너무 많은 권한 프롬프트
팀원 권한 요청이 리더로 버블업되어 마찰을 일으킬 수 있습니다. 팀원들을 생성하기 전에 권한 설정에서 일반적인 작업을 사전 승인하여 중단을 줄입니다.팀원들이 오류에서 중지됨
팀원들은 오류를 만난 후 복구하지 않고 중지할 수 있습니다. In-process 모드에서 Shift+Down을 사용하거나 분할 모드에서 창을 클릭하여 출력을 확인한 후:- 직접 추가 지시를 제공합니다
- 작업을 계속하기 위해 대체 팀원을 생성합니다
리더가 작업 완료 전에 종료됨
리더는 모든 작업이 실제로 완료되기 전에 팀이 완료되었다고 결정할 수 있습니다. 이 경우 계속하도록 말합니다. 또한 리더가 위임하지 않고 작업을 시작하면 팀원들이 완료될 때까지 기다리도록 말할 수 있습니다.고아 tmux 세션
팀이 끝난 후 tmux 세션이 지속되면, 완전히 정리되지 않았을 수 있습니다. 세션을 나열하고 팀에서 만든 세션을 종료합니다:제한 사항
에이전트 팀은 실험적입니다. 주의할 현재 제한 사항:- In-process 팀원과의 세션 재개 없음:
/resume과/rewind는 in-process 팀원을 복원하지 않습니다. 세션을 재개한 후, 리더는 더 이상 존재하지 않는 팀원에게 메시지를 보내려고 시도할 수 있습니다. 이 경우 리더에게 새 팀원을 생성하도록 말합니다. - 작업 상태가 지연될 수 있음: 팀원들이 때때로 작업을 완료로 표시하지 못하여 종속 작업을 차단합니다. 작업이 막혀 있는 것처럼 보이면, 작업이 실제로 완료되었는지 확인하고 작업 상태를 수동으로 업데이트하거나 리더에게 팀원을 밀도록 말합니다.
- 종료가 느릴 수 있음: 팀원들은 현재 요청이나 도구 호출을 마친 후 종료되어 시간이 걸릴 수 있습니다.
- 세션당 한 팀: 리더는 한 번에 한 팀만 관리할 수 있습니다. 새 팀을 시작하기 전에 현재 팀을 정리합니다.
- 중첩된 팀 없음: 팀원들은 자신의 팀이나 팀원을 생성할 수 없습니다. 리더만 팀을 관리할 수 있습니다.
- 리더가 고정됨: 팀을 만드는 세션은 수명 동안 리더입니다. 팀원을 리더로 승격하거나 리더십을 이전할 수 없습니다.
- 생성 시 권한 설정: 모든 팀원은 리더의 권한 모드로 시작합니다. 생성 후 개별 팀원 모드를 변경할 수 있지만, 생성 시 팀원별 모드를 설정할 수 없습니다.
- 분할 창은 tmux 또는 iTerm2 필요: 기본 in-process 모드는 모든 터미널에서 작동합니다. 분할 창 모드는 VS Code의 통합 터미널, Windows Terminal, Ghostty에서 지원되지 않습니다.
다음 단계
병렬 작업 및 위임을 위한 관련 접근 방식을 탐색합니다:- 경량 위임: subagents는 세션 내에서 연구 또는 검증을 위해 도우미 에이전트를 생성하며, 에이전트 간 조율이 필요하지 않은 작업에 더 좋습니다
- 수동 병렬 세션: Git worktrees를 사용하면 자동화된 팀 조율 없이 여러 Claude Code 세션을 직접 실행할 수 있습니다
- 접근 방식 비교: subagent vs 에이전트 팀 비교를 참조하여 나란히 비교합니다
