์ฌ์ฉ์ ์ ์ subagent ๋ง๋ค๊ธฐ
Claude Code์์ ์์ ๋ณ ์ํฌํ๋ก์ฐ ๋ฐ ํฅ์๋ ์ปจํ ์คํธ ๊ด๋ฆฌ๋ฅผ ์ํ ํนํ๋ AI subagent๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉํฉ๋๋ค.
Subagent๋ ํน์ ์ ํ์ ์์ ์ ์ฒ๋ฆฌํ๋ ํนํ๋ AI ์ด์์คํดํธ์ ๋๋ค. ๋ถ์์ ์ด ๊ฒ์ ๊ฒฐ๊ณผ, ๋ก๊ทธ ๋๋ ๋ค์ ์ฐธ์กฐํ์ง ์์ ํ์ผ ์ฝํ ์ธ ๋ก ์ฃผ ๋ํ๋ฅผ ๋์น ๋ ํ๋๋ฅผ ์ฌ์ฉํ์ธ์: subagent๋ ์์ ์ ์ปจํ ์คํธ์์ ํด๋น ์์ ์ ์ํํ๊ณ ์์ฝ๋ง ๋ฐํํฉ๋๋ค. ๋์ผํ ์ง์นจ์ผ๋ก ๋์ผํ ์ข ๋ฅ์ ์์ปค๋ฅผ ๊ณ์ ์์ฑํ ๋ ์ฌ์ฉ์ ์ ์ subagent๋ฅผ ์ ์ํฉ๋๋ค.
๊ฐ subagent๋ ์์ฒด ์ปจํ ์คํธ ์๋์ฐ์์ ์คํ๋๋ฉฐ ์ฌ์ฉ์ ์ ์ ์์คํ ํ๋กฌํํธ, ํน์ ๋๊ตฌ ์ก์ธ์ค ๋ฐ ๋ ๋ฆฝ์ ์ธ ๊ถํ์ ๊ฐ์ง๋๋ค. Claude๊ฐ subagent์ ์ค๋ช ๊ณผ ์ผ์นํ๋ ์์ ์ ๋ง๋๋ฉด ํด๋น subagent์ ์์ํ๊ณ , subagent๋ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. ์ค์ ๋ก ์ปจํ ์คํธ ์ ๊ฐ์ ํ์ธํ๋ ค๋ฉด ์ปจํ ์คํธ ์๋์ฐ ์๊ฐํ์์ subagent๊ฐ ์์ ์ ๋ณ๋ ์๋์ฐ์์ ์ฐ๊ตฌ๋ฅผ ์ฒ๋ฆฌํ๋ ์ธ์ ์ ์๋ดํฉ๋๋ค.
Subagent๋ ๋จ์ผ ์ธ์ ๋ด์์ ์๋ํฉ๋๋ค. ๋ง์ ๋ ๋ฆฝ์ ์ธ ์ธ์ ์ ๋ณ๋ ฌ๋ก ์คํํ๊ณ ํ ๊ณณ์์ ๋ชจ๋ํฐ๋งํ๋ ค๋ฉด background agents๋ฅผ ์ฐธ์กฐํ์ธ์. ์๋ก ํต์ ํ๋ ์ธ์ ์ ๊ฒฝ์ฐ agent teams๋ฅผ ์ฐธ์กฐํ์ธ์.
Subagent๋ ๋ค์์ ๋์์ค๋๋ค:
- ์ปจํ ์คํธ ๋ณด์กด - ํ์ ๋ฐ ๊ตฌํ์ ์ฃผ ๋ํ์์ ๋ถ๋ฆฌํ์ฌ ์ ์ง
- ์ ์ฝ ์กฐ๊ฑด ์ ์ฉ - subagent๊ฐ ์ฌ์ฉํ ์ ์๋ ๋๊ตฌ ์ ํ
- ๊ตฌ์ฑ ์ฌ์ฌ์ฉ - ์ฌ์ฉ์ ์์ค subagent๋ฅผ ํตํด ํ๋ก์ ํธ ๊ฐ ๊ตฌ์ฑ ์ฌ์ฌ์ฉ
- ๋์ ํนํ - ํน์ ๋๋ฉ์ธ์ ์ํ ์ง์ค๋ ์์คํ ํ๋กฌํํธ
- ๋น์ฉ ์ ์ด - Haiku์ ๊ฐ์ ๋ ๋น ๋ฅด๊ณ ์ ๋ ดํ ๋ชจ๋ธ๋ก ์์ ๋ผ์ฐํ
Claude๋ ๊ฐ subagent์ ์ค๋ช ์ ์ฌ์ฉํ์ฌ ์์ ์ ์์ํ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. Subagent๋ฅผ ๋ง๋ค ๋ Claude๊ฐ ์ธ์ ์ฌ์ฉํ ์ง ์ ์ ์๋๋ก ๋ช ํํ ์ค๋ช ์ ์์ฑํ์ธ์.
Claude Code์๋ Explore, Plan, general-purpose์ ๊ฐ์ ์ฌ๋ฌ ๋ด์ฅ subagent๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํน์ ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ ์ subagent๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค.
๋ด์ฅ subagent
Claude Code์๋ Claude๊ฐ ์ ์ ํ ๋ ์๋์ผ๋ก ์ฌ์ฉํ๋ ๋ด์ฅ subagent๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ฐ๊ฐ์ ์ถ๊ฐ ๋๊ตฌ ์ ํ์ด ์๋ ๋ถ๋ชจ ๋ํ์ ๊ถํ์ ์์ํฉ๋๋ค.
Explore์ Plan์ ์ฐ๊ตฌ๋ฅผ ๋น ๋ฅด๊ณ ์ ๋ ดํ๊ฒ ์ ์งํ๊ธฐ ์ํด CLAUDE.md ํ์ผ๊ณผ ๋ถ๋ชจ ์ธ์ ์ git ์ํ๋ฅผ ๊ฑด๋๋๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๋ด์ฅ ๋ฐ ์ฌ์ฉ์ ์ ์ subagent๋ ๋ ๋ค ๋ก๋ํฉ๋๋ค. subagent์ ๋๋ฌํ๋ ํญ๋ชฉ์ ์ ์ฒด ๋ถ์์ startup์์ ๋ก๋๋๋ ํญ๋ชฉ์ ์ฐธ์กฐํ์ญ์์ค.
์ฝ๋๋ฒ ์ด์ค ๊ฒ์ ๋ฐ ๋ถ์์ ์ต์ ํ๋ ๋น ๋ฅธ ์ฝ๊ธฐ ์ ์ฉ ์์ด์ ํธ์ ๋๋ค.
- ๋ชจ๋ธ: Haiku (๋น ๋ฆ, ๋ฎ์ ์ง์ฐ์๊ฐ)
- ๋๊ตฌ: ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌ (Write ๋ฐ Edit ๋๊ตฌ์ ๋ํ ์ก์ธ์ค ๊ฑฐ๋ถ)
- ๋ชฉ์ : ํ์ผ ๊ฒ์, ์ฝ๋ ๊ฒ์, ์ฝ๋๋ฒ ์ด์ค ํ์
Claude๋ ๋ณ๊ฒฝ ์์ด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ์ดํดํด์ผ ํ ๋ Explore์ ์์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์ ๊ฒฐ๊ณผ๊ฐ ์ฃผ ๋ํ ์ปจํ ์คํธ์์ ๋ฒ์ด๋ฉ๋๋ค.
Explore๋ฅผ ํธ์ถํ ๋ Claude๋ ์ฒ ์ ํจ ์์ค์ ์ง์ ํฉ๋๋ค: ๋์ ์กฐํ์ ๊ฒฝ์ฐ quick, ๊ท ํ ์กํ ํ์์ ๊ฒฝ์ฐ medium, ํฌ๊ด์ ์ธ ๋ถ์์ ๊ฒฝ์ฐ very thorough.
plan mode ์ค์ ๊ณํ์ ์ ์ํ๊ธฐ ์ ์ ์ปจํ ์คํธ๋ฅผ ์์งํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฐ๊ตฌ ์์ด์ ํธ์ ๋๋ค.
- ๋ชจ๋ธ: ์ฃผ ๋ํ์์ ์์
- ๋๊ตฌ: ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌ (Write ๋ฐ Edit ๋๊ตฌ์ ๋ํ ์ก์ธ์ค ๊ฑฐ๋ถ)
- ๋ชฉ์ : ๊ณํ์ ์ํ ์ฝ๋๋ฒ ์ด์ค ์ฐ๊ตฌ
plan mode์ ์๊ณ Claude๊ฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ดํดํด์ผ ํ ๋ ์ฐ๊ตฌ๋ฅผ Plan subagent์ ์์ํ๋ฏ๋ก ํ์ ์ถ๋ ฅ์ด ๋ณ๋์ ์ปจํ ์คํธ ์๋์ฐ์ ์ ์ง๋๊ณ ์ฃผ ๋ํ๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ์ง๋ฉ๋๋ค.
ํ์๊ณผ ์์ ๋ชจ๋๋ฅผ ํ์๋ก ํ๋ ๋ณต์กํ ๋ค๋จ๊ณ ์์ ์ ์ํ ์ ๋ฅํ ์์ด์ ํธ์ ๋๋ค.
- ๋ชจ๋ธ: ์ฃผ ๋ํ์์ ์์
- ๋๊ตฌ: ๋ชจ๋ ๋๊ตฌ
- ๋ชฉ์ : ๋ณต์กํ ์ฐ๊ตฌ, ๋ค๋จ๊ณ ์์ , ์ฝ๋ ์์
Claude๋ ์์ ์ด ํ์๊ณผ ์์ ๋ชจ๋๋ฅผ ํ์๋ก ํ๊ฑฐ๋, ๊ฒฐ๊ณผ๋ฅผ ํด์ํ๊ธฐ ์ํ ๋ณต์กํ ์ถ๋ก ์ด ํ์ํ๊ฑฐ๋, ์ฌ๋ฌ ์ข ์ ๋จ๊ณ๊ฐ ํ์ํ ๋ general-purpose์ ์์ํฉ๋๋ค.
Claude Code์๋ ํน์ ์์ ์ ์ํ ์ถ๊ฐ ๋์ฐ๋ฏธ ์์ด์ ํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์๋์ผ๋ก ํธ์ถ๋๋ฏ๋ก ์ง์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
| ์์ด์ ํธ | ๋ชจ๋ธ | Claude๊ฐ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ |
|---|---|---|
| statusline-setup | Sonnet | /statusline์ ์คํํ์ฌ ์ํ ํ์์ค์ ๊ตฌ์ฑํ ๋ |
| claude-code-guide | Haiku | Claude Code ๊ธฐ๋ฅ์ ๋ํ ์ง๋ฌธ์ ํ ๋ |
๋ด์ฅ subagent๋ ํญ์ ๋ํํ ์ธ์
์ ๋ฑ๋ก๋ฉ๋๋ค. ํน์ ๋ด์ฅ ์ ํ์ ์ฐจ๋จํ๋ ค๋ฉด ํน์ subagent ๋นํ์ฑํ์ ํ์๋ ๋๋ก permissions.deny์ ์ถ๊ฐํ์ญ์์ค. Claude๊ฐ ์ด๋ค subagent์๋ ์์ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด permissions.deny๋ฅผ ์ฌ์ฉํ์ฌ Agent ๋๊ตฌ ์์ฒด๋ฅผ ๊ฑฐ๋ถํ์ญ์์ค. ๋น๋ํํ ๋ชจ๋ ๋ฐ Agent SDK์์๋ CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1์ ์ค์ ํ์ฌ ๋ชจ๋ ๋ด์ฅ ์ ํ์ ์ ๊ฑฐํ๊ณ ์์ ์ ๊ฒ๋ง ์ ๊ณตํ์ญ์์ค.
์ด๋ฌํ ๋ด์ฅ subagent ์ธ์๋ ์ฌ์ฉ์ ์ ์ ํ๋กฌํํธ, ๋๊ตฌ ์ ํ, ๊ถํ ๋ชจ๋, hooks ๋ฐ skills๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ subagent๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋ค์ ์น์ ์์๋ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ subagent๋ฅผ ์ฌ์ฉ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋น ๋ฅธ ์์: ์ฒซ ๋ฒ์งธ subagent ๋ง๋ค๊ธฐ
Subagent๋ YAML frontmatter๊ฐ ์๋ Markdown ํ์ผ๋ก ์ ์๋ฉ๋๋ค. ์๋์ผ๋ก ๋ง๋ค๊ฑฐ๋ /agents ๋ช
๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ์ฐ์ต์์๋ /agents ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์์ค subagent๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ์๋ดํฉ๋๋ค. Subagent๋ ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ์ฝ๋๋ฒ ์ด์ค์ ๋ํ ๊ฐ์ ์ฌํญ์ ์ ์ํฉ๋๋ค.
subagent ์ธํฐํ์ด์ค ์ด๊ธฐ
Claude Code์์ ๋ค์์ ์คํํฉ๋๋ค:
/agents
์์น ์ ํ
Library ํญ์ผ๋ก ์ ํํ๊ณ Create new agent๋ฅผ ์ ํํ ๋ค์ Personal์ ์ ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด subagent๊ฐ ~/.claude/agents/์ ์ ์ฅ๋์ด ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Claude๋ก ์์ฑ
Generate with Claude๋ฅผ ์ ํํฉ๋๋ค. ๋ฉ์์ง๊ฐ ํ์๋๋ฉด subagent๋ฅผ ์ค๋ช ํฉ๋๋ค:
A code improvement agent that scans files and suggests improvements
for readability, performance, and best practices. It should explain
each issue, show the current code, and provide an improved version.
Claude๊ฐ ์๋ณ์, ์ค๋ช ๋ฐ ์์คํ ํ๋กฌํํธ๋ฅผ ์์ฑํฉ๋๋ค.
๋๊ตฌ ์ ํ
์ฝ๊ธฐ ์ ์ฉ ๊ฒํ ์์ ๊ฒฝ์ฐ Read-only tools๋ฅผ ์ ์ธํ ๋ชจ๋ ํญ๋ชฉ์ ์ ํ ํด์ ํฉ๋๋ค. ๋ชจ๋ ๋๊ตฌ๋ฅผ ์ ํํ ์ํ๋ก ์ ์งํ๋ฉด subagent๋ ์ฃผ ๋ํ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋๊ตฌ๋ฅผ ์์ํฉ๋๋ค.
๋ชจ๋ธ ์ ํ
Subagent๊ฐ ์ฌ์ฉํ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค. ์ด ์์ ์์ด์ ํธ์ ๊ฒฝ์ฐ ์ฝ๋ ํจํด ๋ถ์์ ์ํด ๊ธฐ๋ฅ๊ณผ ์๋์ ๊ท ํ์ ๋ง์ถ๋ Sonnet์ ์ ํํฉ๋๋ค.
์์ ์ ํ
Subagent์ ๋ฐฐ๊ฒฝ์์ ์ ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด UI์์ ์ด๋ subagent๊ฐ ์คํ ์ค์ธ์ง ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ
User scope๋ฅผ ์ ํํ์ฌ subagent์ ~/.claude/agent-memory/์์ ์ง์์ ๋ฉ๋ชจ๋ฆฌ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Subagent๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฒ ์ด์ค ํจํด ๋ฐ ๋ฐ๋ณต๋๋ ๋ฌธ์ ์ ๊ฐ์ ๋ํ ๊ฐ ํต์ฐฐ๋ ฅ์ ์ถ์ ํฉ๋๋ค. Subagent๊ฐ ํ์ต์ ์ ์งํ์ง ์์ผ๋ ค๋ฉด None์ ์ ํํฉ๋๋ค.
์ ์ฅ ๋ฐ ์๋
๊ตฌ์ฑ ์์ฝ์ ๊ฒํ ํฉ๋๋ค. s ๋๋ Enter๋ฅผ ๋๋ฌ ์ ์ฅํ๊ฑฐ๋ e๋ฅผ ๋๋ฌ ํธ์ง๊ธฐ์์ ์ ์ฅ ๋ฐ ํธ์งํฉ๋๋ค. Subagent๋ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์๋ํด ๋ด
๋๋ค:
Use the code-improver agent to suggest improvements in this project
Claude๊ฐ ์ subagent์ ์์ํ๊ณ , subagent๊ฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ค์บํ์ฌ ๊ฐ์ ์ ์์ ๋ฐํํฉ๋๋ค.
์ด์ ๋จธ์ ์ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ถ์ํ๊ณ ๊ฐ์ ์ฌํญ์ ์ ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ subagent๊ฐ ์์ต๋๋ค.
Markdown ํ์ผ๋ก subagent๋ฅผ ์๋์ผ๋ก ๋ง๋ค๊ฑฐ๋, CLI ํ๋๊ทธ๋ฅผ ํตํด ์ ์ํ๊ฑฐ๋, ํ๋ฌ๊ทธ์ธ์ ํตํด ๋ฐฐํฌํ ์๋ ์์ต๋๋ค. ๋ค์ ์น์ ์์๋ ๋ชจ๋ ๊ตฌ์ฑ ์ต์ ์ ๋ค๋ฃน๋๋ค.
Subagent ๊ตฌ์ฑ
/agents ๋ช ๋ น ์ฌ์ฉ
/agents ๋ช
๋ น์ subagent๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํญ ์ธํฐํ์ด์ค๋ฅผ ์ฝ๋๋ค. Running ํญ์ ๋ผ์ด๋ธ ๋ฐ ์ต๊ทผ์ ์๋ฃ๋ subagent๋ฅผ ๋์ดํ๊ณ ์ด๊ฑฐ๋ ์ค์งํ ์ ์์ต๋๋ค. Library ํญ์ ์ฌ์ฉํ๋ฉด ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
- ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ subagent ๋ณด๊ธฐ (๋ด์ฅ, ์ฌ์ฉ์, ํ๋ก์ ํธ, ํ๋ฌ๊ทธ์ธ)
- ์๋ด๋ ์ค์ ๋๋ Claude ์์ฑ์ผ๋ก ์ subagent ๋ง๋ค๊ธฐ
- ๊ธฐ์กด subagent ๊ตฌ์ฑ ๋ฐ ๋๊ตฌ ์ก์ธ์ค ํธ์ง
- ์ฌ์ฉ์ ์ ์ subagent ์ญ์
- ์ค๋ณต์ด ์์ ๋ ํ์ฑ subagent ํ์ธ
์ด๊ฒ์ด subagent๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๊ถ์ฅ ๋ฐฉ๋ฒ์ ๋๋ค. ์๋ ์์ฑ ๋๋ ์๋ํ์ ๊ฒฝ์ฐ subagent ํ์ผ์ ์ง์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
Subagent ๋ฒ์ ์ ํ
Subagent๋ YAML frontmatter๊ฐ ์๋ Markdown ํ์ผ์ ๋๋ค. ๋ฒ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์์น์ ์ ์ฅํฉ๋๋ค. ์ฌ๋ฌ subagent๊ฐ ๊ฐ์ ์ด๋ฆ์ ๊ณต์ ํ ๋ ๋ ๋์ ์ฐ์ ์์ ์์น๊ฐ ์ฐ์ ํฉ๋๋ค.
| ์์น | ๋ฒ์ | ์ฐ์ ์์ | ๋ง๋๋ ๋ฐฉ๋ฒ |
|---|---|---|---|
| ๊ด๋ฆฌ๋๋ ์ค์ | ์กฐ์ง ์ ์ฒด | 1 (์ต๊ณ ) | ๊ด๋ฆฌ๋๋ ์ค์ ์ ํตํด ๋ฐฐํฌ |
--agents CLI ํ๋๊ทธ |
ํ์ฌ ์ธ์ | 2 | Claude Code ์์ ์ JSON ์ ๋ฌ |
.claude/agents/ |
ํ์ฌ ํ๋ก์ ํธ | 3 | ๋ํํ ๋๋ ์๋ |
~/.claude/agents/ |
๋ชจ๋ ํ๋ก์ ํธ | 4 | ๋ํํ ๋๋ ์๋ |
ํ๋ฌ๊ทธ์ธ์ agents/ ๋๋ ํ ๋ฆฌ |
ํ๋ฌ๊ทธ์ธ์ด ํ์ฑํ๋ ์์น | 5 (์ต์ ) | ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป ์ค์น |
ํ๋ก์ ํธ subagent (.claude/agents/)๋ ์ฝ๋๋ฒ ์ด์ค์ ํน์ ํ subagent์ ์ด์์ ์
๋๋ค. ๋ฒ์ ์ ์ด์ ์ฒดํฌ์ธํ์ฌ ํ์ด ํ๋ ฅํ์ฌ ์ฌ์ฉํ๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ subagent๋ ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์์ ์๋ก ์ด๋ํ์ฌ ๊ฒ์๋๋ฏ๋ก ๊ฑฐ๊ธฐ์ ์ ์ฅ์ ๋ฃจํธ๊น์ง์ ๋ชจ๋ .claude/agents/๊ฐ ์ค์บ๋ฉ๋๋ค. {/* min-version: 2.1.178 */}v2.1.178๋ถํฐ ์ด๋ฌํ ์ค์ฒฉ๋ ๋๋ ํ ๋ฆฌ ์ค ํ๋ ์ด์์ด ๋์ผํ name์ ์ ์ํ ๋ Claude Code๋ ์์
๋๋ ํ ๋ฆฌ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
--add-dir๋ก ์ถ๊ฐ๋ ๋๋ ํ ๋ฆฌ๋ ์ค์บ๋ฉ๋๋ค: ์ถ๊ฐ๋ ๋๋ ํ ๋ฆฌ ๋ด์ .claude/agents/ ํด๋๋ ํ๋ก์ ํธ subagent์ ํจ๊ป ๋ก๋๋ฉ๋๋ค. ๋ค๋ฅธ ๊ตฌ์ฑ ์ ํ์ด --add-dir์์ ๋ก๋๋๋ ๊ฒ์ ๋ํด์๋ ์ถ๊ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์. --add-dir ์์ด ํ๋ก์ ํธ ๊ฐ์ subagent๋ฅผ ๊ณต์ ํ๋ ค๋ฉด ~/.claude/agents/๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ์ subagent (~/.claude/agents/)๋ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ธ subagent์
๋๋ค.
Claude Code๋ .claude/agents/ ๋ฐ ~/.claude/agents/๋ฅผ ์ฌ๊ท์ ์ผ๋ก ์ค์บํ๋ฏ๋ก agents/review/ ๋๋ agents/research/์ ๊ฐ์ ํ์ ํด๋๋ก ์ ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ํ์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ subagent๊ฐ ์๋ณ๋๊ฑฐ๋ ํธ์ถ๋๋ ๋ฐฉ์์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. ์๋ํ๋ฉด ID๋ name frontmatter ํ๋์์๋ง ๋์ค๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ์ฒด ํธ๋ฆฌ์์ name ๊ฐ์ ๊ณ ์ ํ๊ฒ ์ ์งํฉ๋๋ค: ํ ๋ฒ์ ๋ด์ ๋ ํ์ผ์ด ๊ฐ์ ์ด๋ฆ์ ์ ์ธํ๋ฉด Claude Code๋ ๊ฒฝ๊ณ ์์ด ํ๋๋ฅผ ์ ์งํ๊ณ ๋ค๋ฅธ ํ๋๋ฅผ ๋ฒ๋ฆฝ๋๋ค.
ํ๋ฌ๊ทธ์ธ agents/ ๋๋ ํ ๋ฆฌ๋ ์ฌ๊ท์ ์ผ๋ก ์ค์บ๋ฉ๋๋ค. ํ๋ก์ ํธ ๋ฐ ์ฌ์ฉ์ ๋ฒ์์ ๋ฌ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ agents/ ๋๋ ํ ๋ฆฌ ๋ด์ ํ์ ํด๋๋ ๋ฒ์๊ฐ ์ง์ ๋ ์๋ณ์์ ์ผ๋ถ๊ฐ ๋ฉ๋๋ค: ํ๋ฌ๊ทธ์ธ my-plugin์ agents/review/security.md์ ์๋ ํ์ผ์ my-plugin:review:security๋ก ๋ฑ๋ก๋ฉ๋๋ค.
CLI ์ ์ subagent๋ Claude Code๋ฅผ ์์ํ ๋ JSON์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ํด๋น ์ธ์
์๋ง ์กด์ฌํ๋ฉฐ ๋์คํฌ์ ์ ์ฅ๋์ง ์์ผ๋ฏ๋ก ๋น ๋ฅธ ํ
์คํธ ๋๋ ์๋ํ ์คํฌ๋ฆฝํธ์ ์ ์ฉํฉ๋๋ค. ๋จ์ผ --agents ํธ์ถ์์ ์ฌ๋ฌ subagent๋ฅผ ์ ์ํ ์ ์์ต๋๋ค:
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."
}
}'
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."
}
}
'@
--agents ํ๋๊ทธ๋ ํ์ผ ๊ธฐ๋ฐ subagent์ ๋์ผํ frontmatter ํ๋๋ฅผ ๊ฐ์ง JSON์ ํ์ฉํฉ๋๋ค: description, prompt, tools, disallowedTools, model, permissionMode, mcpServers, hooks, maxTurns, skills, initialPrompt, memory, effort, background, isolation, color. ์์คํ
ํ๋กฌํํธ์๋ prompt๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด๋ ํ์ผ ๊ธฐ๋ฐ subagent์ markdown ๋ณธ๋ฌธ๊ณผ ๋๋ฑํฉ๋๋ค.
๊ด๋ฆฌ๋๋ subagent๋ ์กฐ์ง ๊ด๋ฆฌ์๊ฐ ๋ฐฐํฌํฉ๋๋ค. ๊ด๋ฆฌ๋๋ ์ค์ ๋๋ ํ ๋ฆฌ ๋ด์ .claude/agents/์ markdown ํ์ผ์ ๋ฐฐ์นํ๊ณ , ํ๋ก์ ํธ ๋ฐ ์ฌ์ฉ์ subagent์ ๋์ผํ frontmatter ํ์์ ์ฌ์ฉํฉ๋๋ค. ๊ด๋ฆฌ๋๋ ์ ์๋ ๊ฐ์ ์ด๋ฆ์ ํ๋ก์ ํธ ๋ฐ ์ฌ์ฉ์ subagent๋ณด๋ค ์ฐ์ ํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ subagent๋ ์ค์นํ ํ๋ฌ๊ทธ์ธ์์ ์ ๊ณต๋ฉ๋๋ค. /agents์์ ์ฌ์ฉ์ ์ ์ subagent์ ํจ๊ป ๋ํ๋ฉ๋๋ค. ํ๋ฌ๊ทธ์ธ subagent ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ฌ๊ทธ์ธ ์ปดํฌ๋ํธ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณด์์์ ์ด์ ๋ก ํ๋ฌ๊ทธ์ธ subagent๋ hooks, mcpServers, permissionMode frontmatter ํ๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. ์ด๋ฌํ ํ๋๋ ํ๋ฌ๊ทธ์ธ์์ ์์ด์ ํธ๋ฅผ ๋ก๋ํ ๋ ๋ฌด์๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์์ด์ ํธ ํ์ผ์ .claude/agents/ ๋๋ ~/.claude/agents/๋ก ๋ณต์ฌํฉ๋๋ค. settings.json ๋๋ settings.local.json์ permissions.allow์ ๊ท์น์ ์ถ๊ฐํ ์๋ ์์ง๋ง, ์ด๋ฌํ ๊ท์น์ ์ ์ฒด ์ธ์
์ ์ ์ฉ๋๋ฉฐ ํ๋ฌ๊ทธ์ธ subagent์๋ง ์ ์ฉ๋์ง ์์ต๋๋ค.
์ด๋ฌํ ๋ฒ์์ subagent ์ ์๋ agent teams์์๋ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค: ํ์์ ์์ฑํ ๋ subagent ์ ํ์ ์ฐธ์กฐํ ์ ์์ผ๋ฉฐ ํ์์ ํด๋น tools ๋ฐ model์ ์ฌ์ฉํ๊ณ , ์ ์์ ๋ณธ๋ฌธ์ด ํ์์ ์์คํ
ํ๋กฌํํธ์ ์ถ๊ฐ ์ง์นจ์ผ๋ก ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ frontmatter ํ๋๊ฐ ํด๋น ๊ฒฝ๋ก์ ์ ์ฉ๋๋์ง๋ agent teams๋ฅผ ์ฐธ์กฐํ์ธ์.
Subagent ํ์ผ ์์ฑ
Subagent ํ์ผ์ ๊ตฌ์ฑ์ ์ํ YAML frontmatter๋ฅผ ์ฌ์ฉํ๊ณ ๊ทธ ๋ค์ Markdown์ ์์คํ ํ๋กฌํํธ๊ฐ ์ต๋๋ค:
Subagent๋ ์ธ์
์์ ์ ๋ก๋๋ฉ๋๋ค. ๋์คํฌ์์ subagent ํ์ผ์ ์ง์ ์ถ๊ฐํ๊ฑฐ๋ ํธ์งํ๋ฉด ์ธ์
์ ๋ค์ ์์ํ์ฌ ๋ก๋ํฉ๋๋ค. /agents ์ธํฐํ์ด์ค๋ฅผ ํตํด ์์ฑ๋ subagent๋ ๋ค์ ์์ํ์ง ์๊ณ ๋ ์ฆ์ ์ ์ฉ๋ฉ๋๋ค.
---
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.
Frontmatter๋ subagent์ ๋ฉํ๋ฐ์ดํฐ์ ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค. ๋ณธ๋ฌธ์ subagent์ ๋์์ ์๋ดํ๋ ์์คํ ํ๋กฌํํธ๊ฐ ๋ฉ๋๋ค. Subagent๋ ์ด ์์คํ ํ๋กฌํํธ๋ง ๋ฐ์ต๋๋ค(์์ ๋๋ ํ ๋ฆฌ์ ๊ฐ์ ๊ธฐ๋ณธ ํ๊ฒฝ ์ธ๋ถ ์ ๋ณด ํฌํจ). ์ ์ฒด Claude Code ์์คํ ํ๋กฌํํธ๋ ๋ฐ์ง ์์ต๋๋ค.
Subagent๋ ์ฃผ ๋ํ์ ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์์ ์์ํฉ๋๋ค. Subagent ๋ด์์ cd ๋ช
๋ น์ Bash ๋๋ PowerShell ๋๊ตฌ ํธ์ถ ๊ฐ์ ์ ์ง๋์ง ์์ผ๋ฉฐ ์ฃผ ๋ํ์ ์์
๋๋ ํ ๋ฆฌ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. Subagent์ ์ ์ฅ์์ ๊ฒฉ๋ฆฌ๋ ๋ณต์ฌ๋ณธ์ ์ ๊ณตํ๋ ค๋ฉด isolation: worktree๋ฅผ ์ค์ ํฉ๋๋ค.
์ง์๋๋ frontmatter ํ๋
๋ค์ ํ๋๋ฅผ YAML frontmatter์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. name๊ณผ description๋ง ํ์์
๋๋ค.
| ํ๋ | ํ์ | ์ค๋ช |
|---|---|---|
name |
์ | ์๋ฌธ์ ๋ฐ ํ์ดํ์ ์ฌ์ฉํ ๊ณ ์ ์๋ณ์. Hooks๋ ์ด ๊ฐ์ agent_type์ผ๋ก ๋ฐ์ต๋๋ค. ํ์ผ ์ด๋ฆ์ด ์ผ์นํ ํ์๋ ์์ต๋๋ค |
description |
์ | Claude๊ฐ ์ด subagent์ ์์ํด์ผ ํ ๋ |
tools |
์๋์ค | ๋๊ตฌ subagent๊ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ตํ๋ฉด ๋ชจ๋ ๋๊ตฌ ์์. Skills๋ฅผ ์ปจํ
์คํธ์ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ค๋ฉด ์ฌ๊ธฐ์ Skill์ ๋์ดํ๋ ๋์ skills ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค |
disallowedTools |
์๋์ค | ๊ฑฐ๋ถํ ๋๊ตฌ, ์์๋๊ฑฐ๋ ์ง์ ๋ ๋ชฉ๋ก์์ ์ ๊ฑฐ๋จ |
model |
์๋์ค | ์ฌ์ฉํ ๋ชจ๋ธ: sonnet, opus, haiku, fable, ์ ์ฒด ๋ชจ๋ธ ID (์: claude-opus-4-8), ๋๋ inherit. ๊ธฐ๋ณธ๊ฐ: inherit |
permissionMode |
์๋์ค | ๊ถํ ๋ชจ๋: default, acceptEdits, auto, dontAsk, bypassPermissions, ๋๋ plan. ํ๋ฌ๊ทธ์ธ subagent์์๋ ๋ฌด์๋จ |
maxTurns |
์๋์ค | Subagent๊ฐ ์ค์ง๋๊ธฐ ์ ์ ์ต๋ ์์ด์ ํธ ํด ์ |
skills |
์๋์ค | ์์ ์ subagent์ ์ปจํ ์คํธ์ ๋ก๋ํ Skills. ์ ์ฒด skill ์ฝํ ์ธ ๊ฐ ์ฃผ์ ๋๋ฉฐ, ํธ์ถ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ง๋ ๊ฒ์ด ์๋๋๋ค. Subagent๋ ์ฌ์ ํ Skill ๋๊ตฌ๋ฅผ ํตํด ๋์ด๋์ง ์์ ํ๋ก์ ํธ, ์ฌ์ฉ์, ํ๋ฌ๊ทธ์ธ skills๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค |
mcpServers |
์๋์ค | ์ด subagent์์ ์ฌ์ฉ ๊ฐ๋ฅํ MCP servers. ๊ฐ ํญ๋ชฉ์ ์ด๋ฏธ ๊ตฌ์ฑ๋ ์๋ฒ๋ฅผ ์ฐธ์กฐํ๋ ์๋ฒ ์ด๋ฆ (์: "slack") ๋๋ ์๋ฒ ์ด๋ฆ์ ํค๋ก ํ๊ณ ์ ์ฒด MCP server config๋ฅผ ๊ฐ์ผ๋ก ํ๋ ์ธ๋ผ์ธ ์ ์์
๋๋ค. ํ๋ฌ๊ทธ์ธ subagent์์๋ ๋ฌด์๋จ |
hooks |
์๋์ค | ์ด subagent๋ก ๋ฒ์๊ฐ ์ง์ ๋ ๋ผ์ดํ์ฌ์ดํด hooks. ํ๋ฌ๊ทธ์ธ subagent์์๋ ๋ฌด์๋จ |
memory |
์๋์ค | ์ง์์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์: user, project, ๋๋ local. ๊ต์ฐจ ์ธ์
ํ์ต ํ์ฑํ |
background |
์๋์ค | ์ด subagent๋ฅผ ํญ์ background task๋ก ์คํํ๋ ค๋ฉด true๋ก ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: false |
effort |
์๋์ค | ์ด subagent๊ฐ ํ์ฑํ๋ ๋์ ๋
ธ๋ ฅ ์์ค. ์ธ์
๋
ธ๋ ฅ ์์ค์ ์ฌ์ ์ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: ์ธ์
์์ ์์. ์ต์
: low, medium, high, xhigh, max (์ฌ์ฉ ๊ฐ๋ฅํ ์์ค์ ๋ชจ๋ธ์ ๋ฐ๋ผ ๋ค๋ฆ) |
isolation |
์๋์ค | Subagent๋ฅผ ์์ git worktree์์ ์คํํ๋ ค๋ฉด worktree๋ก ์ค์ ํ์ฌ ์ ์ฅ์์ ๊ฒฉ๋ฆฌ๋ ๋ณต์ฌ๋ณธ์ ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ณธ ๋ถ๊ธฐ์์ ๋ถ๊ธฐ๋๋ฉฐ, ๋ถ๋ชจ ์ธ์
์ HEAD๊ฐ ์๋๋๋ค. Subagent๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋ค์ง ์์ผ๋ฉด worktree๊ฐ ์๋์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค |
color |
์๋์ค | ์์
๋ชฉ๋ก ๋ฐ ํธ๋์คํฌ๋ฆฝํธ์์ subagent์ ํ์ ์์์
๋๋ค. red, blue, green, yellow, purple, orange, pink, ๋๋ cyan์ ํ์ฉํฉ๋๋ค |
initialPrompt |
์๋์ค | ์ด ์์ด์ ํธ๊ฐ ์ฃผ ์ธ์
์์ด์ ํธ๋ก ์คํ๋ ๋ (--agent ๋๋ agent ์ค์ ์ ํตํด) ์ฒซ ๋ฒ์งธ ์ฌ์ฉ์ ํด์ผ๋ก ์๋ ์ ์ถ๋ฉ๋๋ค. Commands ๋ฐ Skills๊ฐ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ฌ์ฉ์ ์ ๊ณต ํ๋กฌํํธ์ ์์ ๋ถ์ต๋๋ค |
๋ชจ๋ธ ์ ํ
model ํ๋๋ subagent๊ฐ ์ฌ์ฉํ๋ AI ๋ชจ๋ธ์ ์ ์ดํฉ๋๋ค:
- ๋ชจ๋ธ ๋ณ์นญ: ์ฌ์ฉ ๊ฐ๋ฅํ ๋ณ์นญ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค:
sonnet,opus,haiku, ๋๋fable - ์ ์ฒด ๋ชจ๋ธ ID:
claude-opus-4-8๋๋claude-sonnet-4-6๊ณผ ๊ฐ์ ์ ์ฒด ๋ชจ๋ธ ID๋ฅผ ์ฌ์ฉํฉ๋๋ค.--modelํ๋๊ทธ์ ๋์ผํ ๊ฐ์ ํ์ฉํฉ๋๋ค - inherit: ์ฃผ ๋ํ์ ๋์ผํ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค
- ์๋ต๋จ: ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์
inherit์ ๋๋ค (์ฃผ ๋ํ์ ๋์ผํ ๋ชจ๋ธ ์ฌ์ฉ)
Claude๊ฐ subagent๋ฅผ ํธ์ถํ ๋ ํด๋น ํน์ ํธ์ถ์ ๋ํด model ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์๋ ์์ต๋๋ค. Claude Code๋ ๋ค์ ์์๋ก subagent์ ๋ชจ๋ธ์ ํด๊ฒฐํฉ๋๋ค:
CLAUDE_CODE_SUBAGENT_MODELํ๊ฒฝ ๋ณ์ (์ค์ ๋ ๊ฒฝ์ฐ)- ํธ์ถ๋ณ
model๋งค๊ฐ๋ณ์ - Subagent ์ ์์
modelfrontmatter - ์ฃผ ๋ํ์ ๋ชจ๋ธ
ํ๊ฒฝ ๋ณ์, ํธ์ถ๋ณ ๋งค๊ฐ๋ณ์, frontmatter ๊ฐ์ ์กฐ์ง์ availableModels ํ์ฉ ๋ชฉ๋ก์ ๋ํด ํ์ธ๋ฉ๋๋ค. ์ ์ธ๋ ๋ชจ๋ธ๋ก ํด๊ฒฐ๋๋ ๊ฐ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ subagent๋ ์์๋ ๋ชจ๋ธ์์ ๋์ ์คํ๋ฉ๋๋ค.
Subagent ๊ธฐ๋ฅ ์ ์ด
๋๊ตฌ ์ก์ธ์ค, ๊ถํ ๋ชจ๋ ๋ฐ ์กฐ๊ฑด๋ถ ๊ท์น์ ํตํด subagent๊ฐ ํ ์ ์๋ ์์ ์ ์ ์ดํ ์ ์์ต๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ
Subagent๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ ๋ํ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ด๋ถ ๋๊ตฌ ๋ฐ MCP ๋๊ตฌ๋ฅผ ์์ํฉ๋๋ค. ๋ค์ ๋๊ตฌ๋ ์ฃผ ๋ํ์ UI ๋๋ ์ธ์
์ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ tools ํ๋์ ๋์ด๋์ด ์์ด๋ subagent์์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
AskUserQuestionEnterPlanModeExitPlanMode(subagent์permissionMode๊ฐplan์ธ ๊ฒฝ์ฐ ์ ์ธ)ScheduleWakeupWaitForMcpServers
๋๊ตฌ๋ฅผ ์ ํํ๋ ค๋ฉด tools ํ๋ (ํ์ฉ ๋ชฉ๋ก) ๋๋ disallowedTools ํ๋ (๊ฑฐ๋ถ ๋ชฉ๋ก)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์์ ๋ tools๋ฅผ ์ฌ์ฉํ์ฌ Read, Grep, Glob, Bash๋ง ํ์ฉํฉ๋๋ค. Subagent๋ ํ์ผ์ ํธ์งํ๊ฑฐ๋ ์ธ ์ ์์ผ๋ฉฐ MCP ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
---
name: safe-researcher
description: Research agent with restricted capabilities
tools: Read, Grep, Glob, Bash
---
์ด ์์ ๋ disallowedTools๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ ๋ํ์์ ์์๋ ๋ชจ๋ ๋๊ตฌ๋ฅผ ์์ํ์ง๋ง Write ๋ฐ Edit์ ์ ์ธํฉ๋๋ค. Subagent๋ Bash, MCP ๋๊ตฌ ๋ฐ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ ์งํฉ๋๋ค:
---
name: no-writes
description: Inherits every tool except file writes
disallowedTools: Write, Edit
---
๋ ๋ค ์ค์ ๋๋ฉด disallowedTools๊ฐ ๋จผ์ ์ ์ฉ๋๊ณ tools๊ฐ ๋จ์ ํ์ ๋ํด ํด๊ฒฐ๋ฉ๋๋ค. ๋ ๋ค์ ๋์ด๋ ๋๊ตฌ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
๋ ํ๋ ๋ชจ๋ ์ ํํ ๋๊ตฌ ์ด๋ฆ ์ธ์๋ MCP ์๋ฒ ์์ค ํจํด์ ํ์ฉํฉ๋๋ค: mcp__<server> ๋๋ mcp__<server>__*๋ ๋ช
๋ช
๋ ์๋ฒ์ ๋ชจ๋ ๋๊ตฌ๋ฅผ ๋ถ์ฌํ๊ฑฐ๋ ์ ๊ฑฐํฉ๋๋ค. disallowedTools์์ mcp__*๋ ๋ชจ๋ ์๋ฒ์ ๋ชจ๋ MCP ๋๊ตฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ด ์์ ๋ github MCP ์๋ฒ์ ๋ชจ๋ ๋๊ตฌ๋ฅผ ์ ๊ฑฐํ๋ฉด์ ๋ค๋ฅธ ์๋ฒ์ ๋๊ตฌ์ ๋ชจ๋ ๋ด์ฅ ๋๊ตฌ๋ฅผ ์ ์งํฉ๋๋ค:
---
name: local-only
description: Inherits every tool except those from the github MCP server
disallowedTools: mcp__github
---
์์ฑํ ์ ์๋ subagent ์ ํ
์์ด์ ํธ๊ฐ claude --agent๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ ์ค๋ ๋๋ก ์คํ๋ ๋ Agent ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ subagent๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์์ฑํ ์ ์๋ subagent ์ ํ์ ์ ํํ๋ ค๋ฉด tools ํ๋์์ Agent(agent_type) ๊ตฌ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค.
๋ฒ์ 2.1.63์์ Task ๋๊ตฌ์ ์ด๋ฆ์ด Agent๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ค์ ๋ฐ ์์ด์ ํธ ์ ์์ ๊ธฐ์กด Task(...) ์ฐธ์กฐ๋ ์ฌ์ ํ ๋ณ์นญ์ผ๋ก ์๋ํฉ๋๋ค.
---
name: coordinator
description: Coordinates work across specialized agents
tools: Agent(worker, researcher), Read, Bash
---
์ด๊ฒ์ ํ์ฉ ๋ชฉ๋ก์
๋๋ค: worker ๋ฐ researcher subagent๋ง ์์ฑํ ์ ์์ต๋๋ค. ์์ด์ ํธ๊ฐ ๋ค๋ฅธ ์ ํ์ ์์ฑํ๋ ค๊ณ ํ๋ฉด ์์ฒญ์ด ์คํจํ๊ณ ์์ด์ ํธ๋ ํ๋กฌํํธ์์ ํ์ฉ๋ ์ ํ๋ง ๋ด
๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์์ด์ ํธ๋ฅผ ํ์ฉํ๋ฉด์ ํน์ ์์ด์ ํธ๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด permissions.deny๋ฅผ ๋์ ์ฌ์ฉํฉ๋๋ค.
์ ํ ์์ด ๋ชจ๋ subagent๋ฅผ ์์ฑํ ์ ์๋๋ก ํ์ฉํ๋ ค๋ฉด ๊ดํธ ์์ด Agent๋ฅผ ์ฌ์ฉํฉ๋๋ค:
tools: Agent, Read, Bash
Agent๊ฐ tools ๋ชฉ๋ก์์ ์์ ํ ์๋ต๋๋ฉด ์์ด์ ํธ๋ subagent๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
Agent(agent_type) ํ์ฉ ๋ชฉ๋ก ๊ตฌ๋ฌธ์ claude --agent๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ ์ค๋ ๋๋ก ์คํ๋๋ ์์ด์ ํธ์๋ง ์ ์ฉ๋ฉ๋๋ค. Subagent ์ ์์์ tools์ Agent๋ฅผ ๋์ดํ๋ฉด ํด๋น subagent๊ฐ ์ค์ฒฉ๋ subagent๋ฅผ ์์ฑํ ์ ์์ง๋ง ๊ดํธ ๋ด์ ๋ชจ๋ ์ ํ ๋ชฉ๋ก์ ๋ฌด์๋ฉ๋๋ค.
Subagent์ MCP ์๋ฒ ๋ฒ์ ์ง์
mcpServers ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ ๋ํ์์ ์ฌ์ฉํ ์ ์๋ MCP ์๋ฒ์ subagent ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ์๋ ์ธ๋ผ์ธ ์๋ฒ๋ subagent๊ฐ ์์๋ ๋ ์ฐ๊ฒฐ๋๊ณ ์๋ฃ๋ ๋ ์ฐ๊ฒฐ์ด ๋๊น๋๋ค. ๋ฌธ์์ด ์ฐธ์กฐ๋ ๋ถ๋ชจ ์ธ์
์ ์ฐ๊ฒฐ์ ๊ณต์ ํฉ๋๋ค.
mcpServers ํ๋๋ ์์ด์ ํธ ํ์ผ์ด ์คํ๋ ์ ์๋ ๋ ๊ฐ์ง ์ปจํ
์คํธ์ ์ ์ฉ๋ฉ๋๋ค:
- Agent ๋๊ตฌ ๋๋ @-mention์ ํตํด ์์ฑ๋ subagent
--agent๋๋agent์ค์ ์ผ๋ก ์์๋ ์ฃผ ์ธ์
์์ด์ ํธ๊ฐ ์ฃผ ์ธ์
์ผ ๋ ์ธ๋ผ์ธ ์๋ฒ ์ ์๋ .mcp.json ๋ฐ ์ค์ ํ์ผ์ ์๋ฒ์ ํจ๊ป ์์ ์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
๋ชฉ๋ก์ ๊ฐ ํญ๋ชฉ์ ์ธ๋ผ์ธ ์๋ฒ ์ ์ ๋๋ ์ธ์ ์์ ์ด๋ฏธ ๊ตฌ์ฑ๋ MCP ์๋ฒ๋ฅผ ์ฐธ์กฐํ๋ ๋ฌธ์์ด์ ๋๋ค:
---
name: browser-tester
description: Tests features in a real browser using Playwright
mcpServers:
# Inline definition: scoped to this subagent only
- playwright:
type: stdio
command: npx
args: ["-y", "@playwright/mcp@latest"]
# Reference by name: reuses an already-configured server
- github
---
Use the Playwright tools to navigate, screenshot, and interact with pages.
์ธ๋ผ์ธ ์ ์๋ .mcp.json ์๋ฒ ํญ๋ชฉ (stdio, http, sse, ws)๊ณผ ๋์ผํ ์คํค๋ง๋ฅผ ์ฌ์ฉํ๋ฉฐ ์๋ฒ ์ด๋ฆ์ผ๋ก ํค๊ฐ ์ง์ ๋ฉ๋๋ค.
MCP ์๋ฒ๋ฅผ ์ฃผ ๋ํ์์ ์์ ํ ๋ถ๋ฆฌํ๊ณ ๋๊ตฌ ์ค๋ช
์ด ์ปจํ
์คํธ๋ฅผ ์๋นํ์ง ์๋๋ก ํ๋ ค๋ฉด .mcp.json์ด ์๋ ์ฌ๊ธฐ์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ํฉ๋๋ค. Subagent๋ ๋๊ตฌ๋ฅผ ์ป๊ณ ๋ถ๋ชจ ๋ํ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
v2.1.153๋ถํฐ ์ฃผ ์ธ์ ์ ์ ์ฉ๋๋ MCP ์ ํ์ subagent frontmatter์์ ์ ์ธ๋ ์๋ฒ๋ ํฌํจํฉ๋๋ค:
--strict-mcp-config๋ฐ--bare- Enterprise ๊ด๋ฆฌ MCP ๊ตฌ์ฑ
allowedMcpServers๋ฐdeniedMcpServers์ ์ฑ
์ด ์ค ํ๋๊ฐ ์๋ฒ๋ฅผ ์ฐจ๋จํ๋ฉด Claude Code๋ ์ด๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ฐจ๋จ๋ ์๋ฒ์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
๊ด๋ฆฌ๋๋ ์ค์ ์ ํ์ ์ ์ ๋ฐฉ์์ ๊ด๊ณ์์ด ๋ชจ๋ subagent์ ์ ์ฉ๋ฉ๋๋ค. --strict-mcp-config๋ --agents ๋๋ SDK agents ์ต์
์ ํตํด ์ธ๋ผ์ธ์ผ๋ก ์ ๋ฌํ๋ ์๋ฒ๋ฅผ ํํฐ๋งํ์ง ์์ต๋๋ค. ์ด๋ ๋ช
์์ ํธ์ถ์ ์
๋ ฅ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ถํ ๋ชจ๋
permissionMode ํ๋๋ subagent๊ฐ ๊ถํ ํ๋กฌํํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ ์ดํฉ๋๋ค. Subagent๋ ์ฃผ ๋ํ์ ๊ถํ ์ปจํ
์คํธ๋ฅผ ์์ํ๊ณ ๋ชจ๋๋ฅผ ์ฌ์ ์ํ ์ ์์ต๋๋ค. ๋จ, ์๋์ ์ค๋ช
๋ ๋๋ก ๋ถ๋ชจ ๋ชจ๋๊ฐ ์ฐ์ ํ๋ ๊ฒฝ์ฐ๋ ์ ์ธ์
๋๋ค.
| ๋ชจ๋ | ๋์ |
|---|---|
default |
ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ ํ์ค ๊ถํ ํ์ธ |
acceptEdits |
ํ์ผ ํธ์ง ๋ฐ ์์
๋๋ ํ ๋ฆฌ ๋๋ additionalDirectories์ ๊ฒฝ๋ก์ ๋ํ ์ผ๋ฐ์ ์ธ ํ์ผ์์คํ
๋ช
๋ น ์๋ ์๋ฝ |
auto |
Auto mode: ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ถ๋ฅ๊ธฐ๊ฐ ๋ช ๋ น์ ๊ฒํ ํ๊ณ ๋ณดํธ๋ ๋๋ ํ ๋ฆฌ ์ฐ๊ธฐ |
dontAsk |
๊ถํ ํ๋กฌํํธ ์๋ ๊ฑฐ๋ถ (๋ช ์์ ์ผ๋ก ํ์ฉ๋ ๋๊ตฌ๋ ์ฌ์ ํ ์๋) |
bypassPermissions |
๊ถํ ํ๋กฌํํธ ๊ฑด๋๋ฐ๊ธฐ |
plan |
Plan mode (์ฝ๊ธฐ ์ ์ฉ ํ์) |
bypassPermissions๋ ์ฃผ์ํด์ ์ฌ์ฉํ์ธ์. ๊ถํ ํ๋กฌํํธ๋ฅผ ๊ฑด๋๋ฐ์ด subagent๊ฐ ์น์ธ ์์ด ์์
์ ์คํํ ์ ์์ต๋๋ค. .git, .config/git, .claude, .vscode, .idea, .husky, .cargo, .devcontainer, .yarn, .mvn์ ๋ํ ์ฐ๊ธฐ๋ฅผ ํฌํจํ์ฌ ์์
์ ์คํํ ์ ์์ต๋๋ค. ๋ช
์์ ask ๊ท์น ๋ฐ ๋ฃจํธ ๋ฐ ํ ๋๋ ํ ๋ฆฌ ์ ๊ฑฐ (์: rm -rf /)๋ ์ฌ์ ํ ํ๋กฌํํธํฉ๋๋ค. ๊ถํ ๋ชจ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ถ๋ชจ๊ฐ bypassPermissions ๋๋ acceptEdits๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๊ฒ์ด ์ฐ์ ํ๋ฉฐ ์ฌ์ ์ํ ์ ์์ต๋๋ค. ๋ถ๋ชจ๊ฐ auto mode๋ฅผ ์ฌ์ฉํ๋ฉด subagent๋ auto mode๋ฅผ ์์ํ๊ณ frontmatter์ ๋ชจ๋ permissionMode๋ ๋ฌด์๋ฉ๋๋ค: ๋ถ๋ฅ๊ธฐ๋ ๋ถ๋ชจ ์ธ์
๊ณผ ๋์ผํ ์ฐจ๋จ ๋ฐ ํ์ฉ ๊ท์น์ผ๋ก subagent์ ๋๊ตฌ ํธ์ถ์ ํ๊ฐํฉ๋๋ค.
Subagent์ skills ๋ฏธ๋ฆฌ ๋ก๋
skills ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ subagent์ ์ปจํ
์คํธ์ skill ์ฝํ
์ธ ๋ฅผ ์ฃผ์
ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์คํ ์ค์ skill์ ๊ฒ์ํ๊ณ ๋ก๋ํ๋๋ก ์๊ตฌํ์ง ์๊ณ subagent์ ๋๋ฉ์ธ ์ง์์ ์ ๊ณตํฉ๋๋ค.
---
name: api-developer
description: Implement API endpoints following team conventions
skills:
- api-conventions
- error-handling-patterns
---
Implement API endpoints. Follow the conventions and patterns from the preloaded skills.
๊ฐ skill์ ์ ์ฒด ์ฝํ
์ธ ๊ฐ subagent์ ์ปจํ
์คํธ์ ์ฃผ์
๋ฉ๋๋ค. ์ด ํ๋๋ ์ด๋ค skills๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ ์ง ์ ์ดํ๋ฉฐ, subagent๊ฐ ์ก์ธ์คํ ์ ์๋ skills๋ฅผ ์ ์ดํ์ง ์์ต๋๋ค: ์ด ํ๋๊ฐ ์์ผ๋ฉด subagent๋ ์ฌ์ ํ ์คํ ์ค์ Skill ๋๊ตฌ๋ฅผ ํตํด ํ๋ก์ ํธ, ์ฌ์ฉ์, ํ๋ฌ๊ทธ์ธ skills๋ฅผ ๊ฒ์ํ๊ณ ํธ์ถํ ์ ์์ต๋๋ค. Subagent๊ฐ skills๋ฅผ ์์ ํ ํธ์ถํ์ง ๋ชปํ๋๋ก ๋ฐฉ์งํ๋ ค๋ฉด tools ๋ชฉ๋ก์์ Skill์ ์๋ตํ๊ฑฐ๋ disallowedTools์ ์ถ๊ฐํฉ๋๋ค.
disable-model-invocation: true๋ฅผ ์ค์ ํ๋ skills๋ ๋ฏธ๋ฆฌ ๋ก๋ํ ์ ์์ต๋๋ค. ๋ฏธ๋ฆฌ ๋ก๋๋ Claude๊ฐ ํธ์ถํ ์ ์๋ ๋์ผํ skills ์ธํธ์์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์
๋๋ค. ๋์ด๋ skill์ด ๋๋ฝ๋์๊ฑฐ๋ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ Claude Code๋ ์ด๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
์ด๊ฒ์ subagent์์ skill ์คํ์ ์ญ์
๋๋ค. Subagent์ skills๋ฅผ ์ฌ์ฉํ๋ฉด subagent๊ฐ ์์คํ
ํ๋กฌํํธ๋ฅผ ์ ์ดํ๊ณ skill ์ฝํ
์ธ ๋ฅผ ๋ก๋ํฉ๋๋ค. Skill์ context: fork๋ฅผ ์ฌ์ฉํ๋ฉด skill ์ฝํ
์ธ ๊ฐ ์ง์ ํ ์์ด์ ํธ์ ์ฃผ์
๋ฉ๋๋ค. ๋ ๋ค ๋์ผํ ๊ธฐ๋ณธ ์์คํ
์ ์ฌ์ฉํฉ๋๋ค.
์ง์์ ๋ฉ๋ชจ๋ฆฌ ํ์ฑํ
memory ํ๋๋ subagent์ ๋ํ ๊ฐ์ ์ ์ง๋๋ ์ง์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. Subagent๋ ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฒ ์ด์ค ํจํด, ๋๋ฒ๊น
ํต์ฐฐ๋ ฅ, ์ํคํ
์ฒ ๊ฒฐ์ ๊ณผ ๊ฐ์ ์ง์์ ์๊ฐ์ ๋ฐ๋ผ ๊ตฌ์ถํฉ๋๋ค.
---
name: code-reviewer
description: Reviews code for quality and best practices
memory: user
---
You are a code reviewer. As you review code, update your agent memory with
patterns, conventions, and recurring issues you discover.
๋ฉ๋ชจ๋ฆฌ๊ฐ ์ผ๋ง๋ ๊ด๋ฒ์ํ๊ฒ ์ ์ฉ๋์ด์ผ ํ๋์ง์ ๋ฐ๋ผ ๋ฒ์๋ฅผ ์ ํํฉ๋๋ค:
| ๋ฒ์ | ์์น | ์ฌ์ฉ ์๊ธฐ |
|---|---|---|
user |
~/.claude/agent-memory/<name-of-agent>/ |
Subagent๊ฐ ๋ชจ๋ ํ๋ก์ ํธ ๊ฐ ํ์ต์ ๊ธฐ์ตํด์ผ ํ ๋ |
project |
.claude/agent-memory/<name-of-agent>/ |
Subagent์ ์ง์์ด ํ๋ก์ ํธ๋ณ์ด๊ณ ๋ฒ์ ์ ์ด๋ฅผ ํตํด ๊ณต์ ๊ฐ๋ฅํ ๋ |
local |
.claude/agent-memory-local/<name-of-agent>/ |
Subagent์ ์ง์์ด ํ๋ก์ ํธ๋ณ์ด์ง๋ง ๋ฒ์ ์ ์ด์ ์ฒดํฌ์ธ๋์ง ์์์ผ ํ ๋ |
๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ฑํ๋๋ฉด:
- Subagent์ ์์คํ ํ๋กฌํํธ์๋ ๋ฉ๋ชจ๋ฆฌ ๋๋ ํ ๋ฆฌ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ง์นจ์ด ํฌํจ๋ฉ๋๋ค.
- Subagent์ ์์คํ
ํ๋กฌํํธ์๋ ๋ฉ๋ชจ๋ฆฌ ๋๋ ํ ๋ฆฌ์
MEMORY.md์ ์ฒ์ 200์ค ๋๋ 25KB (๋ ์ค ๋จผ์ ๋๋ฌํ๋ ๊ฒ)๊ฐ ํฌํจ๋๋ฉฐ, ํด๋น ํ๊ณ๋ฅผ ์ด๊ณผํ๋ฉดMEMORY.md๋ฅผ ํ๋ ์ด์ ํ๋๋ก ์ง์นจ์ด ํฌํจ๋ฉ๋๋ค. - Read, Write, Edit ๋๊ตฌ๊ฐ ์๋์ผ๋ก ํ์ฑํ๋์ด subagent๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ์ผ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ง์์ ๋ฉ๋ชจ๋ฆฌ ํ
-
project๋ ๊ถ์ฅ๋๋ ๊ธฐ๋ณธ ๋ฒ์์ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฒ์ ์ ์ด๋ฅผ ํตํด ๊ณต์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค. Subagent์ ์ง์์ด ๋ชจ๋ ํ๋ก์ ํธ์ ๊ด๋ฒ์ํ๊ฒ ์ ์ฉ๋ ๋user๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์ง์์ด ๋ฒ์ ์ ์ด์ ์ฒดํฌ์ธ๋์ง ์์์ผ ํ ๋local์ ์ฌ์ฉํฉ๋๋ค. -
Subagent์ ์์ ์ ์์ํ๊ธฐ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ธํ๋๋ก ์์ฒญํฉ๋๋ค: "Review this PR, and check your memory for patterns you've seen before."
-
Subagent์ ์์ ์ ์๋ฃํ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ๋๋ก ์์ฒญํฉ๋๋ค: "Now that you're done, save what you learned to your memory." ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ด๋ ๊ฒ ํ๋ฉด subagent๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ๋ง๋๋ ์ง์ ๊ธฐ๋ฐ์ด ๊ตฌ์ถ๋ฉ๋๋ค.
-
Subagent๊ฐ ์์ ์ ์ง์ ๊ธฐ๋ฐ์ ์ ๊ทน์ ์ผ๋ก ์ ์งํ๋๋ก ๋ฉ๋ชจ๋ฆฌ ์ง์นจ์ subagent์ markdown ํ์ผ์ ์ง์ ํฌํจํฉ๋๋ค:
Update your agent memory as you discover codepaths, patterns, library locations, and key architectural decisions. This builds up institutional knowledge across conversations. Write concise notes about what you found and where.
Hook์ ์ฌ์ฉํ ์กฐ๊ฑด๋ถ ๊ท์น
๋๊ตฌ ์ฌ์ฉ์ ๋ ๋์ ์ผ๋ก ์ ์ดํ๋ ค๋ฉด PreToolUse hook์ ์ฌ์ฉํ์ฌ ์คํ ์ ์ ์์
์ ๊ฒ์ฆํฉ๋๋ค. ๋๊ตฌ์ ์ผ๋ถ ์์
์ ํ์ฉํ๋ฉด์ ๋ค๋ฅธ ์์
์ ์ฐจ๋จํด์ผ ํ ๋ ์ ์ฉํฉ๋๋ค.
์ด ์์ ๋ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ง ํ์ฉํ๋ subagent๋ฅผ ๋ง๋ญ๋๋ค. PreToolUse hook์ ๊ฐ Bash ๋ช
๋ น์ด ์คํ๋๊ธฐ ์ ์ command์ ์ง์ ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค:
---
name: db-reader
description: Execute read-only database queries
tools: Bash
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/validate-readonly-query.sh"
---
Claude Code๋ hook ์ ๋ ฅ์ JSON์ผ๋ก stdin์ ํตํด hook ๋ช ๋ น์ ์ ๋ฌํฉ๋๋ค. ๊ฒ์ฆ ์คํฌ๋ฆฝํธ๋ ์ด JSON์ ์ฝ๊ณ Bash ๋ช ๋ น์ ์ถ์ถํ๋ฉฐ ์ฐ๊ธฐ ์์ ์ ์ฐจ๋จํ๊ธฐ ์ํด ์ข ๋ฃ ์ฝ๋ 2๋ก ์ข ๋ฃํฉ๋๋ค:
#!/bin/bash
# ./scripts/validate-readonly-query.sh
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
# Block SQL write operations (case-insensitive)
if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE)\b' > /dev/null; then
echo "Blocked: Only SELECT queries are allowed" >&2
exit 2
fi
exit 0
์ ์ฒด ์
๋ ฅ ์คํค๋ง๋ Hook input์ ์ฐธ์กฐํ๊ณ ์ข
๋ฃ ์ฝ๋๊ฐ ๋์์ ๋ฏธ์น๋ ์ํฅ์ exit codes๋ฅผ ์ฐธ์กฐํ์ธ์. Windows์์๋ PowerShell๋ก hook ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ PowerShell์์ hook ์คํ์ ํ์๋ ๋๋ก hook ํญ๋ชฉ์ shell: powershell์ ์ถ๊ฐํฉ๋๋ค.
ํน์ subagent ๋นํ์ฑํ
์ค์ ์ deny ๋ฐฐ์ด์ ์ถ๊ฐํ์ฌ Claude๊ฐ ํน์ subagent๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ํ ์ ์์ต๋๋ค. Agent(subagent-name) ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์ subagent-name์ subagent์ name ํ๋์ ์ผ์นํฉ๋๋ค.
{
"permissions": {
"deny": ["Agent(Explore)", "Agent(my-custom-agent)"]
}
}
์ด๊ฒ์ ๋ด์ฅ ๋ฐ ์ฌ์ฉ์ ์ ์ subagent ๋ชจ๋์ ์๋ํฉ๋๋ค. --disallowedTools CLI ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค:
claude --disallowedTools "Agent(Explore)"
๊ถํ ๊ท์น์ ๋ํ ์์ธํ ๋ด์ฉ์ Permissions ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Subagent์ ๋ํ hook ์ ์
Subagent๋ subagent์ ๋ผ์ดํ์ฌ์ดํด ์ค์ ์คํ๋๋ hooks๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. Hook์ ๊ตฌ์ฑํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค:
- Subagent์ frontmatter์์: ํด๋น subagent๊ฐ ํ์ฑํ๋ ๋์๋ง ์คํ๋๋ hook ์ ์
settings.json์์: Subagent๊ฐ ์์๋๊ฑฐ๋ ์ค์ง๋ ๋ ์ฃผ ์ธ์ ์์ ์คํ๋๋ hook ์ ์
Subagent frontmatter์ hook
Subagent์ markdown ํ์ผ์ ์ง์ hook์ ์ ์ํฉ๋๋ค. ์ด๋ฌํ hook์ ํด๋น ํน์ subagent๊ฐ ํ์ฑํ๋ ๋์๋ง ์คํ๋๊ณ ์๋ฃ๋ ๋ ์ ๋ฆฌ๋ฉ๋๋ค.
Frontmatter hook์ ์์ด์ ํธ๊ฐ Agent ๋๊ตฌ ๋๋ @-mention์ ํตํด subagent๋ก ์์ฑ๋ ๋ ๋ฐ์ํฉ๋๋ค. --agent ๋๋ agent ์ค์ ์ ํตํด ์ฃผ ์ธ์
์ผ๋ก ์คํ๋ ๋๋ ๋ฐ์ํฉ๋๋ค. ์ฃผ ์ธ์
์ ๊ฒฝ์ฐ settings.json์์ ์ ์๋ ๋ชจ๋ hook๊ณผ ํจ๊ป ์คํ๋ฉ๋๋ค.
๋ชจ๋ hook ์ด๋ฒคํธ๊ฐ ์ง์๋ฉ๋๋ค. Subagent์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ด๋ฒคํธ๋:
| ์ด๋ฒคํธ | Matcher ์ ๋ ฅ | ์คํ ์๊ธฐ |
|---|---|---|
PreToolUse |
๋๊ตฌ ์ด๋ฆ | Subagent๊ฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ |
PostToolUse |
๋๊ตฌ ์ด๋ฆ | Subagent๊ฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ํ |
Stop |
(์์) | Subagent๊ฐ ์๋ฃ๋ ๋ (๋ฐํ์์ SubagentStop์ผ๋ก ๋ณํ๋จ) |
์ด ์์ ๋ PreToolUse hook์ผ๋ก Bash ๋ช
๋ น์ ๊ฒ์ฆํ๊ณ PostToolUse๋ก ํ์ผ ํธ์ง ํ linter๋ฅผ ์คํํฉ๋๋ค:
---
name: code-reviewer
description: Review code changes with automatic linting
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/validate-command.sh $TOOL_INPUT"
PostToolUse:
- matcher: "Edit|Write"
hooks:
- type: command
command: "./scripts/run-linter.sh"
---
Frontmatter์ Stop hook์ ์๋์ผ๋ก SubagentStop ์ด๋ฒคํธ๋ก ๋ณํ๋ฉ๋๋ค.
Subagent ์ด๋ฒคํธ์ ๋ํ ํ๋ก์ ํธ ์์ค hook
์ฃผ ์ธ์
์์ subagent ๋ผ์ดํ์ฌ์ดํด ์ด๋ฒคํธ์ ์๋ตํ๋ settings.json์์ hook์ ๊ตฌ์ฑํฉ๋๋ค.
| ์ด๋ฒคํธ | Matcher ์ ๋ ฅ | ์คํ ์๊ธฐ |
|---|---|---|
SubagentStart |
์์ด์ ํธ ์ ํ ์ด๋ฆ | Subagent๊ฐ ์คํ์ ์์ํ ๋ |
SubagentStop |
์์ด์ ํธ ์ ํ ์ด๋ฆ | Subagent๊ฐ ์๋ฃ๋ ๋ |
๋ ์ด๋ฒคํธ ๋ชจ๋ ์ด๋ฆ๋ณ๋ก ํน์ ์์ด์ ํธ ์ ํ์ ๋์์ผ๋ก ํ๋ matcher๋ฅผ ์ง์ํฉ๋๋ค. ์ด ์์ ๋ db-agent subagent๊ฐ ์์๋ ๋๋ง ์ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ๋ชจ๋ subagent๊ฐ ์ค์ง๋ ๋ ์ ๋ฆฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค:
{
"hooks": {
"SubagentStart": [
{
"matcher": "db-agent",
"hooks": [
{ "type": "command", "command": "./scripts/setup-db-connection.sh" }
]
}
],
"SubagentStop": [
{
"hooks": [
{ "type": "command", "command": "./scripts/cleanup-db-connection.sh" }
]
}
]
}
}
์ ์ฒด hook ๊ตฌ์ฑ ํ์์ Hooks๋ฅผ ์ฐธ์กฐํ์ธ์.
Subagent ์์
์๋ ์์ ์ดํด
Claude๋ ์์ฒญ์ ์์
์ค๋ช
, subagent ๊ตฌ์ฑ์ description ํ๋, ํ์ฌ ์ปจํ
์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋์ผ๋ก ์์
์ ์์ํฉ๋๋ค. ์ ๊ทน์ ์ธ ์์์ ์ฅ๋ คํ๋ ค๋ฉด subagent์ description ํ๋์ "use proactively"์ ๊ฐ์ ๊ตฌ๋ฌธ์ ํฌํจํฉ๋๋ค.
Subagent๋ฅผ ๋ช ์์ ์ผ๋ก ํธ์ถ
์๋ ์์์ด ์ถฉ๋ถํ์ง ์์ ๋ subagent๋ฅผ ์ง์ ์์ฒญํ ์ ์์ต๋๋ค. ์ผํ์ฑ ์ ์์์ ์ธ์ ์ ์ฒด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํ๋๋๋ ์ธ ๊ฐ์ง ํจํด์ด ์์ต๋๋ค:
- ์์ฐ์ด: ํ๋กฌํํธ์์ subagent ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. Claude๊ฐ ์์ํ ์ง ๊ฒฐ์ ํฉ๋๋ค
- @-mention: ํ ์์ ์ ๋ํด subagent๊ฐ ์คํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค
- ์ธ์
์ ์ฒด: ์ ์ฒด ์ธ์
์ด
--agentํ๋๊ทธ ๋๋agent์ค์ ์ ํตํด ํด๋น subagent์ ์์คํ ํ๋กฌํํธ, ๋๊ตฌ ์ ํ ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค
์์ฐ์ด์ ๊ฒฝ์ฐ ํน๋ณํ ๊ตฌ๋ฌธ์ด ์์ต๋๋ค. Subagent ์ด๋ฆ์ ์ง์ ํ๋ฉด Claude๋ ์ผ๋ฐ์ ์ผ๋ก ์์ํฉ๋๋ค:
Use the test-runner subagent to fix failing tests
Have the code-reviewer subagent look at my recent changes
Subagent๋ฅผ @-mentionํฉ๋๋ค. @๋ฅผ ์
๋ ฅํ๊ณ ํ์ผ์ @-mentionํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก typeahead์์ subagent๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Claude๊ฐ ์ ํํ๋๋ก ํ๋ ๋์ ํน์ subagent๊ฐ ์คํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค:
@"code-reviewer (agent)" look at the auth changes
์ ์ฒด ๋ฉ์์ง๋ ์ฌ์ ํ Claude๋ก ์ด๋ํ๋ฉฐ, Claude๋ ์์ฒญํ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก subagent์ ์์ ํ๋กฌํํธ๋ฅผ ์์ฑํฉ๋๋ค. @-mention์ Claude๊ฐ ํธ์ถํ๋ subagent๋ฅผ ์ ์ดํ๋ฉฐ, ๋ฐ๋ ํ๋กฌํํธ๋ ์ ์ดํ์ง ์์ต๋๋ค.
ํ์ฑํ๋ ํ๋ฌ๊ทธ์ธ์์ ์ ๊ณตํ๋ Subagent๋ typeahead์ my-plugin:code-reviewer ๋๋ ํ๋ฌ๊ทธ์ธ์ด agents๋ฅผ ํ์ ํด๋๋ก ๊ตฌ์ฑํ ๋ my-plugin:review:security์ ๊ฐ์ ๋ฒ์๊ฐ ์ง์ ๋ ์ด๋ฆ์ผ๋ก ๋ํ๋ฉ๋๋ค. ์ธ์
์์ ํ์ฌ ์คํ ์ค์ธ ๋ช
๋ช
๋ background subagent๋ typeahead์ ๋ํ๋๋ฉฐ ์ด๋ฆ ์์ ์ํ๋ฅผ ํ์ํฉ๋๋ค. ์ ํ๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์๋์ผ๋ก mention์ ์
๋ ฅํ ์๋ ์์ต๋๋ค: ๋ก์ปฌ subagent์ ๊ฒฝ์ฐ @agent-<name>, ํ๋ฌ๊ทธ์ธ subagent์ ๊ฒฝ์ฐ ๋ฒ์๊ฐ ์ง์ ๋ ์ด๋ฆ ๋ค์ @agent-๋ฅผ ์
๋ ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด @agent-my-plugin:code-reviewer์
๋๋ค.
์ ์ฒด ์ธ์
์ subagent๋ก ์คํํฉ๋๋ค. --agent <name>์ ์ ๋ฌํ์ฌ ์ฃผ ์ค๋ ๋ ์์ฒด๊ฐ ํด๋น subagent์ ์์คํ
ํ๋กฌํํธ, ๋๊ตฌ ์ ํ ๋ฐ ๋ชจ๋ธ์ ์ทจํ๋ ์ธ์
์ ์์ํฉ๋๋ค:
claude --agent code-reviewer
Subagent์ ์์คํ
ํ๋กฌํํธ๋ --system-prompt์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ธฐ๋ณธ Claude Code ์์คํ
ํ๋กฌํํธ๋ฅผ ์์ ํ ๋์ฒดํฉ๋๋ค. CLAUDE.md ํ์ผ ๋ฐ ํ๋ก์ ํธ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ์ ํ ์ผ๋ฐ์ ์ธ ๋ฉ์์ง ํ๋ฆ์ ํตํด ๋ก๋๋ฉ๋๋ค. ์์ด์ ํธ ์ด๋ฆ์ ์์ ํค๋์ @<name>์ผ๋ก ๋ํ๋๋ฏ๋ก ํ์ฑํ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ด์ฅ ๋ฐ ์ฌ์ฉ์ ์ ์ subagent์์ ์๋ํ๋ฉฐ, ์ธ์ ์ ์ฌ๊ฐํ ๋ ์ ํ์ด ์ ์ง๋ฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ ์ ๊ณต subagent์ ๊ฒฝ์ฐ ์์ด์ ํธ ์ด๋ฆ๋ง ์ ๋ฌํ๋ฉด Claude Code๊ฐ ์ฐพ์ ์ ์์ต๋๋ค:
claude --agent security-reviewer
์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ์ด ๋์ผํ ์ด๋ฆ์ ์์ด์ ํธ๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ๋ฒ์๊ฐ ์ง์ ๋ ์ด๋ฆ์ ์ ๋ฌํ์ฌ ๊ตฌ๋ถํฉ๋๋ค:
claude --agent my-plugin:security-reviewer
ํ๋ฌ๊ทธ์ธ์ด ์์ด์ ํธ๋ฅผ agents/ ๋๋ ํ ๋ฆฌ์ ํ์ ํด๋์ ๋ฐฐ์นํ๋ฉด ๋ฒ์๊ฐ ์ง์ ๋ ์ด๋ฆ์ ํ์ ํด๋๋ฅผ ํฌํจํฉ๋๋ค. ์๋ฅผ ๋ค์ด claude --agent my-plugin:review:security์
๋๋ค.
ํ๋ก์ ํธ์ ๋ชจ๋ ์ธ์
์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค๋ ค๋ฉด .claude/settings.json์์ agent๋ฅผ ์ค์ ํฉ๋๋ค:
{
"agent": "code-reviewer"
}
CLI ํ๋๊ทธ๊ฐ ๋ ๋ค ์์ผ๋ฉด ์ค์ ์ ์ฌ์ ์ํฉ๋๋ค.
Subagent๋ฅผ foreground ๋๋ background์์ ์คํ
Subagent๋ foreground (์ฐจ๋จ) ๋๋ background (๋์)์์ ์คํํ ์ ์์ต๋๋ค:
- Foreground subagent๋ ์๋ฃ๋ ๋๊น์ง ์ฃผ ๋ํ๋ฅผ ์ฐจ๋จํฉ๋๋ค. ๊ถํ ํ๋กฌํํธ๋ ๋ฐ์ํ๋ ๋๋ก ์ฌ์ฉ์์๊ฒ ์ ๋ฌ๋ฉ๋๋ค.
- Background subagent๋ ๊ณ์ ์์ ํ๋ ๋์ ๋์์ ์คํ๋ฉ๋๋ค. {/* min-version: 2.1.186 */}v2.1.186๋ถํฐ background subagent๊ฐ ๊ถํ์ด ํ์ํ ๋๊ตฌ ํธ์ถ์ ๋๋ฌํ๋ฉด ํ๋กฌํํธ๊ฐ ์ฃผ ์ธ์ ์ ํ์๋๊ณ ์์ฒญํ๋ subagent์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์น์ธํ์ฌ subagent๋ฅผ ๊ณ์ํ๊ฑฐ๋ Esc๋ฅผ ๋๋ฌ subagent๋ฅผ ์ค์งํ์ง ์๊ณ ํด๋น ๋๊ตฌ ํธ์ถ์ ๊ฑฐ๋ถํฉ๋๋ค. v2.1.186 ์ด์ ์๋ background subagent๊ฐ ํ๋กฌํํธ๋ฅผ ํ์ํ์ ๋ชจ๋ ๋๊ตฌ ํธ์ถ์ ์๋์ผ๋ก ๊ฑฐ๋ถํ์ต๋๋ค.
Claude๋ ์์ ์ ๊ธฐ๋ฐ์ผ๋ก subagent๋ฅผ foreground ๋๋ background์์ ์คํํ ์ง ๊ฒฐ์ ํฉ๋๋ค. ๋ค์์ ์ํํ ์๋ ์์ต๋๋ค:
- Claude์ "run this in the background"๋ฅผ ์์ฒญ
- Ctrl+B๋ฅผ ๋๋ฌ ์คํ ์ค์ธ ์์ ์ background๋ก ์ด๋
๋ชจ๋ background ์์
๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ค๋ฉด CLAUDE_CODE_DISABLE_BACKGROUND_TASKS ํ๊ฒฝ ๋ณ์๋ฅผ 1๋ก ์ค์ ํฉ๋๋ค. ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.
CLAUDE_CODE_FORK_SUBAGENT๊ฐ 1๋ก ์ค์ ๋๋ฉด background ํ๋์ ๊ด๊ณ์์ด ๋ชจ๋ subagent ์์ฑ์ด background์์ ์คํ๋ฉ๋๋ค. ์ด๋ฌํ background subagent์ ๊ถํ ํ๋กฌํํธ๋ ์์์ ์ค๋ช
ํ ๋๋ก ์ฃผ ์ธ์
์ ํ์๋ฉ๋๋ค.
์ผ๋ฐ์ ์ธ ํจํด
๋๋ ์์ ๊ฒฉ๋ฆฌ
Subagent์ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์ฌ์ฉ ์ค ํ๋๋ ๋ง์ ์์ ์ถ๋ ฅ์ ์์ฑํ๋ ์์ ์ ๊ฒฉ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ํ ์คํธ ์คํ, ๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ ๋ก๊ทธ ํ์ผ ์ฒ๋ฆฌ๋ ์๋นํ ์ปจํ ์คํธ๋ฅผ ์๋นํ ์ ์์ต๋๋ค. ์ด๋ฅผ subagent์ ์์ํ๋ฉด ์์ธํ ์ถ๋ ฅ์ด subagent์ ์ปจํ ์คํธ์ ์ ์ง๋๊ณ ๊ด๋ จ ์์ฝ๋ง ์ฃผ ๋ํ๋ก ๋ฐํ๋ฉ๋๋ค.
Use a subagent to run the test suite and report only the failing tests with their error messages
๋ณ๋ ฌ ์ฐ๊ตฌ ์คํ
๋ ๋ฆฝ์ ์ธ ์กฐ์ฌ์ ๊ฒฝ์ฐ ์ฌ๋ฌ subagent๋ฅผ ์์ฑํ์ฌ ๋์์ ์๋ํ๋๋ก ํฉ๋๋ค:
Research the authentication, database, and API modules in parallel using separate subagents
๊ฐ subagent๋ ์์ ์ ์์ญ์ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ํ ๋ค์ Claude๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํฉ๋๋ค. ์ด๊ฒ์ ์ฐ๊ตฌ ๊ฒฝ๋ก๊ฐ ์๋ก ์์กดํ์ง ์์ ๋ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค.
Subagent๊ฐ ์๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฃผ ๋ํ๋ก ๋ฐํ๋ฉ๋๋ค. ๊ฐ๊ฐ ์์ธํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋ง์ subagent๋ฅผ ์คํํ๋ฉด ์๋นํ ์ปจํ ์คํธ๋ฅผ ์๋นํ ์ ์์ต๋๋ค.
์ง์์ ์ธ ๋ณ๋ ฌ์ฑ์ด ํ์ํ๊ฑฐ๋ ์ปจํ ์คํธ ์๋์ฐ๋ฅผ ์ด๊ณผํ๋ ์์ ์ ๊ฒฝ์ฐ agent teams๋ ๊ฐ ์์ปค์๊ฒ ์์ ์ ๋ ๋ฆฝ์ ์ธ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Subagent ์ฒด์ธ
๋ค๋จ๊ณ ์ํฌํ๋ก์ฐ์ ๊ฒฝ์ฐ Claude์ subagent๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ์์ฒญํฉ๋๋ค. ๊ฐ subagent๋ ์์ ์ ์๋ฃํ๊ณ ๊ฒฐ๊ณผ๋ฅผ Claude์ ๋ฐํํ๊ณ , Claude๋ ๊ด๋ จ ์ปจํ ์คํธ๋ฅผ ๋ค์ subagent์ ์ ๋ฌํฉ๋๋ค.
Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them
Subagent์ ์ฃผ ๋ํ ์ค ์ ํ
์ฃผ ๋ํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
- ์์ ์ด ๋น๋ฒํ ์๋ณต ๋๋ ๋ฐ๋ณต์ ์ธ ๊ฐ์ ์ด ํ์ํ ๊ฒฝ์ฐ
- ์ฌ๋ฌ ๋จ๊ณ๊ฐ ์๋นํ ์ปจํ ์คํธ๋ฅผ ๊ณต์ ํ๋ ๊ฒฝ์ฐ (๊ณํ โ ๊ตฌํ โ ํ ์คํธ)
- ๋น ๋ฅด๊ณ ๋์์ด ์ง์ ๋ ๋ณ๊ฒฝ์ ์ํํ๋ ๊ฒฝ์ฐ
- ์ง์ฐ์๊ฐ์ด ์ค์ํ ๊ฒฝ์ฐ. Subagent๋ ์๋ก ์์ํ๊ณ ์ปจํ ์คํธ๋ฅผ ์์งํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค
Subagent๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
- ์์ ์ด ์ฃผ ์ปจํ ์คํธ์์ ํ์ํ์ง ์์ ์์ธํ ์ถ๋ ฅ์ ์์ฑํ๋ ๊ฒฝ์ฐ
- ํน์ ๋๊ตฌ ์ ํ ๋๋ ๊ถํ์ ์ ์ฉํ๋ ค๋ ๊ฒฝ์ฐ
- ์์ ์ด ์์ฒด ํฌํจ๋์ด ์๊ณ ์์ฝ์ ๋ฐํํ ์ ์๋ ๊ฒฝ์ฐ
๊ฒฉ๋ฆฌ๋ subagent ์ปจํ ์คํธ๊ฐ ์๋ ์ฃผ ๋ํ ์ปจํ ์คํธ์์ ์คํ๋๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋กฌํํธ ๋๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ํ ๋ Skills๋ฅผ ๋์ ๊ณ ๋ คํฉ๋๋ค.
๋ํ์ ์ด๋ฏธ ์๋ ํญ๋ชฉ์ ๋ํ ๋น ๋ฅธ ์ง๋ฌธ์ ๊ฒฝ์ฐ subagent ๋์ /btw๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ์ฒด ์ปจํ
์คํธ๋ฅผ ๋ณด์ง๋ง ๋๊ตฌ ์ก์ธ์ค๊ฐ ์์ผ๋ฉฐ ๋ต๋ณ์ ๊ธฐ๋ก์ ์ถ๊ฐ๋์ง ์์ต๋๋ค.
์ค์ฒฉ๋ subagent ์์ฑ
{/* min-version: 2.1.172 */}Claude Code v2.1.172๋ถํฐ subagent๋ ์์ ์ subagent๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์์๋ ์์ ์ด ์์ฒด์ ์ผ๋ก ๋ณ๋ ฌ ํ์ ์์ ์ผ๋ก ๋ถํ ๋ ๋ ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฐ ๋ฐ๊ฒฌ์ ๋ํด ๊ฒ์ฆ์๋ฅผ ๋ฐ์กํ๋ ๊ฒํ ์ subagent๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๊ฐ ์ถ๋ ฅ์ด ์ฃผ ๋ํ์ ๋๋ฌํ์ง ์์ต๋๋ค. ์ต์์ subagent์ ์์ฝ๋ง ์ฌ์ฉ์์๊ฒ ๋ฐํ๋ฉ๋๋ค.
์ค์ฒฉ๋ subagent๋ ์ต์์ subagent์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ๋์ผํ ๋ฒ์์์ ํด๊ฒฐ๋ฉ๋๋ค. ํ๋กฌํํธ ์
๋ ฅ ์๋์ subagent ํจ๋์ ์ ์ฒด ํธ๋ฆฌ๋ฅผ ํ์ํฉ๋๋ค: ๊ฐ ํ์ ํ์ ํญ๋ชฉ์ (+N) ๊ฐ์๋ฅผ ํ์ํ๊ณ , ํ์ ์ด๋ฉด ํด๋น subagent์ ์ง์ ์์์ด main์ผ๋ก ๋์๊ฐ๋ ๊ฒฝ๋ก์ ํจ๊ป ํ์๋ฉ๋๋ค. /agents์ Running ํญ์ ์คํ ์ค์ธ subagent๋ฅผ ํ๋ฉด ๋ชฉ๋ก์ผ๋ก ๋์ดํฉ๋๋ค.
๊น์ด๋ ๊ฐ ์์ค์ด foreground ๋๋ background์์ ์คํ๋๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ฃผ ๋ํ ์๋์ subagent ์์ค ์๋ก ๊ณ์ฐ๋ฉ๋๋ค. ๊น์ด 5์ subagent๋ Agent ๋๊ตฌ๋ฅผ ๋ฐ์ง ์์ผ๋ฉฐ ์ถ๊ฐ๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ ํ์ ๊ณ ์ ๋์ด ์์ผ๋ฉฐ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Claude Code v2.1.187๋ถํฐ background subagent์ ๊น์ด๋ ์ฒ์ ์์ฑ๋ ๋ ๊ณ ์ ๋๋ฉฐ, ์ฌ๊ฐํด๋ ํด๋น ๊น์ด๊ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฃผ ๋ํ๊ฐ subagent A๋ฅผ ์์ฑํ๊ณ A๊ฐ ๊น์ด 2์์ background subagent B๋ฅผ ์์ฑํ๋ฉด ์ฃผ ๋ํ์์ ์ง์ ์ฌ๊ฐํ ๋ B๋ ์ฌ์ ํ ๊น์ด 2์ ๋๋ค. Subagent๋ฅผ ๋ ์์ ์ปจํ ์คํธ์์ ์ฌ๊ฐํด๋ ๊น์ด ์ ํ์ด ์ด๋ฏธ ๋ฐฉ์งํ ์ถ๊ฐ ์์ค์ ์์ฑํ ์ ์์ต๋๋ค.
ํน์ subagent๊ฐ ๋ค๋ฅธ subagent๋ฅผ ์์ฑํ์ง ๋ชปํ๋๋ก ํ๋ ค๋ฉด tools ๋ชฉ๋ก์์ Agent๋ฅผ ์๋ตํ๊ฑฐ๋ disallowedTools์ ์ถ๊ฐํฉ๋๋ค.
fork๋ ์ฌ์ ํ ๋ค๋ฅธ fork๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋ค๋ฅธ subagent ์ ํ์ ์์ฑํ ์ ์์ผ๋ฉฐ ๊น์ด ์ ํ์ ํฌํจ๋ฉ๋๋ค.
Subagent ์ปจํ ์คํธ ๊ด๋ฆฌ
์์ ์ ๋ก๋๋๋ ํญ๋ชฉ
๊ฐ subagent๋ ์๋ก์ด ๊ฒฉ๋ฆฌ๋ ์ปจํ ์คํธ ์๋์ฐ๋ก ์์ํฉ๋๋ค. ๋ํ ๊ธฐ๋ก, ์ด๋ฏธ ํธ์ถํ skills, ๋๋ Claude๊ฐ ์ด๋ฏธ ์ฝ์ ํ์ผ์ ๋ณด์ง ๋ชปํฉ๋๋ค. Claude๋ ์์ ์ ์์ฝํ๋ ์์ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ subagent๋ ์ฌ๊ธฐ์๋ถํฐ ์๋ํฉ๋๋ค. ์์ธ๋ fork์ด๋ฉฐ, ์ด๋ ์๋ก ์์ํ๋ ๋์ ๋ถ๋ชจ ๋ํ๋ฅผ ์์ํฉ๋๋ค.
๋นfork subagent์ ์ด๊ธฐ ์ปจํ ์คํธ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์์คํ
ํ๋กฌํํธ: ์์ด์ ํธ ์์ ์ ํ๋กฌํํธ ๋ฐ Claude Code๊ฐ ์ถ๊ฐํ๋ ํ๊ฒฝ ์ธ๋ถ ์ ๋ณด์ด๋ฉฐ, ์ ์ฒด Claude Code ์์คํ
ํ๋กฌํํธ๋ ์๋๋๋ค. ์ฌ์ฉ์ ์ ์ subagent๋ markdown body ๋๋
promptํ๋์์ ์ ์ํฉ๋๋ค. ๋ด์ฅ ์์ด์ ํธ๋ ๋ฏธ๋ฆฌ ์ ์๋ ํ๋กฌํํธ๋ฅผ ๊ฐ์ง๋๋ค. - ์์ ๋ฉ์์ง: Claude๊ฐ ์์ ์ ๋๊ธธ ๋ ์์ฑํ๋ ์์ ํ๋กฌํํธ์ ๋๋ค.
- CLAUDE.md ๋ฐ ๋ฉ๋ชจ๋ฆฌ: ์ฃผ ๋ํ๊ฐ ๋ก๋ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ชจ๋ ์์ค์ด๋ฉฐ,
~/.claude/CLAUDE.md, ํ๋ก์ ํธ ๊ท์น,CLAUDE.local.md, ๋ฐ ๊ด๋ฆฌ๋๋ ์ ์ฑ ํ์ผ์ ํฌํจํฉ๋๋ค. ๋ด์ฅ Explore ๋ฐ Plan ์์ด์ ํธ๋ ์ด๋ฅผ ๊ฑด๋๋๋๋ค. - Git ์ํ: ๋ถ๋ชจ ์ธ์
์์ ์ ์ดฌ์ํ ์ค๋
์ท์
๋๋ค. ์์
๋๋ ํ ๋ฆฌ๊ฐ Git ์ ์ฅ์๊ฐ ์๋๊ฑฐ๋
includeGitInstructions๊ฐfalse์ผ ๋ ์์ต๋๋ค. Explore ๋ฐ Plan์ ๊ด๊ณ์์ด ์ด๋ฅผ ๊ฑด๋๋๋๋ค. - ๋ฏธ๋ฆฌ ๋ก๋๋ skills: ์์ด์ ํธ์
skillsํ๋์ ๋ช ๋ช ๋ ๋ชจ๋ skill์ ์ ์ฒด ๋ด์ฉ์ ๋๋ค. ๋ด์ฅ ์์ด์ ํธ๋ skills๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ์ง ์์ต๋๋ค.
Explore ๋ฐ Plan์ CLAUDE.md ๋ฐ git ์ํ๋ฅผ ์๋ตํ๋ ์ ์ผํ subagent์ ๋๋ค. ์ด๋ค ์์ด์ ํธ๊ฐ ์ด๋ฅผ ๊ฑด๋๋ธ์ง ๋ณ๊ฒฝํ๋ frontmatter ํ๋ ๋๋ ์์ด์ ํธ๋ณ ์ค์ ์ด ์์ต๋๋ค.
์ฃผ ๋ํ๋ ์ ์ฒด CLAUDE.md ์ปจํ
์คํธ๋ก Explore ๋ฐ Plan ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ผ๋ฏ๋ก ๋๋ถ๋ถ์ ๊ท์น์ด subagent ์์ฒด์ ๋๋ฌํ ํ์๊ฐ ์์ต๋๋ค. ๊ท์น์ด ํ์ํ ๊ฒฝ์ฐ (์: "vendor/ ๋๋ ํ ๋ฆฌ ๋ฌด์"), subagent์ ์์ํ ๋ Claude์ ์ ๊ณตํ๋ ํ๋กฌํํธ์์ ์ด๋ฅผ ๋ค์ ๋ช
์ํฉ๋๋ค.
Subagent ์ฌ๊ฐ
๊ฐ subagent ํธ์ถ์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ์๋ก์ด ์ปจํ ์คํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ฒ์๋ถํฐ ์์ํ๋ ๋์ ๊ธฐ์กด subagent์ ์์ ์ ๊ณ์ํ๋ ค๋ฉด Claude์ ์ฌ๊ฐํ๋๋ก ์์ฒญํฉ๋๋ค.
์ฌ๊ฐ๋ subagent๋ ๋ชจ๋ ์ด์ ๋๊ตฌ ํธ์ถ, ๊ฒฐ๊ณผ ๋ฐ ์ถ๋ก ์ ํฌํจํ ์ ์ฒด ๋ํ ๊ธฐ๋ก์ ์ ์งํฉ๋๋ค. Subagent๋ ์๋ก ์์ํ๋ ๋์ ์ ํํ ์ค๋จํ ์์น์์ ๊ณ์๋ฉ๋๋ค.
Subagent๊ฐ ์๋ฃ๋๋ฉด Claude๋ ์์ด์ ํธ ID๋ฅผ ๋ฐ์ต๋๋ค. ๋ด์ฅ Explore ๋ฐ Plan ์์ด์ ํธ๋ ์ผํ์ฑ์ด๋ฉฐ ์์ด์ ํธ ID๋ฅผ ๋ฐํํ์ง ์์ผ๋ฏ๋ก ์ฌ๊ฐํ ์ ์์ต๋๋ค. ์์
์ ๊ณ์ํด์ผ ํ ๋๋ general-purpose ๋๋ ์ฌ์ฉ์ ์ ์ subagent๋ฅผ ์ฌ์ฉํฉ๋๋ค. Claude๋ ์์ด์ ํธ์ ID๋ฅผ to ํ๋๋ก ์ฌ์ฉํ์ฌ SendMessage ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๊ฐํฉ๋๋ค. SendMessage ๋๊ตฌ๋ ํญ์ ์์ด์ ํธ ID ๋๋ ์ด๋ฆ์ผ๋ก subagent๋ฅผ ์ฌ๊ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. shutdown_request ๋ฐ plan_approval_response์ ๊ฐ์ ๊ตฌ์กฐํ๋ ํ ํ๋กํ ์ฝ ๋ฉ์์ง๋ agent teams๊ฐ ํ์ฑํ๋์ด์ผ ํฉ๋๋ค.
Subagent๋ฅผ ์ฌ๊ฐํ๋ ค๋ฉด Claude์ ์ด์ ์์ ์ ๊ณ์ํ๋๋ก ์์ฒญํฉ๋๋ค:
Use the code-reviewer subagent to review the authentication module
[Agent completes]
Continue that code review and now analyze the authorization logic
[Claude resumes the subagent with full context from previous conversation]
์ค๋จ๋ subagent๊ฐ SendMessage๋ฅผ ๋ฐ์ผ๋ฉด ์๋ก์ด Agent ํธ์ถ ์์ด background์์ ์๋์ผ๋ก ์ฌ๊ฐ๋ฉ๋๋ค.
์์ด์ ํธ ID๋ฅผ ๋ช
์์ ์ผ๋ก ์ฐธ์กฐํ๋ ค๋ฉด Claude์ ID๋ฅผ ์์ฒญํ ์๋ ์์ผ๋ฉฐ, ~/.claude/projects/{project}/{sessionId}/subagents/์ ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์์ ID๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๊ฐ ํธ๋์คํฌ๋ฆฝํธ๋ agent-{agentId}.jsonl๋ก ์ ์ฅ๋ฉ๋๋ค.
Subagent ํธ๋์คํฌ๋ฆฝํธ๋ ์ฃผ ๋ํ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ง๋ฉ๋๋ค:
- ์ฃผ ๋ํ ์์ถ: ์ฃผ ๋ํ๊ฐ ์์ถ๋ ๋ subagent ํธ๋์คํฌ๋ฆฝํธ๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ๋ณ๋ ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค.
- ์ธ์ ์ง์์ฑ: Subagent ํธ๋์คํฌ๋ฆฝํธ๋ ์ธ์ ๋ด์์ ์ ์ง๋ฉ๋๋ค. ๋์ผํ ์ธ์ ์ ์ฌ๊ฐํ์ฌ Claude Code๋ฅผ ๋ค์ ์์ํ ํ subagent๋ฅผ ์ฌ๊ฐํ ์ ์์ต๋๋ค.
- ์๋ ์ ๋ฆฌ: ํธ๋์คํฌ๋ฆฝํธ๋
cleanupPeriodDays์ค์ (๊ธฐ๋ณธ๊ฐ: 30์ผ)์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌ๋ฉ๋๋ค.
์๋ ์์ถ
Subagent๋ ์ฃผ ๋ํ์ ๋์ผํ ๋
ผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์์ถ์ ์ง์ํฉ๋๋ค. ์์ถ์ ๋์ผํ ์กฐ๊ฑด์์ ํธ๋ฆฌ๊ฑฐ๋๋ฉฐ, CLAUDE_AUTOCOMPACT_PCT_OVERRIDE๋ subagent์๋ ์ ์ฉ๋ฉ๋๋ค. ์ฌ์ ์๊ฐ ์ ์ฉ๋๋ ์๊ธฐ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ถ ์ด๋ฒคํธ๋ subagent ํธ๋์คํฌ๋ฆฝํธ ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค:
{
"type": "system",
"subtype": "compact_boundary",
"compactMetadata": {
"trigger": "auto",
"preTokens": 167189
}
}
preTokens ๊ฐ์ ์์ถ์ด ๋ฐ์ํ๊ธฐ ์ ์ ์ฌ์ฉ๋ ํ ํฐ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
ํ์ฌ ๋ํ ํฌํฌ
ํฌํฌ๋ subagent๋ Claude Code v2.1.117 ์ด์์ด ํ์ํฉ๋๋ค. {/* min-version: 2.1.161 */}v2.1.161๋ถํฐ /fork ๋ช
๋ น์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค. ์ด์ ๋ฒ์ ์์๋ CLAUDE_CODE_FORK_SUBAGENT ํ๊ฒฝ ๋ณ์๋ฅผ 1๋ก ์ค์ ํด์ผ ํฉ๋๋ค. Claude ์์ฒด๊ฐ ํฌํฌ๋ฅผ ์์ฑํ๋๋ก ํ๋ ๊ฒ์ ์คํ์ ์ด๋ฉฐ ํฅํ ๋ฆด๋ฆฌ์ค์์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋จ๊ณ์ ๋กค์์์ ์ผ๋ถ๋ก ๋ํํ ์ธ์
์์๋ ํ์ฑํ๋ ์ ์์ต๋๋ค.
ํฌํฌ๋ ์๋ก ์์ํ๋ ๋์ ์ง๊ธ๊น์ง์ ์ ์ฒด ๋ํ๋ฅผ ์์ํ๋ subagent์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด subagent๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ ๊ณตํ๋ ์ ๋ ฅ ๊ฒฉ๋ฆฌ๊ฐ ๋จ์ด์ง๋๋ค: ํฌํฌ๋ ์ฃผ ์ธ์ ๊ณผ ๋์ผํ ์์คํ ํ๋กฌํํธ, ๋๊ตฌ, ๋ชจ๋ธ ๋ฐ ๋ฉ์์ง ๊ธฐ๋ก์ ๋ณด๋ฏ๋ก ์ํฉ์ ๋ค์ ์ค๋ช ํ ํ์ ์์ด ๋ถ์์ ์ ์ ๋ฌํ ์ ์์ต๋๋ค. ํฌํฌ์ ์์ฒด ๋๊ตฌ ํธ์ถ์ ์ฌ์ ํ ๋ํ์์ ๋ฒ์ด๋๊ณ ์ต์ข ๊ฒฐ๊ณผ๋ง ๋์์ค๋ฏ๋ก ์ฃผ ์ปจํ ์คํธ ์๋์ฐ๊ฐ ๊นจ๋ํ๊ฒ ์ ์ง๋ฉ๋๋ค. ๋ช ๋ช ๋ subagent๊ฐ ์ ์ฉํ๊ธฐ์๋ ๋๋ฌด ๋ง์ ๋ฐฐ๊ฒฝ์ด ํ์ํ๊ฑฐ๋ ๋์ผํ ์์์ ์์ ์ฌ๋ฌ ์ ๊ทผ ๋ฐฉ์์ ๋ณ๋ ฌ๋ก ์๋ํ๋ ค๋ ๊ฒฝ์ฐ ํฌํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋จ๊ณ์ ๋กค์์๊ณผ ๊ด๊ณ์์ด ํฌํฌ ๋ชจ๋๋ฅผ ์ ์ดํ๋ ค๋ฉด CLAUDE_CODE_FORK_SUBAGENT๋ฅผ 1๋ก ์ค์ ํ์ฌ ๋ช
์์ ์ผ๋ก ํ์ฑํํ๊ฑฐ๋ 0์ผ๋ก ์ค์ ํ์ฌ ๋นํ์ฑํํฉ๋๋ค. ์ด ๋ณ์๋ ๋ํํ ๋ชจ๋ ๋ฐ SDK ๋๋ claude -p๋ฅผ ํตํด ์ธ์ ๋ฉ๋๋ค.
ํฌํฌ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด Claude Code๊ฐ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค:
- Claude๋
forksubagent ์ ํ์ ๋ช ์์ ์ผ๋ก ์์ฒญํ์ฌ ํฌํฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. subagent ์ ํ ์์ด ์์ฑํ๋ ๊ฒฝ์ฐ ์ฌ์ ํ general-purpose subagent๋ฅผ ์ฌ์ฉํ๋ฉฐ, Explore์ ๊ฐ์ ๋ช ๋ช ๋ subagent๋ ์ด์ ๊ณผ ๊ฐ์ด ์์ฑ๋ฉ๋๋ค. - ๋ชจ๋ subagent ์์ฑ์ด background์์ ์คํ๋ฉ๋๋ค. ํฌํฌ๋ ๋ช
๋ช
๋ subagent๋ ์๊ด์์ต๋๋ค. ์์ฑ์ ๋๊ธฐ์์ผ๋ก ์ ์งํ๋ ค๋ฉด
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS๋ฅผ1๋ก ์ค์ ํฉ๋๋ค.
๋ณ์ ์ค์ ์ฌ๋ถ์ ๊ด๊ณ์์ด /fork ๋ค์์ ์ง์๋ฌธ์ ์ฌ์ฉํ์ฌ ํฌํฌ๋ฅผ ์ง์ ์์ํ ์ ์์ต๋๋ค. Claude Code๋ ์ง์๋ฌธ์ ์ฒซ ๋จ์ด์์ ํฌํฌ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๋ค์ ์์ ๋ ์ฃผ ์ธ์
์์ ๊ตฌํ์ ๊ณ์ํ๋ ๋์ ํฌํฌ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋๋ก ํฌํฌํฉ๋๋ค:
/fork draft unit tests for the parser changes so far
ํฌํฌ๋ ํ๋กฌํํธ ์ ๋ ฅ ์๋์ ํจ๋์ ๋ํ๋๊ณ ๊ณ์ ์์ ํ๋ ๋์ background์์ ์คํ๋ฉ๋๋ค. ์๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฃผ ๋ํ์ ๋ฉ์์ง๋ก ๋์ฐฉํฉ๋๋ค. ๋ค์ ์น์ ์์๋ ํฌํฌ๊ฐ ์คํ๋๋ ๋์ ํฌํฌ๋ฅผ ๊ด์ฐฐํ๊ณ ์กฐ์ข ํ๊ธฐ ์ํ ํจ๋ ์ปจํธ๋กค์ ๋ค๋ฃน๋๋ค.
์คํ ์ค์ธ ํฌํฌ ๊ด์ฐฐ ๋ฐ ์กฐ์ข
์คํ ์ค์ธ ํฌํฌ๋ ํ๋กฌํํธ ์ ๋ ฅ ์๋์ ํจ๋์ ๋ํ๋๋ฉฐ, ์ฃผ ์ธ์ ์ ๋ํ ํ๊ณผ ๊ฐ ํฌํฌ์ ๋ํ ํ์ด ์์ต๋๋ค. ์ด ํค๋ฅผ ์ฌ์ฉํ์ฌ ํจ๋๊ณผ ์ํธ ์์ฉํฉ๋๋ค:
| ํค | ์์ |
|---|---|
โ / โ |
ํ ๊ฐ ์ด๋ |
Enter |
์ ํํ ํฌํฌ์ ํธ๋์คํฌ๋ฆฝํธ๋ฅผ ์ด๊ณ ํ์ ๋ฉ์์ง ์ ์ก |
x |
์๋ฃ๋ ํฌํฌ๋ฅผ ๋ซ๊ฑฐ๋ ์คํ ์ค์ธ ํฌํฌ ์ค์ง |
Esc |
ํ๋กฌํํธ ์ ๋ ฅ์ผ๋ก ํฌ์ปค์ค ๋ฐํ |
ํฌํฌ์ ๋ช ๋ช ๋ subagent์ ์ฐจ์ด์
ํฌํฌ๋ ์์ฑ ์์ ์ ์ฃผ ์ธ์ ์ ๋ชจ๋ ๊ฒ์ ์์ํฉ๋๋ค. ๋ช ๋ช ๋ subagent๋ ์์ ์ ์ ์์์ ์์ํฉ๋๋ค.
| ํฌํฌ | ๋ช ๋ช ๋ subagent | |
|---|---|---|
| ์ปจํ ์คํธ | ์ ์ฒด ๋ํ ๊ธฐ๋ก | ์ ๋ฌํ๋ ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ ์๋ก์ด ์ปจํ ์คํธ |
| ์์คํ ํ๋กฌํํธ ๋ฐ ๋๊ตฌ | ์ฃผ ์ธ์ ๊ณผ ๋์ผ | ์ ์ ํ์ผ์์ |
| ๋ชจ๋ธ | ์ฃผ ์ธ์ ๊ณผ ๋์ผ | Subagent์ model ํ๋์์ |
| ๊ถํ | ํ๋กฌํํธ๊ฐ ํฐ๋ฏธ๋์ ํ์๋จ | background์์ ์คํ ์ค์ผ ๋ ํ๋กฌํํธ๊ฐ ์ฃผ ์ธ์ ์ ํ์๋จ |
| ํ๋กฌํํธ ์บ์ | ์ฃผ ์ธ์ ๊ณผ ๊ณต์ | ๋ณ๋ ์บ์ |
ํฌํฌ์ ์์คํ ํ๋กฌํํธ ๋ฐ ๋๊ตฌ ์ ์๊ฐ ๋ถ๋ชจ์ ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ์์ฒญ์ ๋ถ๋ชจ์ ํ๋กฌํํธ ์บ์๋ฅผ ์ฌ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋์ผํ ์ปจํ ์คํธ๊ฐ ํ์ํ ์์ ์ ๋ํด ์๋ก์ด subagent๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ํฌํฌ๊ฐ ๋ ์ ๋ ดํฉ๋๋ค.
Claude๊ฐ Agent ๋๊ตฌ๋ฅผ ํตํด ํฌํฌ๋ฅผ ์์ฑํ ๋ isolation: "worktree"๋ฅผ ์ ๋ฌํ์ฌ ํฌํฌ์ ํ์ผ ํธ์ง์ด ์ฒดํฌ์์ ๋์ ๋ณ๋์ git worktree์ ๊ธฐ๋ก๋๋๋ก ํ ์ ์์ต๋๋ค.
์ ํ ์ฌํญ
CLAUDE_CODE_FORK_SUBAGENT=1์ ์ค์ ํ๋ฉด ๋ํํ ์ธ์
, ๋น๋ํํ ๋ชจ๋ ๋ฐ Agent SDK์์ ํฌํฌ ๋ชจ๋๋ฅผ ํ์ฑํํฉ๋๋ค. CLAUDE_CODE_FORK_SUBAGENT๋ฅผ 0์ผ๋ก ์ค์ ํ๋ฉด ์๋ฒ ์ธก ๋กค์์์ ํฌํจํ์ฌ ๋ชจ๋ ๊ณณ์์ ํฌํฌ ๋ชจ๋๋ฅผ ๋นํ์ฑํํฉ๋๋ค. ํฌํฌ๋ ์ถ๊ฐ ํฌํฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์์ subagent
์ด๋ฌํ ์์ ๋ subagent๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ํจ๊ณผ์ ์ธ ํจํด์ ๋ณด์ฌ์ค๋๋ค. ์์์ ์ผ๋ก ์ฌ์ฉํ๊ฑฐ๋ Claude๋ก ์ฌ์ฉ์ ์ ์๋ ๋ฒ์ ์ ์์ฑํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก:
- ์ง์ค๋ subagent ์ค๊ณ: ๊ฐ subagent๋ ํน์ ์์ ์์ ํ์ํด์ผ ํฉ๋๋ค
- ์์ธํ ์ค๋ช ์์ฑ: Claude๋ ์ค๋ช ์ ์ฌ์ฉํ์ฌ ์์ํ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค
- ๋๊ตฌ ์ก์ธ์ค ์ ํ: ๋ณด์ ๋ฐ ์ง์ค์ ์ํด ํ์ํ ๊ถํ๋ง ๋ถ์ฌํฉ๋๋ค
- ๋ฒ์ ์ ์ด์ ์ฒดํฌ์ธ: ํ๋ก์ ํธ subagent๋ฅผ ํ๊ณผ ๊ณต์ ํฉ๋๋ค
์ฝ๋ ๊ฒํ ์
์์ ํ์ง ์๊ณ ์ฝ๋๋ฅผ ๊ฒํ ํ๋ ์ฝ๊ธฐ ์ ์ฉ subagent์ ๋๋ค. ์ด ์์ ๋ ์ ํ๋ ๋๊ตฌ ์ก์ธ์ค(Edit ๋๋ Write ์์)์ ์ ํํ ๋ฌด์์ ์ฐพ์์ง ๋ฐ ์ถ๋ ฅ ํ์์ ์ง์ ํ๋ ์์ธํ ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ค๋ subagent๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
---
name: code-reviewer
description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---
You are a senior code reviewer ensuring high standards of code quality and security.
When invoked:
1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately
Review checklist:
- Code is clear and readable
- Functions and variables are well-named
- No duplicated code
- Proper error handling
- No exposed secrets or API keys
- Input validation implemented
- Good test coverage
- Performance considerations addressed
Provide feedback organized by priority:
- Critical issues (must fix)
- Warnings (should fix)
- Suggestions (consider improving)
Include specific examples of how to fix issues.
๋๋ฒ๊ฑฐ
๋ฌธ์ ๋ฅผ ๋ถ์ํ๊ณ ์์ ํ ์ ์๋ subagent์ ๋๋ค. ์ฝ๋ ๊ฒํ ์์ ๋ฌ๋ฆฌ ์ด subagent๋ ๋ฒ๊ทธ ์์ ์ด ์ฝ๋ ์์ ์ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ Edit์ ํฌํจํฉ๋๋ค. ํ๋กฌํํธ๋ ์ง๋จ์์ ๊ฒ์ฆ๊น์ง์ ๋ช ํํ ์ํฌํ๋ก์ฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
---
name: debugger
description: Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.
tools: Read, Edit, Bash, Grep, Glob
---
You are an expert debugger specializing in root cause analysis.
When invoked:
1. Capture error message and stack trace
2. Identify reproduction steps
3. Isolate the failure location
4. Implement minimal fix
5. Verify solution works
Debugging process:
- Analyze error messages and logs
- Check recent code changes
- Form and test hypotheses
- Add strategic debug logging
- Inspect variable states
For each issue, provide:
- Root cause explanation
- Evidence supporting the diagnosis
- Specific code fix
- Testing approach
- Prevention recommendations
Focus on fixing the underlying issue, not the symptoms.
๋ฐ์ดํฐ ๊ณผํ์
๋ฐ์ดํฐ ๋ถ์ ์์
์ ์ํ ๋๋ฉ์ธ๋ณ subagent์
๋๋ค. ์ด ์์ ๋ ์ผ๋ฐ์ ์ธ ์ฝ๋ฉ ์์
์ธ์ ํนํ๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ํด subagent๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ ์ ๋ฅํ ๋ถ์์ ์ํด ๋ช
์์ ์ผ๋ก model: sonnet์ ์ค์ ํฉ๋๋ค.
---
name: data-scientist
description: Data analysis expert for SQL queries, BigQuery operations, and data insights. Use proactively for data analysis tasks and queries.
tools: Bash, Read, Write
model: sonnet
---
You are a data scientist specializing in SQL and BigQuery analysis.
When invoked:
1. Understand the data analysis requirement
2. Write efficient SQL queries
3. Use BigQuery command line tools (bq) when appropriate
4. Analyze and summarize results
5. Present findings clearly
Key practices:
- Write optimized SQL queries with proper filters
- Use appropriate aggregations and joins
- Include comments explaining complex logic
- Format results for readability
- Provide data-driven recommendations
For each analysis:
- Explain the query approach
- Document any assumptions
- Highlight key findings
- Suggest next steps based on data
Always ensure queries are efficient and cost-effective.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ๊ฒ์ฆ์
Bash ์ก์ธ์ค๋ฅผ ํ์ฉํ์ง๋ง ์ฝ๊ธฐ ์ ์ฉ SQL ์ฟผ๋ฆฌ๋ง ํ์ฉํ๋๋ก ๋ช
๋ น์ ๊ฒ์ฆํ๋ subagent์
๋๋ค. ์ด ์์ ๋ tools ํ๋๋ณด๋ค ๋ ์ธ๋ฐํ ์ ์ด๊ฐ ํ์ํ ๋ PreToolUse hook์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
---
name: db-reader
description: Execute read-only database queries. Use when analyzing data or generating reports.
tools: Bash
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./scripts/validate-readonly-query.sh"
---
You are a database analyst with read-only access. Execute SELECT queries to answer questions about the data.
When asked to analyze data:
1. Identify which tables contain the relevant data
2. Write efficient SELECT queries with appropriate filters
3. Present results clearly with context
You cannot modify data. If asked to INSERT, UPDATE, DELETE, or modify schema, explain that you only have read access.
Claude Code๋ hook ์ ๋ ฅ์ JSON์ผ๋ก stdin์ ํตํด hook ๋ช ๋ น์ ์ ๋ฌํฉ๋๋ค. ๊ฒ์ฆ ์คํฌ๋ฆฝํธ๋ ์ด JSON์ ์ฝ๊ณ ์คํ ์ค์ธ ๋ช ๋ น์ ์ถ์ถํ๊ณ SQL ์ฐ๊ธฐ ์์ ๋ชฉ๋ก์ ๋ํด ํ์ธํฉ๋๋ค. ์ฐ๊ธฐ ์์ ์ด ๊ฐ์ง๋๋ฉด ์คํฌ๋ฆฝํธ๋ ์ข ๋ฃ ์ฝ๋ 2๋ก ์ข ๋ฃํ์ฌ ์คํ์ ์ฐจ๋จํ๊ณ stderr๋ฅผ ํตํด Claude์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค.
ํ๋ก์ ํธ์ ์ด๋๋ ์ง ๊ฒ์ฆ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ญ๋๋ค. ๊ฒฝ๋ก๋ hook ๊ตฌ์ฑ์ command ํ๋์ ์ผ์นํด์ผ ํฉ๋๋ค:
#!/bin/bash
# Blocks SQL write operations, allows SELECT queries
# Read JSON input from stdin
INPUT=$(cat)
# Extract the command field from tool_input using jq
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
if [ -z "$COMMAND" ]; then
exit 0
fi
# Block write operations (case-insensitive)
if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE|REPLACE|MERGE)\b' > /dev/null; then
echo "Blocked: Write operations not allowed. Use SELECT queries only." >&2
exit 2
fi
exit 0
macOS ๋ฐ Linux์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค:
chmod +x ./scripts/validate-readonly-query.sh
Windows์์๋ ๊ฒ์ฆ ์คํฌ๋ฆฝํธ๋ฅผ PowerShell๋ก ์์ฑํ๊ณ hook ํญ๋ชฉ์ shell: powershell์ ์ถ๊ฐํฉ๋๋ค. PowerShell์์ hook ์คํ์ ์ฐธ์กฐํ์ธ์.
Hook์ stdin์ ํตํด JSON์ ๋ฐ์ผ๋ฉฐ Bash ๋ช
๋ น์ tool_input.command์ ์์ต๋๋ค. ์ข
๋ฃ ์ฝ๋ 2๋ ์์
์ ์ฐจ๋จํ๊ณ ์ค๋ฅ ๋ฉ์์ง๋ฅผ Claude์ ํผ๋๋ฐฑํฉ๋๋ค. ์ข
๋ฃ ์ฝ๋ ๋ฐ ์ถ๋ ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ Hooks๋ฅผ ์ฐธ์กฐํ๊ณ Hook input์์ ์ ์ฒด ์
๋ ฅ ์คํค๋ง๋ฅผ ํ์ธํ์ธ์.
๋ค์ ๋จ๊ณ
์ด์ subagent๋ฅผ ์ดํดํ์ผ๋ฏ๋ก ๋ค์ ๊ด๋ จ ๊ธฐ๋ฅ์ ํ์ํฉ๋๋ค:
- ํ๋ฌ๊ทธ์ธ์ผ๋ก subagent ๋ฐฐํฌ - ํ ๋๋ ํ๋ก์ ํธ ๊ฐ์ subagent ๊ณต์
- Claude Code๋ฅผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์คํ - CI/CD ๋ฐ ์๋ํ๋ฅผ ์ํ Agent SDK
- MCP ์๋ฒ ์ฌ์ฉ - Subagent์ ์ธ๋ถ ๋๊ตฌ ๋ฐ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค ์ ๊ณต