/Part 5: 멀티 에이전트/태스크 시스템
🤝
Part 5중급⏱ 약 40분 · 2개 섹션

태스크 시스템

작업의 생명주기

태스크 시스템 대표 이미지
이 챕터에서 배울 것
  • 7가지 태스크 타입이 유니온 타입으로 관리
  • 각 태스크는 독립적인 상태와 생명주기를 가짐
  • DreamTask는 유휴 시 자동 메모리 정리를 수행
전체 아키텍처에서 현재 위치
⚙️코어 엔진
🔧도구 시스템
🛡️보안
🧠컨텍스트
🤝멀티 에이전트
🌐생태계
인프라
1

7가지 태스크 타입

LocalShell, LocalAgent, Remote, InProcess, Dream 등

태스크 유니온진행률 추적태스크 생명주기|tasks/types.tstasks/LocalAgentTask/LocalAgentTask.tsxtasks/RemoteAgentTask/RemoteAgentTask.tsx

Claude Code는 7가지 태스크 타입을 지원합니다. 각 타입은 독립적인 상태와 생명주기를 가집니다.

src/tasks/LocalAgentTask/LocalAgentTask.tsx
1// src/tasks/LocalAgentTask/LocalAgentTask.tsx — 태스크 상태
2
3export type ToolActivity = {💡
4 toolName: string
5 input: Record<string, unknown>
6 activityDescription?: string // "Reading src/foo.ts"
7 isSearch?: boolean
8 isRead?: boolean
9}
10
11export type AgentProgress = {💡
12 toolUseCount: number
13 tokenCount: number
14 lastActivity?: ToolActivity
15 recentActivities?: ToolActivity[] // 최근 5개
16 summary?: string
17}
18
19export function createProgressTracker(): ProgressTracker {
20 return {
21 toolUseCount: 0,
22 latestInputTokens: 0, // 누적 (최신 값 유지)💡
23 cumulativeOutputTokens: 0, // 합산 (턴마다 더함)💡
24 recentActivities: [],
25 }
26}
27
28// 입력 토큰은 누적이므로 최신 값만, 출력은 합산
29export function getTokenCountFromTracker(tracker: ProgressTracker): number {
30 return tracker.latestInputTokens + tracker.cumulativeOutputTokens
31}
2

태스크 관리 도구

TaskCreate/Get/Update/List/Stop/Output 도구

태스크 CRUD상태 전환결과 출력|tools/TaskCreateTool/TaskCreateTool.tstools/TaskUpdateTool/TaskUpdateTool.ts

태스크 관리 도구(TaskCreate/Get/Update/List/Stop/Output)는 에이전트가 자신의 작업을 추적하는 인터페이스입니다.

태스크 관리 도구 (CRUD)
1// 태스크 생명주기
2
3// 1. TaskCreateTool → 태스크 생성
4TaskCreate({ description: "파일 리팩터링", priority: "high" })
5
6// 2. TaskUpdateTool → 상태 전환
7TaskUpdate({ id: "task-1", status: "in_progress" })
8TaskUpdate({ id: "task-1", status: "completed" })
9
10// 3. TaskListTool → 태스크 목록 조회
11TaskList() // → [{ id, description, status, ... }]
12
13// 4. TaskGetTool → 특정 태스크 상세
14TaskGet({ id: "task-1" })
15
16// 5. TaskStopTool → 실행 중인 태스크 중지
17TaskStop({ id: "task-1" })
18
19// 6. TaskOutputTool → 태스크 결과 직접 출력
20TaskOutput({ id: "task-1" })
21
22// 상태 전환 흐름:
23// pending → in_progress → completed
24// → failed
25// → cancelled

멀티 에이전트 패턴 비교

클릭하여 탐색
👤단독 에이전트

모든 도구를 직접 사용, 순차 실행

한계: 복잡한 작업에서 느림

병렬 처리 불가, 컨텍스트 소모 큼

VS
👥코디네이터-워커

코디네이터가 작업 분배, 워커가 병렬 실행

장점: 빠르고 확장 가능

격리된 도구 풀, 독립적 실행

?

이해도 확인 퀴즈

하위 에이전트에서 AgentTool을 제외하는 이유는?

학습 체크리스트

이해한 항목을 체크하고 학습 진도를 확인하세요

0/5 완료0%

📋 멀티 에이전트 파트 요약

이 챕터에서 배운 핵심 개념을 정리합니다

1
에이전트 생성
AgentTool이 동기/비동기/포크/원격/Worktree 5가지 모드로 하위 에이전트를 생성합니다.
2
격리와 재귀 방지
도구 풀 필터링으로 AgentTool을 제외하여 무한 재귀를 원천 차단합니다.
3
코디네이터-워커
코디네이터는 Agent/TaskStop/SendMessage만 사용하고, 워커는 제한된 도구로 독립 실행합니다.
4
스웜 통신
UDS/인프로세스 백엔드로 에이전트 간 메시지를 전달합니다.