Agent Teams — 혼자서는 안 된다
이전 이야기에서: 지민은 /compact로 컨텍스트를 관리하고, HANDOFF.md로 세션을 넘기는 법을 배웠다. 단일 에이전트의 메모리 문제는 해결됐다. 하지만 론칭까지 3일 남았다. 프론트엔드, 백엔드, 테스트. 한 에이전트로는 시간이 부족했다...
Harness = Tools + Knowledge + Context + Permissions
Agent Teams는 Context를 수평으로 확장한다. "When the task is too big for one, delegate to teammates"
금요일 데모까지 3일
소연이 Slack에 메시지를 보냈다.
소연: 금요일 투자자 데모 확정. 결제 시스템 전체가 동작해야 해.
지민은 남은 작업을 정리했다.
남은 일:
□ Stripe webhook handler (백엔드) — 4시간
□ 결제 UI 컴포넌트 (프론트엔드) — 3시간
□ 결제 플로우 E2E 테스트 — 2시간 (위 둘 완료 후)
□ 에러 핸들링 + 로깅 — 2시간
□ 배포 + 모니터링 설정 — 1시간
총 필요 시간: ~12시간
실제 남은 시간: 3일... 하지만 다른 기능도 있다.
문제는 이것이었다. Claude는 한 번에 하나만 할 수 있다.
Subagent(Ch06)를 쓰면? 부모가 기다려야 한다. 수직적 구조. 코드 리뷰를 맡길 수는 있지만, 프론트엔드와 백엔드를 동시에 구현하게 할 수는 없다.
Background Tasks(Ch07)를 쓰면? I/O만 병렬화된다. npm install은 뒤에서 돌리면서 코드를 쓸 수 있지만, LLM 추론 자체는 여전히 하나.
지민에게 필요한 건 동시에 생각하는 여러 Claude였다.
Subagent와 Teammate의 차이
Ch06에서 배운 Subagent를 다시 떠올려보자:
Subagent (수직적):
지민 → Claude(부모) → code-reviewer(자식)
부모가 기다린다. 자식이 끝나면 요약만 받는다.
자식은 일회용. 태어나서 일하고 사라진다.
Teammate (수평적):
오케스트레이터
├── backend-agent (독립적으로 실행)
├── frontend-agent (독립적으로 실행)
└── qa-agent (독립적으로 실행)
아무도 기다리지 않는다. 각자 자기 일을 한다.
팀원은 상주한다. 여러 작업을 순회한다.
Subagent는 일회용 전문가. 물어보면 답하고 사라진다. Teammate는 상주 팀원. 출근해서 작업 보드를 확인하고, 일을 찾고, 할 일이 없으면 기다린다.
Task Board: 05에서 배운 그것
Agent Teams의 "작업 보드"는 Ch05에서 배운 Task System 그 자체다.
Ch05 (혼자):
지민 → Claude → .tasks/task_*.json (혼자 읽고 쓰기)
Ch12 (팀):
오케스트레이터 ─┬── .tasks/task_*.json ── 공유 작업 보드
backend-agent ──┤ (모든 에이전트가 접근)
frontend-agent ─┤
qa-agent ───────┘
같은 .tasks/ 인프라. 같은 blockedBy/blocks DAG. 차이는 여러 에이전트가 동시에 접근한다는 것.