이 페이지의 목차
확인 2026-10-18근거 자료 3건갱신 2026-10-26언급 17곳
이 페이지의 목차

Claude Code 서브에이전트 정의 파일을 찾아보는 페이지다. 모든 내용은 공식 문서 Claude Code 서브에이전트(원본 날짜 미상, 수집 2026-10-18) 기준이고, 필드 이름·값·경로·환경 변수는 원본 그대로 적었다. 서브에이전트가 무엇이고 언제 쓰는지는 서브에이전트, 따라 할 절차와 예시 정의는 Claude Code 서브에이전트 만들기·운영, 안 될 때는 Claude Code 서브에이전트 문제 해결.

파일 형식#

정의 파일은 YAML frontmatter(--- 사이, 용어 사전) 뒤에 시스템 프롬프트를 마크다운으로 쓴 파일이다. 필수 필드는 name과 description뿐이다. Claude Code 서브에이전트

원본 예(.claude/agents/code-reviewer.md):

markdown
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---

You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.
  • 본문이 시스템 프롬프트가 된다. 서브에이전트는 이 프롬프트와 작업 디렉터리 같은 기본 환경 정보만 받고, Claude Code 시스템 프롬프트는 받지 않는다. Claude Code 서브에이전트
  • 여러 단어 필드는 camelCase(maxTurns, disallowedTools)이고 표와 정확히 같아야 한다. 알아보지 못한 필드는 오류 없이 무시된다. Claude Code 서브에이전트

위치와 우선순위#

같은 이름이 여럿이면 우선순위가 높은 위치의 것을 쓴다. Claude Code 서브에이전트

위치범위우선순위만드는 법
Managed settings조직 전체1 (가장 높음)managed settings로 배포
--agents CLI 플래그현재 세션2Claude Code를 실행할 때 JSON으로 넘김
.claude/agents/현재 프로젝트3Claude에게 부탁하거나 직접 파일 작성
~/.claude/agents/모든 프로젝트4Claude에게 부탁하거나 직접 파일 작성
플러그인의 agents/ 디렉터리플러그인이 켜진 곳5 (가장 낮음)플러그인과 함께 설치
  • 프로젝트: 현재 작업 디렉터리에서 저장소 루트까지 올라가며 모든 .claude/agents/를 훑는다. 중첩된 디렉터리끼리 같은 name이면 작업 디렉터리에 가장 가까운 것이 이긴다. --add-dir·/add-dir로 더한 디렉터리의 .claude/agents/도 로드된다. 원본은 프로젝트 서브에이전트를 버전 관리에 넣어 팀이 함께 쓰고 고치라고 한다. Claude Code 서브에이전트
  • 하위 폴더: .claude/agents/와 ~/.claude/agents/는 재귀로 훑으므로 agents/review/ 같은 하위 폴더로 정리해도 된다. 정체는 frontmatter name으로만 정해지고 경로는 상관없다. 같은 디렉터리 트리 안에 같은 name이 둘이면 문서화된 우선순위가 아니라 파일 시스템 읽기 순서로 하나만 로드된다. /doctor가 같은 디렉터리의 이름 중복을 보고하고 이름 바꾸기·지우기를 제안한다. Claude Code 서브에이전트
  • 플러그인: 플러그인 agents/도 재귀로 훑지만, 하위 폴더가 범위 이름에 들어간다. 플러그인 my-plugin의 agents/review/security.md는 my-plugin:review:security로 등록된다. Claude Code 서브에이전트
  • Managed: managed settings 디렉터리 안 .claude/agents/에 같은 frontmatter 형식의 마크다운 파일을 둔다. 같은 이름의 프로젝트·사용자 서브에이전트보다 우선한다. Claude Code 서브에이전트
  • 에이전트 팀: 팀원을 띄울 때 서브에이전트 종류를 이름으로 대면 그 정의의 일부가 팀원에 적용된다. 어떤 범위·어떤 부분이 적용되는지는 원본이 Agent teams 문서로 넘긴다. Claude Code 서브에이전트

--agents CLI 플래그 (JSON)#

세션 동안만 있고 디스크에 저장되지 않아 빠른 시험이나 자동화 스크립트에 쓴다. 한 번에 여러 개를 정의한다. 원본 예(macOS·Linux·WSL): Claude Code 서브에이전트

bash
claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  },
  "debugger": {
    "description": "Debugging specialist for errors and test failures.",
    "prompt": "You are an expert debugger. Analyze errors, identify root causes, and provide fixes."
  }
}'
  • Windows PowerShell은 같은 JSON을 @' … '@ 사이에 넣는다. Claude Code 서브에이전트
  • 최상위 키가 에이전트 이름이다(-로 시작하지 않는다). prompt는 파일형의 본문에 해당하고 비워도 된다(v2.1.281 이상). prompt가 비고 memory가 없는 에이전트를 --agent로 세션 에이전트로 고르면 세션 시스템 프롬프트가 바뀌지 않는다. Claude Code 서브에이전트
  • 받는 frontmatter 필드: description, tools, disallowedTools, model, permissionMode, mcpServers, hooks, maxTurns, autoCompactWindow, skills, initialPrompt, memory, effort, background, omitClaudeMd, isolation. color와 experimental은 거부되지 않고 무시된다. Claude Code 서브에이전트
  • 비대화형 모드에서는 같은 객체를 담은 JSON 파일 경로도 받는다(예: claude -p --agents ./agents.json "Review my changes", v2.1.281 이상). 대화형 세션에서는 파일 경로를 거부한다. Claude Code 서브에이전트
  • 조직은 managed disableSideloadFlags로 시작 때 --agents 플래그를 거부할 수 있다(v2.1.193 이상). Claude Code managed settings 배포
  • (2026-10-21 기준) 공식 CLI 문서: Claude Code는 시작 때 --agents 값을 검증하고 잘못된 값이면 끝낸다(검증은 v2.1.242 이상). 검증을 건너뛰는 플래그·환경 변수는 원본이 오류 문서로 넘긴다. 파일 경로 형태는 --print와 함께일 때 받는다(v2.1.281 이상). 비대화형에서 모든 서브에이전트(중첩 포함, 포크 제외)의 시스템 프롬프트 끝에 공통 지시를 붙이려면 -p --append-subagent-system-prompt "..."(v2.1.205 이상) 또는 파일형 --append-subagent-system-prompt-file(v2.1.261 이상, 둘은 함께 못 씀). Claude Code CLI 레퍼런스 → Claude Code CLI 플래그

frontmatter 필드 (원본 표)#

필드필수설명
name예256자 이하 고유 식별자(예: code-reviewer, reviewer-v2). 훅은 이 값을 agent_type으로 받는다. 파일 이름과 같을 필요 없음. :는 플러그인 범위 이름용이라 쓸 수 없음
description예Claude가 언제 이 서브에이전트에 위임할지
tools아니오쓸 수 있는 도구. 쉼표 구분 문자열(Read, Grep, Bash)이나 YAML 목록. 생략하면 서브에이전트가 쓸 수 있는 모든 도구를 물려받음. 목록의 어떤 항목도 도구로 풀리지 않으면 보통 항목 이름을 담은 오류로 시작에 실패. 스킬을 미리 로드하려면 여기 Skill을 쓰지 말고 skills 필드
disallowedTools아니오거부할 도구. 물려받은 목록이나 지정 목록에서 뺌. tools와 같은 형식. Bash(git push *)처럼 지정자가 있어도 도구 전체를 뺌
model아니오sonnet, opus, haiku, fable, 전체 모델 ID(예: claude-opus-5-5), 또는 inherit. 생략하면 모델 결정 순서를 따름
permissionMode아니오default, acceptEdits, auto, dontAsk, bypassPermissions, plan, 또는 default의 별칭 manual. 플러그인 서브에이전트는 무시
maxTurns아니오멈추기 전 최대 에이전트 턴 수. 한도에 닿으면 출력을 부분(partial)으로 표시해 돌려주고 Claude가 재개해 이어 갈 수 있음(부분 표시는 v2.1.246 이상)
autoCompactWindow아니오이 서브에이전트의 자동 컴팩션 창을 100000~1000000 토큰으로 낮춤. v2.1.296 이상
skills아니오시작 때 컨텍스트에 미리 로드할 스킬. 설명이 아니라 전체 내용이 들어감. 적지 않은 프로젝트·사용자·플러그인 스킬도 Skill 도구로 부를 수 있음
mcpServers아니오이 서브에이전트가 쓸 MCP 서버. 이미 설정된 서버 이름(예: "slack")이나 서버 이름을 키로 한 인라인 정의. 플러그인 서브에이전트는 무시
hooks아니오이 서브에이전트 범위의 생명주기 훅. 플러그인 서브에이전트는 무시
memory아니오지속 메모리 범위 user, project, local. 세션을 넘는 학습
background아니오true면 Claude가 포그라운드로 돌리려 해도 백그라운드에 둠. 포크 모드가 켜진 곳에서는 이미 Claude가 띄우는 서브에이전트가 백그라운드
omitClaudeMd아니오true면 user·project·local CLAUDE.md 없이 시작. managed 정책 파일은 로드(단 managed 서브에이전트는 그것도 없음). 위임 프롬프트로 필요한 것을 다 받는 서브에이전트용. --agent나 agent 설정으로 메인 세션 에이전트로 돌 때는 무시. v2.1.271 이상
effort아니오이 서브에이전트가 활성일 때의 effort. 세션 effort를 덮어쓰지만 CLAUDE_CODE_EFFORT_LEVEL 환경 변수는 못 덮음. low, medium, high, xhigh, max(모델에 따라 다름)
isolation아니오worktree면 임시 git worktree에서 실행. 기본으로(by default) 부모 세션의 HEAD가 아니라 기본 브랜치에서 분기(기준 브랜치를 고르는 방법은 Worktrees 문서). 변경이 없으면 자동 정리. 에이전트 팀이 켜진 대화형 세션에서 메인이 name을 붙여 띄우면 팀원으로 떠서 이 값과 상관없이 메인 세션의 작업 디렉터리에서 돈다(포크나 호출 자체에 isolation을 넘긴 경우 제외)
color아니오작업 목록·트랜스크립트 표시 색. red, blue, green, yellow, purple, orange, pink, cyan
initialPrompt아니오메인 세션 에이전트(--agent나 agent 설정)로 돌 때 첫 사용자 턴으로 자동 제출. 명령·스킬이 처리되고 사용자 프롬프트 앞에 붙음. 플러그인 서브에이전트는 무시
experimental아니오실험 옵션 맵. cacheTtl을 5m이나 1h로 두면 이 서브에이전트 요청의 프롬프트 캐시 수명을 고름. 다른 값은 무시, Claude 구독이 사용량 크레딧을 쓰는 동안 1h는 무시, 서브에이전트 파일에서만 읽음. v2.1.248 이상

근거: Claude Code 서브에이전트. cacheTtl은 frontmatter 최상위가 아니라 experimental 맵 안에 쓴다. 원본 예:

yaml
---
name: repo-auditor
description: Audits a large repository and reports what it finds
experimental:
  cacheTtl: 1h
---

건너뛰는 파일#

프로젝트·사용자·managed agents 디렉터리(또는 --add-dir 디렉터리 아래)의 파일은 frontmatter에 다음 문제가 있으면 세션에 알리지 않고 건너뛴다. Claude Code 서브에이전트

문제처리
name 없음에이전트 옆에 둔 문서로 봄
여는 ---가 파일 첫 줄이 아님frontmatter가 없는 문서로 봄
name이 -로 시작, : 포함, 256자 초과건너뛰고 디버그 로그에 오류
name은 있고 description 없음건너뛰고 디버그 로그에 이유
YAML 파싱 실패어떤 필드도 읽지 않고 건너뛰고 디버그 로그에 파싱 오류

플러그인 서브에이전트는 name이 없거나 파싱이 안 돼도 파일 이름으로 로드된다. 점검 방법은 Claude Code 서브에이전트 문제 해결. Claude Code 서브에이전트

모델 결정 순서#

  1. 호출별 model 인자(Claude가 서브에이전트를 부를 때 넘김)
  2. 정의의 model frontmatter(inherit는 메인 대화 모델)
  3. CLAUDE_CODE_SUBAGENT_MODEL 환경 변수(모델 별칭이나 ID일 때)
  4. 메인 대화 모델

근거: Claude Code 서브에이전트. 세부:

  • 설치한 mod가 agent.spawn 훅에서 모델을 정하면 호출별 인자 대신 그 모델을 쓴다. Claude Code 서브에이전트

  • opus 같은 계열 별칭이 메인 모델로 풀리는 두 경우: 메인 모델이 그 계열이면 [1m] 접미사까지 포함한 메인의 정확한 모델(같은 extended context 창). Anthropic API가 아닌 제공자에서 메인 모델 계열을 알 수 없으면(예: Bedrock의 해석되지 않은 application inference profile ARN) opus 별칭만 해당하고, ANTHROPIC_DEFAULT_OPUS_MODEL을 두면 해당하지 않는다. CLAUDE_CODE_SUBAGENT_MODEL의 별칭은 늘 별칭이 가리키는 버전으로 풀리고, inherit로 두면 설정하지 않은 것과 같다. Claude Code 서브에이전트

  • CLAUDE_CODE_SUBAGENT_MODEL만으로는 내장 Explore·Plan의 모델이 바뀌지 않는다. v2.1.251 이전에는 이 변수가 순서 맨 앞이었다. Claude Code 서브에이전트

  • 한 모델 강제: CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1(v2.1.257 이상)이면 정의의 model을 무시하고 Claude가 모델을 넘기지 못한다. 두 변수를 함께 두면 CLAUDE_CODE_SUBAGENT_MODEL의 모델, FORCE만 두면 메인 모델(내장 Explore는 내장 표의 모델). 포크와 model: inherit 스킬 서브에이전트는 여전히 메인 모델. 원본 예(모두 Haiku): Claude Code 서브에이전트

    json
    {
      "env": {
        "CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
        "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1"
      }
    }
  • 허용 목록: 호출별 인자·frontmatter·환경 변수 값을 조직의 availableModels와 대조한다. 막힌 계열 별칭은 허용 목록이 허락하는 그 계열의 최신 버전으로(v2.1.222 이전에는 상속 모델로), 그 밖의 막힌 값이나 대체가 안 되는 경우는 상속 모델로 돈다. 대화형 세션은 요청 모델과 실제 모델을 경고로 알린다. Claude Code 서브에이전트

  • 확인: /tasks에서 서브에이전트 행에 모델(설정된 effort 포함)이 보인다(v2.1.242 이상). 호출별 model은 재개·후속 메시지에도 유지된다(v2.1.211 이전에는 재개 때 빠짐). Claude Code 서브에이전트

  • extended thinking은 v2.1.198부터 메인 설정을 그대로 물려받고 서브에이전트별 설정은 없다(이전에는 늘 꺼짐). Claude Code 서브에이전트

  • effort: 우선순위가 높은 것부터 CLAUDE_CODE_EFFORT_LEVEL 환경 변수, 호출별 effort 인자(포크가 아닌 서브에이전트, 재개 때 유지, v2.1.292 이상), 정의의 effort 필드 순이다. Claude Code 서브에이전트

도구#

물려받는 도구와 두 필터#

서브에이전트는 메인 대화의 내장 도구와 MCP 도구를 물려받되 두 필터로 좁혀진다. macOS·Linux·WSL에서는 메인에 없어도 Glob·Grep을 받을 수 있다. 포크는 두 필터를 건너뛰고 메인과 정확히 같은 도구 풀을 받는다. Claude Code 서브에이전트

  1. 모든 서브에이전트에서 빠지는 도구(tools에 적어도): 깊이 한도에 닿은 서브에이전트의 Agent(포크는 목록에 남지만 호출하면 오류), AskUserQuestion, EndConversation, EnterPlanMode, ExitPlanMode(permissionMode가 plan이면 남음), ScheduleWakeup, WaitForMcpServers, Workflow.
  2. 백그라운드 서브에이전트(기본값)의 내장 도구: MCP 도구는 모두 남고 내장 도구는 Read, Grep, Glob, LSP, Bash, PowerShell, Edit, Write, NotebookEdit, WebFetch, WebSearch, TodoWrite, Skill, ToolSearch, EnterWorktree, ExitWorktree, Monitor, TaskStop, SendMessage, Artifact(+ 그것으로 보고하는 서브에이전트의 SubagentHandback)만 남는다. 물려받았든 tools에 적었든 나머지 내장 도구는 빠지고, tools가 아무것도 남지 않게 되지 않는 한 오류를 내지 않는다. 그래서 같은 정의가 포그라운드와 백그라운드에서 다른 도구로 풀릴 수 있다. v2.1.280 이전에는 백그라운드에서 LSP를 못 썼다. (2026-10-26 기준) 목록의 TodoWrite를 포함한 할 일 도구는 메인 세션에 있을 때만 서브에이전트도 갖는다(서브에이전트 모델과 무관). 메인 세션의 할 일 도구는 지금 Opus 4.7·Sonnet 4.6·Haiku 4.5 이하 모델에서만 기본이고 TodoWrite는 TaskCreate·TaskGet·TaskList·TaskUpdate 네 도구에 밀려 기본으로 꺼져 있다. Claude Code 도구 레퍼런스 → Claude Code 내장 도구
  • ListAgents는 cross-session messaging이 켜진 세션에서 포그라운드 서브에이전트만 물려받는다. 에이전트 팀의 팀원은 작업·cron 도구(TaskCreate, TaskGet, TaskList, TaskUpdate, CronCreate, CronDelete, CronList)를 더 가진다. Task 도구가 없는 세션에서는 서브에이전트에도 작업 도구가 없다. Claude Code 서브에이전트
  • v2.1.63에서 Task 도구가 Agent로 이름이 바뀌었고, 설정·정의의 Task(...)는 별칭으로 계속 동작한다. Claude Code 서브에이전트

tools와 disallowedTools#

둘 다 두면 disallowedTools를 먼저 적용하고 남은 풀에서 tools를 푼다. 둘 다에 있는 도구는 빠진다. Claude Code 서브에이전트

목표필드예시 항목
한 서버의 모든 도구 주기toolsmcp__github__*
한 서버의 도구 빼기disallowedToolsmcp__github 또는 mcp__github__*
모든 서버의 MCP 도구 빼기disallowedToolsmcp__*

원본 예 세 가지: tools: Read, Grep, Glob, Bash(파일 편집·쓰기·MCP 도구 없음), disallowedTools: Write, Edit(Bash·MCP·나머지 풀 유지), disallowedTools: mcp__github(github 서버만 빼고 나머지 유지). 원문은 Claude Code 서브에이전트 만들기·운영. Claude Code 서브에이전트

띄울 수 있는 서브에이전트 제한: Agent(agent_type)#

claude --agent로 메인 스레드로 도는 에이전트는 tools에 Agent(worker, researcher)처럼 쓰면 그 종류만 띄울 수 있다(허용 목록, 다른 종류는 요청이 실패하고 프롬프트에 허용 종류만 보임). 괄호 없는 Agent는 제한 없음, Agent를 아예 빼면 띄우지 못한다. 특정 에이전트만 막고 나머지를 허용하려면 permissions.deny를 쓴다. Claude Code 서브에이전트

  • 이 괄호 문법은 claude --agent 메인 스레드에만 적용된다. 서브에이전트 정의의 tools에 Agent를 쓰면 깊이 한도 안에서 자기 서브에이전트를 띄울 수 있지만, 괄호 안 종류 목록은 무시된다. Claude Code 서브에이전트

특정 서브에이전트 끄기#

설정의 permissions.deny에 Agent(서브에이전트 이름)을 둔다(내장·커스텀 모두). CLI로는 claude --disallowedTools "Agent(Explore)". Claude Code 서브에이전트

json
{
  "permissions": {
    "deny": ["Agent(Explore)", "Agent(my-custom-agent)"]
  }
}

MCP 서버 범위 지정 (mcpServers)#

  • 메인 대화에 없는 MCP 서버를 서브에이전트에 준다. 인라인 서버는 서브에이전트가 시작할 때 연결되고 끝나면 끊긴다. 이름 참조는 부모 세션의 연결을 공유한다. 인라인 정의는 .mcp.json 항목과 같은 스키마(서버 이름이 키)이고 stdio, http, sse, ws를 지원한다. Claude Code 서브에이전트
  • 이 필드는 서브에이전트로 돌 때(Agent 도구·@-mention)와 메인 세션으로 돌 때(--agent·agent 설정) 모두 적용된다. 메인 세션이면 인라인 서버가 .mcp.json·설정 파일 서버와 함께 시작 때 연결된다. Claude Code 서브에이전트
  • 원본 팁: 서버 도구 설명이 메인 대화 컨텍스트를 쓰지 않게 하려면 .mcp.json이 아니라 여기 인라인으로 정의한다. 서브에이전트는 도구를 받고 부모 대화는 받지 않는다. Claude Code 서브에이전트 → 컨텍스트 비용
  • 메인 세션의 MCP 제한(--strict-mcp-config, --bare, Enterprise managed MCP, allowedMcpServers·deniedMcpServers)이 frontmatter 서버에도 적용되고, 막힌 서버는 건너뛰며 경고를 보인다. managed 제한은 정의 방식과 상관없이 모든 서브에이전트에 적용된다. 예외: --strict-mcp-config는 --agents나 SDK agents 옵션으로 넘긴 인라인 서버를 거르지 않는다(호출자의 명시 입력이라서). Claude Code 서브에이전트

인라인 서버의 신뢰 규칙 (v2.1.238 이상, 이전에는 신뢰 확인 없이 로드): 프로젝트 .claude/agents/나 --add-dir 디렉터리의 .claude/agents/에 있는 에이전트 파일의 인라인 서버는 그 파일이 온 폴더를 신뢰한 뒤에만 로드된다. Claude Code 서브에이전트

  • 신뢰로 치지 않는 것: 상위 폴더의 신뢰, -p·SDK 세션이 settings 파일 훅에 받는 자동 신뢰.
  • 그 전에는: 그 파일의 인라인 서버를 모두 건너뛰고, ~/.claude.json에 둘 정확한 projects["<path>"].hasTrustDialogAccepted 키를 디버그 로그에 쓴다.
  • 신뢰 작업 공간 저장소 밖의 --add-dir 디렉터리는 따로 신뢰해야 한다.
  • 신뢰 확인 없이 로드되는 것: 이미 설정한 서버의 이름 참조, ~/.claude/agents/·--agents·SDK agents·managed 설정이 준 파일의 인라인 서버.

권한 모드 (permissionMode)#

설정 값을 쓴다(Manual 모드는 default). 두지 않으면 메인 대화의 권한 모드를 물려받는다. 메인 대화의 모드가 이 값을 쓸지 정한다. Claude Code 서브에이전트

메인 대화 모드서브에이전트가 도는 모드
bypassPermissions, acceptEdits, auto메인과 같은 모드. 설정한 permissionMode는 무시. auto에서는 분류기가 메인의 차단·허용 규칙으로 서브에이전트 도구 호출을 평가하고, 끝나면 작업과 최종 보고서를 전달 전에 검토
default, dontAsk, plan설정한 permissionMode. 단 bypassPermissions를 설정하면(v2.1.267 이상) 또는 auto를 설정했는데 서브에이전트가 auto를 쓸 수 없으면(disableAutoMode 설정, 모델 미지원) 메인 모드 유지
값동작
defaultManual 모드: 권한을 묻는다
acceptEdits작업 디렉터리나 additionalDirectories 경로의 파일 편집과 흔한 파일 시스템 명령을 자동 수락
auto자동 모드: 백그라운드 분류기가 명령과 보호 디렉터리 쓰기를 검토
dontAsk권한 확인을 자동 거부. 명시적으로 허용한 도구는 동작. AskUserQuestion, requiresUserInteraction 표시 MCP 도구, 네트워크 경로 읽기, 조직이 ask로 둔 커넥터 도구(그 설정이 닿는 세션)는 허용했어도 거부
bypassPermissions권한 확인 건너뛰기. 메인 대화도 이 모드일 때만 서브에이전트가 이 모드로 돈다(v2.1.267 이상)
planPlan 모드(읽기 전용 탐색)

근거: Claude Code 서브에이전트. 플러그인 서브에이전트는 이 필드를 무시한다.

스킬 미리 로드 (skills)#

  • 나열한 각 스킬의 전체 내용이 시작 때 주입된다. 목록의 앞쪽 서로 다른 이름 32개까지. Claude Code 서브에이전트
  • 미리 로드할 스킬을 정할 뿐 접근을 정하지 않는다. 필드가 없어도 실행 중 Skill 도구로 프로젝트·사용자·플러그인 스킬을 찾아 부른다. 스킬 호출 자체를 막으려면 tools에서 Skill을 빼거나 disallowedTools에 넣는다. Claude Code 서브에이전트
  • disable-model-invocation: true 스킬은 미리 로드할 수 없다(Claude가 부를 수 있는 스킬 집합에서 가져오므로). 번들 /verify 스킬도 해당한다. 없거나 꺼진(조직 정책 등) 스킬은 건너뛰고 디버그 로그에 경고. Claude Code 서브에이전트
  • context: fork 스킬과는 반대 방향이다. skills 필드는 서브에이전트가 시스템 프롬프트를 쥐고 스킬 내용을 싣고, context: fork는 스킬 내용을 지정한 에이전트에 넣는다. 어느 쪽이든 대화 기록 없이 시작한다. Claude Code 서브에이전트 → 스킬

지속 메모리 (memory)#

범위위치쓰는 때
user~/.claude/agent-memory/<name-of-agent>/모든 프로젝트에 걸쳐 배운 것을 기억
project.claude/agent-memory/<name-of-agent>/프로젝트 전용이고 버전 관리로 공유
local.claude/agent-memory-local/<name-of-agent>/프로젝트 전용이지만 버전 관리에 넣지 않음

근거: Claude Code 서브에이전트

훅 (hooks)#

  • frontmatter 훅은 그 서브에이전트가 활성인 동안만 돌고 끝나면 정리된다. 모든 훅 이벤트를 지원하고, 흔한 것은 PreToolUse(도구 이름 matcher), PostToolUse(도구 이름), Stop(matcher 없음, 런타임에 SubagentStop으로 바뀜). Claude Code 서브에이전트
  • Agent 도구·@-mention으로 띄울 때와 --agent·agent 설정으로 메인 세션으로 돌 때 모두 돈다. 메인 세션이면 settings.json 훅과 함께 돈다. Claude Code 서브에이전트
  • 신뢰 규칙 (v2.1.218 이상, 이전에는 신뢰하지 않은 폴더·비대화형 세션에서도 돌 수 있었다): 프로젝트 서브에이전트의 frontmatter 훅은 그 파일이 든 폴더의 작업 공간 신뢰 창을 수락한 뒤에만 돈다. 그 전에는 서브에이전트는 그대로 돌되 frontmatter 훅만 건너뛰고 디버그 로그에 신뢰 방법을 적는다. settings 파일 훅보다 엄격해서 상위 폴더 신뢰로는 부족하고 -p 세션은 신뢰로 치지 않는다. ~/.claude/agents/와 --agents의 훅은 이 단계 없이 돈다. 신뢰 작업 공간 저장소 밖의 --add-dir 폴더는 따로 신뢰한다. Claude Code 서브에이전트
  • 세션 전체 훅(settings 파일·managed 정책·플러그인)도 서브에이전트 안에서 돈다. settings.json의 PreToolUse 훅은 서브에이전트의 모든 도구 앞에서도 돈다. SubagentStart·SubagentStop은 메인 세션에서 서브에이전트 시작·종료에 반응한다. Claude Code 서브에이전트 → 훅 이벤트 레퍼런스

관련 페이지#