4.1. Squad 개요¶
Squad는 복잡한 작업을 함께 수행하는 AI 에이전트 팀을 만들 수 있게 합니다. 플래너 에이전트가 요청을 하위 작업으로 분해하고, 전문 에이전트에게 할당하며, 의존성을 고려한 웨이브 단위로 실행을 조율합니다 — 모두 공유 워크스페이스 내에서 이루어집니다.
Squad란 무엇인가요?¶
Squad는 여러 AI 에이전트가 협업하는 자체 완결형 워크스페이스입니다:
flowchart TD
U[사용자 요청] --> P[플래너 에이전트]
P --> T1[작업 1: 프론트엔드]
P --> T2[작업 2: 백엔드]
P --> T3[작업 3: 리뷰]
T1 --> D1[개발자 에이전트]
T2 --> D2[개발자 에이전트]
T1 -.->|의존| T3
T2 -.->|의존| T3
T3 --> R[리뷰어 에이전트]
R --> F[최종 결과] 각 Squad에는 다음이 포함됩니다:
- 에이전트 — 고유한 역할, 시스템 프롬프트, 도구 접근 권한을 가진 전문 AI 에이전트
- 워크스페이스 — 에이전트가 파일을 읽고 쓰는 전용 디렉터리
- 메모리 — 작업 간 컨텍스트 유지를 위한 에이전트별 마크다운 메모리 파일
- 플랜 — 의존성과 우선순위를 가진 구조화된 작업 그래프
- 예산 — 비용 폭주를 방지하는 토큰 및 실행 제한
작동 방식¶
1. Squad 생성¶
템플릿(풀스택 개발팀, 콘텐츠팀, 리서치팀 등)에서 시작하거나 처음부터 Squad를 구성합니다. 워크스페이스 디렉터리를 지정하고 각 에이전트의 역할, 시스템 프롬프트, 도구를 설정합니다.
2. 요청 제출¶
자연어로 목표를 설명합니다. 예: "로그인, 회원가입, 비밀번호 재설정 기능이 포함된 사용자 인증 모듈을 구현하세요."
3. 계획 수립¶
지정된 플래너 에이전트가 요청을 분석하고 구조화된 플랜을 생성합니다:
- 작업을 개별 태스크로 분할
- 가장 적합한 에이전트에게 각 태스크 할당
- 태스크 의존성 정의 (어떤 태스크가 먼저 완료되어야 하는지)
- 우선순위 설정 (낮음, 보통, 높음, 긴급)
4. 승인¶
실행 전에 플랜을 검토합니다. 승인, 수정, 또는 거부할 수 있습니다. 반복적인 워크플로의 경우 자동 승인을 활성화하여 이 단계를 건너뛸 수 있습니다.
5. 웨이브 실행¶
태스크는 의존성이 모두 충족된 그룹인 웨이브 단위로 실행됩니다:
| 웨이브 | 태스크 | 설명 |
|---|---|---|
| 웨이브 1 | 의존성이 없는 태스크 | 병렬 실행 |
| 웨이브 2 | 웨이브 1에 의존하는 태스크 | 웨이브 1 완료 후 시작 |
| 웨이브 3 | 웨이브 2에 의존하는 태스크 | 웨이브 2 완료 후 시작 |
각 웨이브 내 태스크는 동시에 실행되어 의존성 순서를 지키면서 병렬성을 극대화합니다.
6. 집계¶
모든 태스크가 완료되면 결과가 수집되어 최종 산출물로 종합됩니다.
주요 장점¶
-
전문화 — 각 에이전트가 자신이 가장 잘하는 일에 집중합니다 (계획, 코딩, 리뷰, 작문).
-
병렬 처리 — 독립적인 태스크가 동시에 실행되어 전체 실행 시간이 단축됩니다.
-
투명성 — 실시간 모니터링으로 각 에이전트의 활동과 토큰 소비량을 정확히 확인할 수 있습니다.
-
안전성 — 예산 제어가 토큰 과다 사용을 방지하고, 긴급 정지가 실행을 즉시 중단합니다.
-
영속성 — 워크스페이스, 플랜, 실행 이력이 검토 및 재사용을 위해 저장됩니다.
Squad vs Cowork¶
| 기능 | Cowork | Squad |
|---|---|---|
| 에이전트 | 단일 에이전트 (선택적 서브 에이전트) | 고유 역할을 가진 여러 명명 에이전트 |
| 계획 수립 | 암시적 (에이전트가 단계 결정) | 태스크 그래프와 의존성이 있는 명시적 플랜 |
| 워크스페이스 | 기존 디렉터리에 대한 폴더 권한 | Squad별 전용 워크스페이스 |
| 메모리 | 공유 메모리 | 크로스 에이전트 검색이 가능한 에이전트별 메모리 |
| 예산 | 세션별 토큰 추적 | 세분화된 제한 (에이전트별, 태스크별, 전체) |
| 적합한 용도 | 임시 작업, 탐색 | 대규모, 다단계, 협업 작업 |
Squad를 사용해야 할 때
작업이 자연스럽게 서로 다른 전문성에서 이점을 얻는 하위 작업으로 분해될 때 Squad를 사용하세요 — 예를 들어, 플래너, 여러 개발자, 리뷰어가 병렬로 작업해야 하는 프로젝트.