본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
Kiro 고급 활용Ch1. 플랜 & 환경 설정Ch2. Steering 마스터하기Ch3. 멀티세션 워크플로우Ch4. 서브에이전트 활용Ch5. Hooks 시스템Ch6. MCP 서버 연동Ch7. Powers & 커스텀 도구Ch8. Autopilot 모드 활용Ch9. 컨텍스트 관리Ch10. IDE 기능 활용Ch11. Spec 기반 개발Ch12. 바이브코딩 실전 패턴Ch13. 커뮤니티 & 리소스Ch14. 트러블슈팅 & FAQ엔터프라이즈 패턴빠른 참조 가이드

업데이트 히스토리
핸드북›Kiro 고급 활용›Ch4. 서브에이전트 활용

Ch4. 서브에이전트 활용

context-gatherer·general-task-execution 서브에이전트로 컨텍스트 수집과 병렬·단계별 작업을 실행하고, v0.9 Custom Subagents·Agent Skills로 역할별 에이전트를 구성하는 법

핵심 요약

  • 서브에이전트는 메인 세션과 독립된 컨텍스트로 실행되는 보조 에이전트로, invokeSubAgent()로 호출합니다.
  • 기본 타입은 리포 구조·관련 파일을 찾는 context-gatherer와 독립 작업을 수행하는 general-task-execution입니다.
  • 컨텍스트를 먼저 모은 뒤 작업하기, Promise.all 병렬 처리, 단계별 분할 패턴으로 복잡한 작업을 효율적으로 풉니다.
  • v0.9 Custom Subagents(.kiro/agents/*.json로 steering·tools·model 지정)와 agentskills.io 기반 Agent Skills(progressive disclosure)를 지원합니다.
  • 서브에이전트는 Autopilot 모드에서만 동작하고, 컨텍스트가 분리돼 있어 메인 세션의 이전 대화를 직접 참조하지 못합니다.

서브에이전트는 Kiro의 전문화된 보조 에이전트입니다. 메인 세션과 따로 돌아가면서 맡은 작업을 처리하고 결과를 돌려줍니다. 복잡한 작업을 잘게 나누거나 한꺼번에 처리할 때 유용합니다.

서브에이전트 종류

context-gatherer

리포지토리 구조를 분석하고 관련 파일들을 식별합니다.

// 사용 예시
invokeSubAgent({
  name: "context-gatherer",
  prompt: "사용자 인증 관련 버그를 조사하기 위해 관련 파일들을 찾아주세요",
  explanation: "인증 시스템의 구조를 파악하여 버그 수정에 필요한 컨텍스트 수집"
})

general-task-execution

일반적인 작업을 독립적으로 실행합니다.

// 사용 예시  
invokeSubAgent({
  name: "general-task-execution",
  prompt: "API 문서를 생성하고 README에 추가해주세요",
  explanation: "API 문서 생성 작업을 별도 컨텍스트에서 실행"
})

서브에이전트 활용 패턴

1. 컨텍스트 수집 후 작업

1단계: context-gatherer로 관련 파일 식별
2단계: 메인 에이전트에서 수정 작업 수행

예시: 버그 수정 워크플로우

// 1단계: 컨텍스트 수집
const context = await invokeSubAgent({
  name: "context-gatherer", 
  prompt: "로그인 실패 시 에러 메시지가 표시되지 않는 버그와 관련된 파일들을 찾아주세요",
  explanation: "로그인 에러 처리 관련 코드 구조 파악"
});

// 2단계: 메인 에이전트에서 버그 수정
// context 결과를 바탕으로 관련 파일들을 수정

2. 병렬 작업 처리

// 동시에 여러 작업 실행
const [docs, tests, types] = await Promise.all([
  invokeSubAgent({
    name: "general-task-execution",
    prompt: "API 문서 생성",
    explanation: "API 엔드포인트 문서화"
  }),
  invokeSubAgent({
    name: "general-task-execution", 
    prompt: "단위 테스트 작성",
    explanation: "새로운 기능에 대한 테스트 코드 작성"
  }),
  invokeSubAgent({
    name: "general-task-execution",
    prompt: "TypeScript 타입 정의",
    explanation: "API 응답 타입 정의 생성"
  })
]);

3. 단계별 작업 분할

// 복잡한 기능을 단계별로 분할
const step1 = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "데이터베이스 스키마 설계",
  explanation: "새로운 기능을 위한 DB 스키마 작성"
});

const step2 = await invokeSubAgent({
  name: "general-task-execution", 
  prompt: "API 엔드포인트 구현",
  explanation: "스키마 기반 API 로직 구현"
});

const step3 = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "프론트엔드 컴포넌트 작성", 
  explanation: "API를 사용하는 UI 컴포넌트 구현"
});

실전 활용 사례

사례 1: 새로운 기능 개발

// 1. 요구사항 분석 및 설계
const analysis = await invokeSubAgent({
  name: "context-gatherer",
  prompt: "사용자 프로필 편집 기능과 관련된 기존 코드들을 분석해주세요",
  explanation: "기존 사용자 관리 시스템 구조 파악"
});

// 2. 백엔드 API 개발
const backend = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "사용자 프로필 편집 API 엔드포인트를 구현해주세요",
  explanation: "프로필 업데이트 API 로직 구현"
});

// 3. 프론트엔드 컴포넌트 개발  
const frontend = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "프로필 편집 폼 컴포넌트를 작성해주세요",
  explanation: "사용자 인터페이스 구현"
});

// 4. 테스트 코드 작성
const tests = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "프로필 편집 기능에 대한 통합 테스트를 작성해주세요",
  explanation: "기능 검증을 위한 테스트 코드 작성"
});

사례 2: 코드 리팩토링

// 1. 리팩토링 대상 분석
const analysis = await invokeSubAgent({
  name: "context-gatherer",
  prompt: "레거시 인증 시스템과 관련된 모든 파일들을 찾아주세요",
  explanation: "리팩토링 범위 파악을 위한 코드 분석"
});

// 2. 새로운 아키텍처 설계
const architecture = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "현대적인 JWT 기반 인증 시스템 아키텍처를 설계해주세요",
  explanation: "새로운 인증 시스템 구조 설계"
});

// 3. 단계별 마이그레이션
const migration = await invokeSubAgent({
  name: "general-task-execution", 
  prompt: "기존 시스템과 호환되는 마이그레이션 계획을 수립해주세요",
  explanation: "무중단 마이그레이션 전략 수립"
});

사례 3: 버그 수정

// 1. 버그 관련 코드 탐색
const bugContext = await invokeSubAgent({
  name: "context-gatherer",
  prompt: "결제 실패 시 사용자에게 알림이 가지 않는 버그와 관련된 파일들을 찾아주세요",
  explanation: "결제 알림 시스템 관련 코드 구조 파악"
});

// 2. 근본 원인 분석
const rootCause = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "결제 알림 시스템의 로직을 분석하고 버그의 원인을 찾아주세요",
  explanation: "버그 발생 원인 분석"
});

// 3. 수정 및 테스트
const fix = await invokeSubAgent({
  name: "general-task-execution",
  prompt: "버그를 수정하고 관련 테스트 케이스를 추가해주세요", 
  explanation: "버그 수정 및 재발 방지 테스트 작성"
});

서브에이전트 모범 사례

1. 적절한 작업 분할

// ✅ 좋은 예: 명확한 단일 책임
await invokeSubAgent({
  name: "general-task-execution",
  prompt: "사용자 인증 미들웨어만 구현해주세요",
  explanation: "인증 로직만 집중적으로 구현"
});

// ❌ 나쁜 예: 너무 광범위한 작업
await invokeSubAgent({
  name: "general-task-execution", 
  prompt: "전체 사용자 관리 시스템을 구현해주세요",
  explanation: "범위가 너무 넓어 효과적이지 않음"
});

2. 컨텍스트 활용

// ✅ 좋은 예: context-gatherer 결과 활용
const context = await invokeSubAgent({
  name: "context-gatherer",
  prompt: "API 라우팅 관련 파일들을 찾아주세요"
});

// context 결과를 바탕으로 구체적인 작업 수행
await invokeSubAgent({
  name: "general-task-execution",
  prompt: `${context.result}를 참고하여 새로운 API 엔드포인트를 추가해주세요`
});

3. 독립성 보장

// ✅ 좋은 예: 독립적으로 실행 가능한 작업
await invokeSubAgent({
  name: "general-task-execution",
  prompt: "README 파일을 업데이트하고 설치 가이드를 추가해주세요",
  explanation: "문서 업데이트는 독립적으로 수행 가능"
});

Custom Subagents (v0.9+)

v0.9부터 역할별 커스텀 서브에이전트를 정의할 수 있습니다.

// .kiro/agents/frontend-agent.json
{
  "name": "frontend-specialist",
  "description": "React/Next.js 프론트엔드 전문 에이전트",
  "steering": [".kiro/steering/frontend/*.md"],
  "tools": ["file_edit", "shell_command", "web_search"],
  "model": "claude-sonnet-4-6"
}

활용 예시

커스텀 에이전트역할전문 영역
frontend-specialist프론트엔드 개발React, CSS, 접근성
backend-specialist백엔드 개발API, DB, 인증
test-engineer테스트 작성단위/통합/E2E 테스트
docs-writer문서화README, API 문서

Agent Skills (v0.9+)

agentskills.io 표준을 따르는 모듈형 스킬 패키지를 서브에이전트에 붙일 수 있습니다. Progressive disclosure 방식이라 필요한 스킬만 켜서 컨텍스트를 아낍니다.

// .kiro/agents/review-agent.json
{
  "name": "code-reviewer",
  "skills": ["security-audit", "performance-review", "accessibility-check"],
  "progressiveDisclosure": true
}

주의사항

Autopilot 모드 필요

서브에이전트는 Autopilot 모드에서만 사용할 수 있습니다.

컨텍스트 제한

각 서브에이전트는 컨텍스트가 따로 분리돼 있어서 메인 세션의 이전 대화 내용을 직접 참조할 수 없습니다.

참고 문서

  • Kiro 공식 사이트: https://kiro.dev
  • Custom Subagents 블로그: https://kiro.dev/blog/custom-subagents-skills-and-enterprise-controls/
  • Kiro 문서: https://kiro.dev/docs

관련 문서

Ch4. 서브에이전트 활용

Claude Code 고급 활용 · 독립 컨텍스트를 가진 서브에이전트를 frontmatter로 정의하고, 내장 에이전트(Explore·Plan)·도구 제한·모델 선택·worktree 격리·--agent 실행을 운영하는 방법

Ch13. 커뮤니티 & 리소스

공식 문서·changelog·Discord·GitHub 토픽, Awesome MCP Servers와 cc-sdd 등 오픈소스, 학습 채널과 단계별 Kiro 마스터 로드맵 정리

Ch8. Autopilot 모드 활용

자율 실행, 감독 모드 워크플로우, 안전한 자동화

Cmd. /agents

Claude Code 명령어 마스터 · v2.1.198 이후 서브에이전트 파일 생성·편집 방법을 안내하는 명령과 Agent View의 차이를 설명합니다.

Ch3. 멀티세션 워크플로우

기능별·계층별 워크스페이스 분리로 여러 Kiro 세션을 병렬 운영하고, 공유 타입·API 계약·통합 스크립트와 정기/이벤트 기반 동기화로 협업하는 워크플로우

Ch5. Hooks 시스템

이벤트 기반 자동화, askAgent와 runCommand 타입, 실전 레시피

On this page

서브에이전트 종류context-gatherergeneral-task-execution서브에이전트 활용 패턴1. 컨텍스트 수집 후 작업2. 병렬 작업 처리3. 단계별 작업 분할실전 활용 사례사례 1: 새로운 기능 개발사례 2: 코드 리팩토링사례 3: 버그 수정서브에이전트 모범 사례1. 적절한 작업 분할2. 컨텍스트 활용3. 독립성 보장Custom Subagents (v0.9+)활용 예시Agent Skills (v0.9+)주의사항참고 문서