Task 도구는 foreground(기본)에서
blocking
— teammate가 끝날 때까지 대기하고 결과 텍스트를 반환. 이 반환값이 teammate의 작업 결과.
병렬 실행
blockedBy가 없는 태스크들을
단일 메시지에서 동시에
Task 호출:
Task(name: "analyst", team_name: "...", subagent_type: "general-purpose", model: "opus", prompt: "...", mode: "bypassPermissions")
Task(name: "collector", team_name: "...", subagent_type: "general-purpose", model: "sonnet", prompt: "...", mode: "bypassPermissions")
// 두 Task 완료 후 각각의 결과 텍스트 수신
순차 실행 (의존성)
선행 Task의
반환값
을 다음 teammate 프롬프트에 삽입:
Task(name: "writer", prompt: "선행 작업 결과:\n{result_1}\n\n이 결과를 바탕으로...")
Teammate 프롬프트 필수 요소
맥락
— 전체 프로젝트와 이 작업의 관계
구체적 목표
— 정확히 무엇을 달성해야 하는지
제약조건
— 하지 말아야 할 것, 변경 범위 제한
출력 형식
— 결과물 형태 (텍스트/파일/테이블)
팀 정보
— team_name, task ID → TaskUpdate 완료 표시 지시
상세 프롬프트 템플릿은
references/prompt-templates.md
참조.
Phase 4: 결과 종합 & 정리
결과 수집
모든 teammate 결과를 종합하여 사용자에게 보고:
팀 실행 결과:
1. {역할}: {작업} → {결과 요약}
최종 산출물
{파일 경로 또는 결과물 목록}
팀 정리
foreground Task 완료 후 teammate는 idle 상태. 정리 순서:
SendMessage(type: "shutdown_request", recipient: "{name}", content: "작업 완료")
TeamDelete() // 모든 teammate 종료 확인 후
shutdown_request에 응답 없으면 이미 종료된 것 — 무시하고 TeamDelete 진행.
Common Mistakes
실수
올바른 방법
사용자 승인 없이 팀 생성
Phase 1에서 반드시 AskUserQuestion으로 승인
모든 작업을 순차 실행
독립 작업은 단일 메시지에서 병렬 Task 호출
teammate 프롬프트가 모호
맥락 + 목표 + 제약 + 출력형식 필수 포함
TeamDelete 누락
반드시 shutdown_request → TeamDelete 순서로 정리
모든 역할에 opus 사용
실행/수집 역할은 sonnet으로 비용 절약
Quick Reference
Phase 1: 분석 → AskUserQuestion (팀 구성 승인)
Phase 2: TeamCreate → TaskCreate × N → TaskUpdate (의존성)
Phase 3: Task × N (병렬) → 결과 전달 → Task × N (후속)
Phase 4: 결과 종합 → shutdown_request × N → TeamDelete
Additional Resources
Reference Files
references/examples.md
— DB 마이그레이션, 경쟁사 분석, 풀스택 구현 등 3개 worked example (전체 Phase 1~3 흐름)
references/prompt-templates.md
— 역할별 teammate 프롬프트 템플릿 (analyst, implementer, validator) 및 작성 팁