본문으로 건너뛰기

커스텀 서브에이전트

커스텀 서브에이전트는 특정 역할과 도메인에 최적화된 전문 에이전트입니다. .claude/agents/ 디렉토리에 마크다운 파일로 정의하며, YAML frontmatter로 도구, 모델, 권한을 세밀하게 제어합니다.

파일 형식

YAML frontmatter + 마크다운 본문으로 구성합니다. frontmatter는 설정, 본문은 시스템 프롬프트입니다:

---
name: code-reviewer
description: 코드 품질과 보안 모범 사례를 검토합니다
tools: Read, Glob, Grep
model: sonnet
---

당신은 코드 리뷰어입니다. 호출되면 코드를 분석하고
품질, 보안, 모범 사례에 대한 구체적이고 실행 가능한 피드백을 제공하세요.
시스템 프롬프트

서브에이전트는 전체 Claude Code 시스템 프롬프트가 아닌 이 마크다운 본문만 시스템 프롬프트로 받습니다 (작업 디렉토리 같은 기본 환경 정보는 포함).

YAML Frontmatter 필드

필드필수설명
nameO고유 식별자. 소문자와 하이픈만
descriptionOClaude가 위임 판단에 사용
tools-사용 가능한 도구. 생략 시 전체 상속. Task(agent_type) 구문으로 서브에이전트 생성 제한
disallowedTools-차단할 도구
model-sonnet, opus, haiku, inherit (기본: inherit)
permissionMode-default, acceptEdits, dontAsk, bypassPermissions, plan
maxTurns-최대 에이전틱 턴 수
skills-시작 시 로드할 Skills (전체 콘텐츠 주입)
mcpServers-사용 가능한 MCP 서버 (이름 참조 또는 인라인 정의)
hooks-서브에이전트 라이프사이클 Hook
memory-영속 메모리 범위: user, project, local
background-true면 항상 백그라운드 실행 (기본: false)
isolation-worktree면 격리된 git 워크트리에서 실행

tools 필드 상세

Task(agent_type) 구문으로 어떤 서브에이전트를 생성할 수 있는지 제한합니다:

tools: Task(worker, researcher), Read, Bash

이것은 허용 목록입니다. Task를 완전히 생략하면 서브에이전트를 생성할 수 없습니다. 이 제한은 claude --agent로 메인 스레드로 실행될 때만 적용됩니다.

permissionMode 값

모드동작
default표준 권한 확인
acceptEdits파일 수정 자동 승인
dontAsk권한 프롬프트 자동 거부 (명시 허용 도구만 작동)
bypassPermissions모든 권한 검사 건너뜀 (주의)
plan읽기 전용 탐색 모드

영속 메모리 (Persistent Memory)

memory 필드로 서브에이전트에게 세션 간 유지되는 메모리 디렉토리를 부여합니다:

범위위치용도
user~/.claude/agent-memory/<name>/모든 프로젝트 공통 (권장)
project.claude/agent-memory/<name>/프로젝트별, git 공유 가능
local.claude/agent-memory-local/<name>/프로젝트별, git 미추적

메모리가 활성화되면:

  • 시스템 프롬프트에 메모리 읽기/쓰기 지침 포함
  • MEMORY.md 처음 200줄이 자동 로드
  • Read, Write, Edit 도구가 자동 활성화
---
name: code-reviewer
description: 코드 리뷰어 — 이전 리뷰 패턴을 기억합니다
tools: Read, Grep, Glob
memory: user
---

코드를 리뷰할 때 먼저 메모리에서 이전에 발견한 패턴을 확인하세요.
리뷰 완료 후 새로 배운 내용을 메모리에 저장하세요.

저장 위치와 우선순위

위치범위우선순위
--agents CLI 플래그현재 세션1 (최고)
.claude/agents/현재 프로젝트2
~/.claude/agents/모든 프로젝트3
플러그인 agents/플러그인 활성 시4 (최저)

같은 이름의 서브에이전트가 여러 레벨에 있으면 우선순위가 높은 것이 적용됩니다.

/agents 관리 커맨드

/agents

인터랙티브 인터페이스에서:

  • 보기: 모든 서브에이전트 (빌트인, 사용자, 프로젝트, 플러그인)
  • 생성: 가이드 설정 또는 Claude 자동 생성
  • 편집: 설정과 도구 접근 수정
  • 삭제: 커스텀 서브에이전트 제거

CLI에서 목록 확인:

claude agents

CLI 정의 (--agents)

세션 한정 서브에이전트를 JSON으로 정의합니다:

claude --agents '{
"code-reviewer": {
"description": "코드 변경 후 자동 리뷰. 품질, 보안, 모범 사례에 집중.",
"prompt": "당신은 시니어 코드 리뷰어입니다.",
"tools": ["Read", "Grep", "Glob", "Bash"],
"model": "sonnet"
}
}'

지원 필드: description, prompt, tools, disallowedTools, model, permissionMode, mcpServers, hooks, maxTurns, skills, memory.

격리 실행 (Worktree)

isolation: worktree로 설정하면 서브에이전트가 git 워크트리의 격리된 복사본에서 실행됩니다:

---
name: experimental-refactor
description: 실험적 리팩토링을 격리 환경에서 수행
isolation: worktree
tools: Read, Write, Edit, Bash
---

코드를 자유롭게 실험하세요. 변경사항이 없으면 워크트리가 자동 정리됩니다.

Hook 연동

서브에이전트 frontmatter에서 직접 Hook을 정의할 수 있습니다. 해당 서브에이전트가 활성화된 동안만 실행되고, 완료 시 정리됩니다:

---
name: safe-executor
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/security-check.sh"
Stop:
- hooks:
- type: prompt
prompt: "모든 태스크가 완료됐는지 확인: $ARGUMENTS"
---

Stop Hook은 런타임에 자동으로 SubagentStop으로 변환됩니다.

실전 예시

DB 전문 에이전트

---
name: db-expert
description: 데이터베이스 스키마 분석과 쿼리 최적화
tools: Read, Grep, Glob, Bash(psql *)
model: sonnet
memory: project
---

데이터베이스 전문가입니다.
- 스키마 분석 시 인덱스 효율성을 반드시 확인
- 쿼리 최적화 제안 시 EXPLAIN 결과를 근거로 제시
- 마이그레이션 작성 시 롤백 전략 포함

보안 감사 에이전트

---
name: security-auditor
description: 보안 취약점 검사 — OWASP Top 10 중심
tools: Read, Grep, Glob
model: opus
permissionMode: plan
---

보안 감사관입니다. OWASP Top 10 기준으로:
1. SQL 인젝션 가능성 검사
2. XSS 취약점 식별
3. 인증/인가 로직 검증
4. 민감 데이터 노출 확인
5. 구체적 수정 방안 제시

문서 작성 에이전트

---
name: doc-writer
description: API 문서와 README 자동 생성
tools: Read, Glob, Grep, Write, Edit
model: sonnet
skills:
- doc-template
---

기술 문서 작성자입니다.
코드를 분석하고 명확하고 실용적인 문서를 작성합니다.
doc-template 스킬의 형식을 따릅니다.
설계 원칙
  • 하나의 역할에 집중: 각 서브에이전트는 하나의 전문 분야
  • 상세한 설명: Claude가 위임 판단에 사용하므로 구체적으로
  • 최소 도구 권한: 필요한 도구만 부여
  • git 커밋: 프로젝트 서브에이전트는 팀과 공유

다음 챕터: Claude API 패턴 →