Claude Code의 서브 에이전트(Sub-agent)로 커피 블로그 편집부를 구성해 보았다
요약
본 글은 Anthropic의 Claude를 터미널에서 조작하는 도구인 Claude Code를 활용하여 '서브 에이전트(Sub-agent)' 기능을 구현하고 테스트한 과정을 기록합니다. 필자는 코딩 지식 없이도 아이디어 발굴, 기사 집필, SNS 공지 등 전문화된 역할을 가진 가상의 편집부 멤버들을 구성할 수 있음을 보여줍니다. 특히 서브 에이전트를 성공적으로 호출하기 위해서는 Claude Code를 재시작하는 과정(세션 관리)이 중요하며, 이를 통해 단순한 대행을 넘어선 독립적이고 심층적인 정보 조사 능력을 갖춘 '진정한 에이전트'의 작동 방식을 체감할 수 있습니다.
핵심 포인트
- Claude Code는 Anthropic Claude를 터미널 환경에서 제어하는 도구이다.
- 서브 에이전트는 특정 역할(아이디어 발굴, 집필 등)에 특화된 전문 담당자를 생성하여 메인 에이전트가 지휘하게 하는 기능이다.
- 성공적인 서브 에이전트 활용을 위해서는 Claude Code를 재시작하는 것이 중요하며, 이는 에이전트를 세션 메모리에 완전히 로드시키는 과정이다.
- 서브 에이전트는 단순한 요청 수행을 넘어, 역할에 맞춰 검색 키워드를 설계하고 복수 병행 조사하는 등 독립적인 사고방식을 보여준다.
저는 코드를 쓰지 않습니다. 쓸 줄도 모르고, 쓸 마음도 없습니다.
그런 제 컴퓨터 안에 커피 블로그를 운영해 줄 편집부 3명이 생겼습니다. 아이디어 발굴 담당, 집필 담당, SNS 공지 담당. 그들에게 "Tokyo Coffee Festival 기사를 만들어줘"라고 부탁했더니, 1분 37초 만에 1500자 분량의 기사와 X(구 Twitter) 공지안 4개가 나왔습니다.
Claude Code에 일본어로 부탁했을 뿐입니다. 설정 파일도 커맨드(Command)도 저는 단 한 줄도 쓰지 않았습니다.
같은 일을 아마 누구라도 할 수 있을 것입니다. 이 기사는 그 실연의 모든 기록입니다. (참고로 저는 커피 블로그를 운영하고 있는 것이 아니라, 서브 에이전트(Sub-agent) 기능을 테스트하기 위한 소재로 선택했습니다. 테마는 무엇이든 응용할 수 있습니다)
만약을 위해 Claude Code가 무엇인지 설명하자면, Anthropic의 Claude(생성형 AI)를 터미널(Terminal, 명령어를 입력하는 화면)에서 조작하는 도구입니다. Claude Pro(월 20달러~) 또는 Max 플랜에 가입되어 있다면 사용할 수 있습니다. 저는 Max를 사용하고 있지만, Pro에서도 이 기사와 동일한 작업을 할 수 있습니다.
애초에 「서브 에이전트(Sub-agent)」란 무엇인가?
평소 사용 방식에서 Claude Code는 1명입니다. 아이디어 발굴도, 기사 집필도, SNS 문안 작성도 전부 그 한 명에게 부탁합니다.
하지만 「서브 에이전트 기능」을 사용하면 다음과 같이 됩니다.
- 아이디어 발굴에 특화된 담당자를 만든다
- 집필에 특화된 담당자를 만든다
- SNS 공지에 특화된 담당자를 만든다
- 당신이 말을 걸고 있는 Claude Code 본체가 「편집장」으로서 3명을 지휘한다
중요한 점은, 편집장을 당신이 별도로 만들 필요가 없다는 것입니다. 지금 당신이 말을 걸고 있는 Claude Code 자신이 처음부터 편집장을 겸하고 있습니다. 당신이 준비할 것은 「현장 담당자 3명」뿐입니다.
"3명이나 고용해야 해?"라고 생각하지 마세요. 실제로 하는 일은 "일본어로 부탁하기"를 3번 반복하는 것뿐입니다. 이제부터 함께 시도해 봅시다.
실연 ①: 아이디어 발굴 담당자를 만들기
먼저 실연 준비를 했습니다. 제 컴퓨터에서는 평소에 Claude Code를 다른 프로젝트에서 사용하고 있는데, 거기서 실행하면 기존 설정을 이어받게 됩니다. 그래서 이번에는 프로젝트 외의 깨끗한 장소에서 새로 Claude Code를 실행했습니다.
첫 마디부터 바로 막혔습니다.
제가 던진 문장은 이것입니다.
블로그 아이디어를 내주는 사람을 만들고 싶어
그러자 Claude Code는 「블로그 아이디어 생성 도구 작성」이라는 타이틀을 세션(Session)에 붙이고, 다음과 같은 질문을 돌려주었습니다.
CLI 도구, Web UI, 정기 실행 스크립트 등 어떤 형식으로 할까요?
"사람을 만들어줘"라는 일본어가 "앱을 만들어달라는 의뢰"로 해석된 것입니다.
그래서 다시 말했습니다.
미안, 서브 에이전트(Sub-agent)로서 만들어줬으면 좋겠어.
.claude/agents/에 정의 파일을 두는 방식으로. 앱이 아니라, Claude Code 자신이 호출할 수 있는 전문 담당자를 만들고 싶어
「서브 에이전트(Sub-agent)」라는 단어를 사용하자마자 Claude Code의 움직임이 바뀌었습니다. "알겠습니다, 현재 디렉터리 구조를 확인하겠습니다"라고 말하며 폴더를 읽어 들였고, 장르에 대한 질문이 시작되었습니다.
커피 계열. 라이프스타일에 가깝고, 리뷰·내리는 법·카페 탐방·원두 이야기 등. 읽을거리가 있는 블로그
이에 대해 Claude Code는 쓰기 권한을 요청해 왔습니다. .claude/agents/라는 폴더를 만들어도 되는지에 대한 확인입니다. 「2. 항상 허용」을 선택하자 그대로 작업이 진행되었고, coffee-blog-ideas.md라는 에이전트 정의 파일이 완성되었습니다.
곧바로 테스트해 보기 위해, "지금 계절(4월 말·봄)에 어울리는 아이디어를 내봐"라고 불렀습니다. 그런데——
Error: Agent type 'coffee-blog-ideas' not found.
에러입니다. "만들었을 터인 에이전트를 찾을 수 없음".
이것은 실패가 아니라 재시작을 잊었을 뿐이었습니다. Claude Code는 실행된 시점에 .claude/agents/를 읽어 들입니다. 이번에는 실행된 후에 에이전트를 만들었기 때문에, 현재 세션에는 아직 인식되지 않았던 것입니다.
Claude Code를 /exit로 종료하고, claude로 재시작합니다.
그리고 다시 한번 호출합니다.
coffee-blog-ideas를 불러서, 지금 계절에 어울리는 커피 블로그 아이디어를 내줘
이번에는 달랐습니다.
화면에 「coffee-blog-ideas(봄의 커피 블로그 아이디어 도출)」라는 표시가 나타나고, 에이전트 스스로가 여러 개의 검색을 동시에 실행하기 시작했습니다.
여기서 재시작 전과 재시작 후의 움직임을 비교해 보겠습니다.
| 관점 | 재시작 전 (메인 대행) | 재시작 후 (진정한 에이전트) |
|---|---|---|
| 검색 쿼리 | 커피 트렌드 2026 봄 (범용적) | 골든위크 카페 투어 / 도쿄 커피 페스티벌 2026 spring 상세 / 한국 커피 맘모스 커피 (복수 병행) |
| ... | ... |
재시작 전에도 7개의 아이디어를 내주기는 했습니다. 하지만 그것은 "제가 대신 했습니다"라는 대행에 불과했습니다. 진정한 서브 에이전트(Sub-agent)가 움직였다는 증거는 아니었습니다.
재시작 후의 에이전트는 검색 키워드 설계부터 달랐습니다. "커피 전반"이 아니라 "이번 주 페스티벌", "지금 줄 서 있는 가게"라는 각도로 스스로 조사하러 갑니다. **"같은 Claude Code라도 역할을 부여하면 파고드는 방식이 달라진다"**는 체감이 여기서 처음으로 나타났습니다.
실연 ②: 집필 담당 만들기
다음으로 집필 담당을 부탁했습니다.
서브 에이전트를 한 명 더 만들어줘. 이번에는 집필 담당.
coffee-blog-ideas에서 전달받은 아이디어를 바탕으로 커피 블로그 기사를 쓰는 담당..claude/agents/에 정의 파일을 두고
여기서 재미있는 일이 일어났습니다. Claude Code는 정의 파일을 만들기 전에, 자발적으로 첫 번째 에이전트의 정의를 읽으러 간 것입니다.
"기존의 에이전트 정의를 확인한 후 파일을 만들겠습니다"라고 선언하며 coffee-blog-ideas.md를 읽어 들였습니다. 그러고 나서 "포맷을 파악했습니다"라고 말한 뒤 새로운 정의를 생성했습니다. 결과적으로 첫 번째와 두 번째 에이전트는 장르, 독자층, 톤, 말투가 완전히 일치했습니다.
정의의 포인트는 세 가지입니다. WebSearch(웹 검색) 부여 (보충 정보를 스스로 조사할 수 있도록), 구성 명시 (리드문 → 본문 → 요약), 출력 포맷 엄격화 ("기사 본문만 반환"하도록 지정하여 불필요한 메타 코멘트가 들어가지 않게 함).
저는 "첫 번째와 같은 노선으로 만들어줘"라고 한마디도 하지 않았습니다. Claude Code가 기존 정의를 읽고 스스로 맞춘 것입니다. "사람을 늘릴수록 정비가 쉬워진다"는 감각이 여기서 생겨났습니다.
실연 ③: SNS 홍보 담당 만들기
세 번째는 가장 대충 부탁했습니다.
한 명 더 만들어줘. 완성된 블로그 기사를 X에 게시하기 위한 짧은 홍보 문구를 쓰는 담당. 140자 제한 및 링크 포함 형식으로.
Claude Code가 내놓은 정의에는 요청하지 않은 사양들이 여러 개 포함되어 있었습니다.
- 글자 수 계산 명시 — X의 URL은 종류에 상관없이 23자로 환산되므로, 본문은 117자 이내로 명기했습니다.
- 3가지 패턴 출력 — "체험담 중심", "숫자·구체성 중심", "질문 중심" 등 관점을 달리한 안을 제시하여 선택할 수 있게 했습니다.
- tools는 비어 있음 — 외부 검색은 필요 없는 작업이므로 부여하지 않았습니다.
나아가 품질 기준으로 자발적으로 다음과 같은 NG 예시도 적어 넣었습니다.
- NG: "기사를 썼습니다! 꼭 읽어주세요!" 식의 내용 없는 홍보
- NG: "확산 희망", "RT 희망" 같은 구걸 문구
- NG: 이모지 남용 (1~2개까지로 제한)
"140자 제한으로 홍보 문구를 쓰는 담당"이라는 지시로부터 이 정도까지 전개될 줄은 몰랐습니다.
이로써 3명이 모두 모였습니다.
| 항목 | coffee-blog-ideas | coffee-blog-writer | coffee-blog-x-poster |
|---|---|---|---|
| 역할 | 아이디어 제안 | 기사 집필 | X 홍보 문구 작성 |
| ... | ... | ... |
3명 모두 장르, 독자층, 톤, 말투는 일치합니다. 다른 점은 역할과 출력 형식뿐입니다. "한 사람의 철학을 세 가지 동작으로 분해한 형태"라는 느낌입니다.
실연 ④: 3명을 연계하여 기사 1개 만들기
마지막으로 3명을 움직였습니다.
coffee-blog-ideas가 앞서 내놓은 아이디어 중 #1 「Tokyo Coffee Festival 2026 Spring 공략 가이드」를 소재로, coffee-blog-writer가 기사를 쓰게 하고, 그 후에 coffee-blog-x-poster가 홍보 문구도 만들게 하고 싶어.
메인 Claude(편집장)는 다음과 같이 움직였습니다.
먼저 coffee-blog-writer에게 기사를 쓰게 한 뒤, 완성된 후 coffee-blog-x-poster에게 전달합니다.
제가 "순서는 이렇게 해"라고 지정한 것이 아닙니다. 의뢰의 의도를 파악하여 스스로 단계를 구성한 것입니다.
writer는 일본어와 영어로 병행하여 WebSearch (웹 검색)를 수행하며 1분 37초 만에 기사를 완성했습니다. 이어 x-poster가 17초 만에 공지 문구를 마무리했습니다.
나온 공지 문구는 4안이었습니다. 지시사항에서는 "3가지 패턴으로 내줘"라고 정의했을 텐데, 보너스로 4번째 안(역발상 축: "GW(골든위크)는 붐비니까 싫다고 생각했던 제가...")까지 포함되어 있었습니다. 편집장은 거기에 한마디를 덧붙였습니다.
오늘이나 내일 게시할 예정이라면 시제와 일치하는 안 1 또는 안 3을 추천합니다.
시제까지 신경 쓰고 있었습니다. "오늘은 4월 30일이고 GW 직전이다"라는 문맥을, 제가 말하지 않아도 파악하고 있었습니다.
이번에는 "누가 얼마나 일했는가"라는 숫자로 비교해 보겠습니다. 제3장에서 본 것이 "움직임 방식의 차이"라면, 이것은 "실제 작업량의 차이"입니다.
| 에이전트 | 도구 사용 | 토큰 | 소요 시간 | 특징 |
|---|---|---|---|---|
| coffee-blog-writer | 5회 (WebSearch) | 11.2k | 1분 37초 | 조사 열심. 복수 검색으로 구체적인 정보를 확보 |
| ... | ||||
| 요청하지 않은 일을 3체 모두가 하고 있었습니다. |
writer는 기사 구성(주목할 로스터 5선·타임 스케줄·혼잡 회피)을 스스로 결정했습니다. x-poster는 3안 지시에 대해 4안을 냈습니다. 편집장은 시제에 맞는 게시 타이밍을 제안했습니다.
참고로, 이때 writer가 작성한 기사 본문은 별도의 기사로 공개했습니다. 실제로 어떤 기사가 나왔는지 궁금하시다면 [여기]에서 읽을 수 있습니다 (AI 생성임을 명시하고 있습니다).
회고: 제가 쓴 일본어 전부
이 시연에서 제가 실제로 내뱉은 말들을 나열합니다.
1. 블로그 소재를 찾아주는 사람을 만들고 싶어
↓ "도구 작성"으로 오해받음
2. 미안, 서브 에이전트 (Sub-agent)로 만들어줘. .claude/agents/ 에
...
실제 발화 수는 10회 (허가 다이얼로그를 제외하면 9회). 설정 파일의 내용은 한 줄도 쓰지 않았습니다. YAML 프론트매터 (YAML Front Matter, 에이전트 설정 상단에 쓰는 정의 정보)·에이전트의 시스템 프롬프트 (System Prompt, 해당 인격에 부여하는 지시서)·mkdir 명령어·기사 본문·X 공지 문구·검색 쿼리——전부 Claude Code 측에서 작성했습니다.
앞으로 시도해 보고 싶은 분들을 위해, "첫 마디" 템플릿을 정리해 둡니다.
실용 Tips: 첫 마디 템플릿
〇〇(역할)을 해주는 서브 에이전트를 만들어줘. △△(이전 에이전트 이름)로부터 전달받은 것을 사용하여 〇〇를 담당함. .claude/agents/ 에 정의 파일을 둬.
세 가지 포인트가 있습니다.
- "서브 에이전트"라고 명시할 것 —— "사람을 만들어줘"라고 하면 앱 제작으로 오해받을 수 있습니다.
- 역할과 입력원을 한 문장으로 전달할 것 —— 기존 에이전트를 참조하게 하면 Claude Code가 일관성을 유지해 줍니다.
- 저장 위치를 명시할 것 ——
.claude/agents/에 둔다고 지정하지 않으면 다른 곳에 만들어질 수 있습니다.
그리고 만들었다면
반드시 한 번은 해주세요. 새로운 에이전트는 세션 시작 시에 로드되기 때문에, 재시작하지 않으면 인식되지 않습니다. 저는 처음에 이를 몰라서 "실패했다"고 생각했지만, 재시작만 하면 되었습니다. /exit로 종료하고 claude로 재시작.
자신의 업무 중에서 반복적으로 발생하는 공정을 세 가지로 나누어 보세요. 각각을 "누군가에게 부탁할 생각으로 일본어(또는 한국어)로 바꾸기"만 해도, Claude Code가 형태를 만들어 줍니다.
다음에는 "소재 발굴 → 집필 → SNS 게시"까지 자동화하는 것을 시도해 보고 싶습니다.
속편을 썼습니다: 이 편집부에 "품질 체크 담당"과 "독자 페르소나 담당"을 추가했더니, 스스로는 깨닫지 못했던 오류를 3건 발견했습니다. → [AI 팀에 "비평가"를 추가했더니, 스스로는 깨닫지 못했던 오류가 3건 나왔다]
이 글에서 소개한 멀티 에이전트 (Multi-agent) 메커니즘을 조금 더 체계적으로 알고 싶은 분께. 제가 실제로 구축하고 운용해 온 내용을 한 권에 담았습니다. 서장과 제1부는 무료로 읽을 수 있습니다.
코드를 못 쓰는 내가, AI에게 "팀"을 갖게 하기까지 (¥900 / 서장·제1부 무료)
만약 "Claude Code를 더 잘 활용하고 싶다"고 생각하신다면, 입문서도 나와 있습니다. 저는 코드를 쓰지 않는 사람이지만, 이런 책을 곁에 두면 하고 싶은 일의 힌트가 됩니다.
Claude Code를 통한 AI 구동 개발 입문 (히라카와 토모히데 저) —— 환경 구축부터 실전까지 일본어로 친절하게 정리되어 있습니다.
커피 이야기도 조금. 집에서 내리는 드립 커피 (Drip Coffee)의 정석이라고 하면, Hario의 V60 드리퍼. 간편함과 맛의 밸런스가 좋아, 드립 초보자도 다루기 쉬운 제품입니다.
이 기사는 Hatena Blog로부터의 크로스포스트입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기