팀 빌더은(는) 무엇을 하나요?
요청 시 에이전트 팀을 탐색하고 구성할 수 있는 대화형 메뉴입니다. flat 또는 도메인 하위 폴더 형태의 에이전트 컬렉션과 함께 작동합니다.
사용 시기
- 여러 에이전트 역할(마크다운 파일)이 있고 작업에 사용할 에이전트를 선택하고 싶을 때
- 다른 도메인(예: 보안 + SEO + 아키텍처)에서 임시 팀을 구성하려 할 때
- 결정을 내리기 전에 어떤 에이전트가 있는지 탐색하고 싶을 때
전제 조건
에이전트 파일은 역할 프롬프트(정체성, 규칙, 워크플로우, 산출물)를 포함하는 마크다운 파일이어야 합니다. 첫 번째 # 제목이 에이전트 이름으로, 첫 번째 문단이 설명으로 사용됩니다.
flat 및 하위 폴더 레이아웃이 모두 지원됩니다:
하위 폴더 레이아웃 — 도메인은 폴더 이름에서 유추됩니다:
agents/
├── engineering/
│ ├── security-engineer.md
│ └── software-architect.md
├── marketing/
│ └── seo-specialist.md
└── sales/
└── discovery-coach.md
Flat 레이아웃 — 도메인은 공유 파일 이름 접두사에서 유추됩니다. 접두사는 2개 이상의 파일이 공유할 때 도메인으로 간주됩니다. 고유한 접두사를 가진 파일은 "일반"으로 그룹화됩니다. 참고: 알고리즘은 첫 번째 -에서 분할하므로 여러 단어로 된 도메인(예: product-management)은 대신 하위 폴더 레이아웃을 사용해야 합니다:
agents/
├── engineering-security-engineer.md
├── engineering-software-architect.md
├── marketing-seo-specialist.md
├── marketing-content-strategist.md
├── sales-discovery-coach.md
└── sales-outbound-strategist.md
구성
에이전트는 두 가지 방법을 통해 발견되며, 에이전트 이름으로 중복 제거 및 병합됩니다:
claude agents명령어 (기본) —claude agents를 실행하여 사용자 에이전트, 플러그인 에이전트(예:ecc:architect), 내장 에이전트 등 CLI에 알려진 모든 에이전트를 가져옵니다. 이는 경로 구성 없이 ECC 마켓플레이스 설치를 자동으로 포함합니다.- 파일 glob (대체, 에이전트 콘텐츠 읽기용) — 에이전트 마크다운 파일은 다음 위치에서 읽힙니다:
./agents/**/*.md+./agents/*.md— 프로젝트 로컬 에이전트~/.claude/agents/**/*.md+~/.claude/agents/*.md— 전역 사용자 에이전트
이름이 충돌할 경우 이전 소스가 우선합니다: 사용자 에이전트 > 플러그인 에이전트 > 내장 에이전트. 사용자가 지정하는 경우 사용자 정의 경로를 대신 사용할 수 있습니다.
작동 방식
1단계: 사용 가능한 에이전트 검색
claude agents를 실행하여 전체 에이전트 목록을 가져옵니다. 각 줄을 파싱합니다:
- 플러그인 에이전트는
plugin-name:접두사가 붙습니다(예:ecc:security-reviewer).:뒤의 부분을 에이전트 이름으로, 플러그인 이름을 도메인으로 사용합니다. - 사용자 에이전트는 접두사가 없습니다.
~/.claude/agents/또는./agents/에서 해당 마크다운 파일을 읽어 이름과 설명을 추출합니다. - 내장 에이전트(예:
탐색,계획)는 사용자가 명시적으로 포함하도록 요청하지 않는 한 건너뜁니다.
마크다운 파일에서 로드된 사용자 에이전트의 경우:
- 하위 폴더 레이아웃: 상위 폴더 이름에서 도메인 추출
- Flat 레이아웃: 모든 파일 이름 접두사(첫 번째
-이전 텍스트)를 수집합니다. 접두사는 2개 이상의 파일 이름에 나타나는 경우에만 도메인으로 인정됩니다(예:engineering-security-engineer.md및engineering-software-architect.md는 모두engineering으로 시작 → 엔지니어링 도메인). 고유한 접두사를 가진 파일(예:code-reviewer.md,tdd-guide.md)은 "일반"으로 그룹화됩니다. - 첫 번째
# 제목에서 에이전트 이름 추출. 제목이 없으면 파일 이름에서 이름을 파생합니다(.md제거, 하이픈을 공백으로 바꾸고, 단어 첫 글자를 대문자로 변환). - 제목 뒤 첫 번째 문단에서 한 줄 요약 추출
claude agents를 실행하고 파일 위치를 조사한 후에도 에이전트를 찾지 못한 경우, 사용자에게 알립니다: "에이전트를 찾을 수 없습니다. claude agents를 실행하여 설정을 확인하세요." 그런 다음 중단합니다.
2단계: 도메인 메뉴 표시
사용 가능한 에이전트 도메인:
1. 엔지니어링 — 소프트웨어 아키텍트, 보안 엔지니어
2. 마케팅 — SEO 전문가
3. 영업 — 디스커버리 코치, 아웃바운드 전략가
도메인을 선택하거나 특정 에이전트를 지정하세요(예: "1,3" 또는 "보안 + seo"):
- 에이전트가 0명인 도메인(빈 디렉토리) 건너뛰기
- 도메인별 에이전트 수 표시
3단계: 선택 처리
유연한 입력 수용:
- 번호: "1,3"은 엔지니어링 및 영업의 모든 에이전트 선택
- 이름: "보안 + seo"는 발견된 에이전트에 대해 퍼지 매칭
- "엔지니어링에서 모두"는 해당 도메인의 모든 에이전트 선택
5명 이상의 에이전트가 선택된 경우, 알파벳 순으로 나열하고 사용자에게 범위를 좁히도록 요청: "N명의 에이전트를 선택했습니다(최대 5명). 유지할 에이전트를 고르거나 '처음 5개'라고 말하여 알파벳 순으로 처음 5개를 사용하세요."
선택 확인:
선택됨: 보안 엔지니어 + SEO 전문가
어떤 작업을 수행해야 합니까? (작업 설명):
4단계: 에이전트 병렬 실행
- 각 선택된 에이전트의 마크다운 파일 읽기
- 아직 제공되지 않은 경우 작업 설명 요청
- 에이전트 도구를 사용하여 모든 에이전트를 병렬로 실행:
subagent_type: "general-purpose"prompt: "{에이전트 파일 내용}\n\n작업: {작업 설명}"- 각 에이전트는 독립적으로 실행됨 — 에이전트 간 통신 불필요
- 에이전트가 실패한 경우(오류, 시간 초과 또는 빈 출력), 실패를 인라인으로 기록(예: "보안 엔지니어: 실패 — [사유]")하고 성공한 에이전트의 결과로 계속 진행
5단계: 결과 종합
모든 출력을 수집하고 통합 보고서를 제공:
- 에이전트별로 그룹화된 결과
- 다음을 강조하는 종합 섹션:
- 에이전트 간 일치점
- 권장 사항 간 충돌 또는 긴장 관계
- 권장되는 다음 단계
에이전트가 1명만 선택된 경우 종합을 건너뛰고 출력을 직접 제공.
규칙
- 동적 검색만. 에이전트 목록을 하드코딩하지 마십시오. 디렉토리의 새 파일이 메뉴에 자동으로 나타납니다.
- 팀당 최대 5명의 에이전트. 5명을 초과하면 수익이 감소하고 토큰 사용량이 과도해집니다. 선택 시 적용하십시오.
- 병렬 발송. 모든 에이전트가 동시에 실행됩니다 — 에이전트 도구의 병렬 호출 패턴을 사용하십시오.
- TeamCreate가 아닌 병렬 에이전트 호출. 이 스킬은 독립적인 작업을 위해 병렬 에이전트 도구 호출을 사용합니다. TeamCreate(다중 에이전트 대화를 위한 Claude Code 도구)는 에이전트가 서로 토론하거나 응답해야 하는 경우에만 필요합니다.
예시
사용자: 팀 빌더
Claude:
사용 가능한 에이전트 도메인:
1. 엔지니어링 (2) — 소프트웨어 아키텍트, 보안 엔지니어
2. 마케팅 (1) — SEO 전문가
3. 영업 (4) — 디스커버리 코치, 아웃바운드 전략가, 제안 전략가, 영업 엔지니어
4. 지원 (1) — 요약 보고서
도메인을 선택하거나 특정 에이전트를 지정하세요:
사용자: 보안 + seo
Claude:
선택됨: 보안 엔지니어 + SEO 전문가
어떤 작업을 수행해야 합니까?
사용자: 내 Next.js 전자상거래 사이트를 출시 전에 검토해줘
[두 에이전트가 병렬로 실행되며, 각자 자신의 전문 분야를 코드베이스에 적용]
Claude:
## 보안 엔지니어 결과
- [결과...]
## SEO 전문가 결과
- [결과...]
## 종합
두 에이전트 모두 다음에 동의합니다: [...]
긴장: 보안은 인라인 스타일을 차단하는 CSP를 권장하지만, SEO는 인라인 스키마 마크업이 필요합니다. 해결책: [...]
다음 단계: [...]