에이전트 스킬 패턴: 𝚂𝙺𝙸𝙻𝙻.𝚖𝚍 콘텐츠 설계 가이드
개발자들은 𝚂𝙺𝙸𝙻𝙻.𝚖𝚍 하면 포맷(YAML 맞추기, 디렉터리 구조화, 명세 준수)에 집착하는 경향이 있습니다. 하지만 Claude Code, Gemini CLI, Cursor 등 30개 이상의 에이전트 도구가 동일한 레이아웃을 표준으로 채택하면서, 포맷 문제는 사실상 해결되었습니다.
이제 진짜 과제는 콘텐츠 설계입니다. 명세는 스킬을 패키징하는 방법을 설명하지만, 그 안에 로직을 어떻게 구성해야 하는지는 전혀 알려주지 않습니다. 예를 들어, FastAPI 관행을 감싸는 스킬은 4단계 문서 파이프라인과 완전히 다르게 작동하지만, 𝚂𝙺𝙸𝙻𝙻.𝚖𝚍 파일 외형은 똑같아 보입니다.
에코시스템 전반(Anthropic 리포지토리부터 Vercel, Google의 내부 가이드라인까지)에서 스킬이 어떻게 구축되는지 연구한 결과, 개발자가 에이전트를 만드는 데 도움이 되는 5가지 반복 설계 패턴을 발견했습니다.
By [@Saboo_Shubham_](https://x.com/@Saboo_Shubham_) and [@lavinigam](https://x.com/@lavinigam)
이 글에서는 각 패턴을 실제 ADK 코드와 함께 설명합니다.
- Tool Wrapper(도구 래퍼): 에이전트를 모든 라이브러리의 즉석 전문가로 만듭니다.
- Generator(생성기): 재사용 가능한 템플릿에서 구조화된 문서를 생성합니다.
- Reviewer(검토자): 체크리스트에 따라 코드를 심각도별로 평가합니다.
- Inversion(역전): 에이전트가 행동하기 전에 사용자를 인터뷰합니다.
- Pipeline(파이프라인): 체크포인트가 있는 엄격한 다단계 워크플로를 강제합니다.

패턴 1: Tool Wrapper (도구 래퍼)
Tool Wrapper는 에이전트에게 특정 라이브러리에 대한 요청 기반 컨텍스트를 제공합니다. API 관행을 시스템 프롬프트에 하드코딩하는 대신, 이를 스킬로 패키징합니다. 에이전트는 해당 기술을 실제로 다룰 때만 이 컨텍스트를 로드합니다.

구현하기 가장 간단한 패턴입니다. 𝚂𝙺𝙸𝙻𝙻.𝚖𝚍 파일은 사용자 프롬프트에서 특정 라이브러리 키워드를 감지하고, 𝚛𝚎𝚏𝚎𝚛𝚎𝚗𝚌𝚎𝚜/ 디렉터리에서 내부 문서를 동적으로 로드한 후 해당 규칙을 절대적 진리로 적용합니다. 이 메커니즘을 통해 팀의 내부 코딩 가이드라인이나 특정 프레임워크 모범 사례를 개발자 워크플로에 직접 배포할 수 있습니다.
다음은 에이전트가 FastAPI 코드를 작성하는 방법을 알려주는 Tool Wrapper 예시입니다. 지침이 에이전트에게 코드 검토나 작성을 시작할 때만 𝚌𝚘𝚗𝚟𝚎𝚗𝚝𝚒𝚘𝚗𝚜.𝚖𝚍 파일을 로드하도록 명시적으로 지시하는 점에 주목하세요.
1# skills/api-expert/SKILL.md2---3name: api-expert4description: FastAPI 개발 모범 사례 및 관행. FastAPI 애플리케이션, REST API 또는 Pydantic 모델을 구축, 검토 또는 디버깅할 때 사용합니다.5metadata:6 pattern: tool-wrapper7 domain: fastapi8---910귀하는 FastAPI 개발 전문가입니다. 아래 규칙을 사용자의 코드나 질문에 적용하세요.1112## 핵심 규칙1314'references/conventions.md'를 로드하여 FastAPI 모범 사례 전체 목록을 확인하세요.1516## 코드 검토 시171. 규칙 참조 파일을 로드하세요.182. 사용자의 코드를 각 규칙과 대조하여 확인하세요.193. 위반 사항이 있으면 특정 규칙을 인용하고 수정 방법을 제안하세요.2021## 코드 작성 시221. 규칙 참조 파일을 로드하세요.232. 모든 규칙을 정확히 따르세요.243. 모든 함수 시그니처에 타입 어노테이션을 추가하세요.254. 의존성 주입에는 Annotated 스타일을 사용하세요.
패턴 2: Generator (생성기)
Tool Wrapper가 지식을 적용하는 반면, Generator는 일관된 출력을 강제합니다. 에이전트가 실행할 때마다 다른 문서 구조를 생성하는 문제에 직면했다면, Generator가 빈칸 채우기 프로세스를 조정하여 이를 해결합니다.

Generator는 두 가지 선택적 디렉터리를 활용합니다. 𝚊𝚜𝚜𝚎𝚝𝚜/는 출력 템플릿을 보관하고, 𝚛𝚎𝚏𝚎𝚛𝚎𝚗𝚌𝚎𝚜/는 스타일 가이드를 보관합니다. 지침은 프로젝트 관리자 역할을 합니다. 에이전트에게 템플릿을 로드하고, 스타일 가이드를 읽고, 누락된 변수를 사용자에게 물어본 후 문서를 채우도록 지시합니다. 이는 예측 가능한 API 문서 생성, 커밋 메시지 표준화, 프로젝트 아키텍처 스캐폴딩에 실용적입니다.
다음 기술 보고서 생성기 예시에서 스킬 파일은 실제 레이아웃이나 문법 규칙을 포함하지 않습니다. 단순히 해당 에셋의 검색을 조정하고 에이전트가 단계별로 실행하도록 강제합니다.
1# skills/report-generator/SKILL.md2---3name: report-generator4description: 마크다운 형식의 구조화된 기술 보고서를 생성합니다. 사용자가 보고서, 요약 또는 분석 문서를 작성, 생성 또는 초안 작성하도록 요청할 때 사용합니다.5metadata:6 pattern: generator7 output-format: markdown8---910귀하는 기술 보고서 생성기입니다. 다음 단계를 정확히 따르세요.11121단계: 'references/style-guide.md'를 로드하여 어조와 서식 규칙을 확인하세요.13142단계: 'assets/report-template.md'를 로드하여 필요한 출력 구조를 확인하세요.15163단계: 템플릿을 채우는 데 필요한 누락된 정보를 사용자에게 물어보세요.17- 주제 또는 제목18- 주요 결과 또는 데이터 포인트19- 대상 독자 (기술진, 경영진, 일반)20214단계: 스타일 가이드 규칙에 따라 템플릿을 채우세요. 템플릿의 모든 섹션이 출력에 포함되어야 합니다.22235단계: 완성된 보고서를 단일 마크다운 문서로 반환하세요.
패턴 3: Reviewer (검토자)
Reviewer 패턴은 무엇을 검사할지와 어떻게 검사할지를 분리합니다. 모든 코드 냄새를 상세히 기술한 긴 시스템 프롬프트를 작성하는 대신, 모듈식 평가 기준을 𝚛𝚎𝚏𝚎𝚛𝚎𝚗𝚌𝚎𝚜/𝚛𝚎𝚟𝚒𝚎𝚠-𝚌𝚑𝚎𝚌𝚔𝚕𝚒𝚜𝚝.𝚖𝚍 파일에 저장합니다.

사용자가 코드를 제출하면 에이전트가 이 체크리스트를 로드하여 체계적으로 점수를 매기고, 결과를 심각도별로 그룹화합니다. Python 스타일 체크리스트를 OWASP 보안 체크리스트로 교체하면, 동일한 스킬 인프라를 사용하면서 완전히 다른 특화된 감사를 수행할 수 있습니다. PR 리뷰를 자동화하거나 사람이 코드를 보기 전에 취약점을 발견하는 매우 효과적인 방법입니다.
다음 코드 리뷰어 스킬이 이러한 분리를 보여줍니다. 지침은 정적 상태로 유지되지만, 에이전트는 외부 체크리스트에서 특정 리뷰 기준을 동적으로 로드하고 구조화된 심각도 기반 출력을 강제합니다.
1# skills/code-reviewer/SKILL.md2---3name: code-reviewer4description: Python 코드의 품질, 스타일, 일반적인 버그를 검토합니다. 사용자가 코드 리뷰를 제출하거나, 코드에 대한 피드백을 요청하거나, 코드 감사를 원할 때 사용합니다.5metadata:6 pattern: reviewer7 severity-levels: error,warning,info8---910귀하는 Python 코드 리뷰어입니다. 다음 리뷰 프로토콜을 정확히 따르세요.11121단계: 'references/review-checklist.md'를 로드하여 전체 리뷰 기준을 확인하세요.13142단계: 사용자의 코드를 주의 깊게 읽으세요. 비판하기 전에 코드의 목적을 이해하세요.15163단계: 체크리스트의 각 규칙을 코드에 적용하세요. 위반 사항이 발견될 때마다:17- 줄 번호(또는 대략적인 위치)를 기록하세요.18- 심각도를 분류하세요: error (반드시 수정), warning (수정 권장), info (고려 사항)19- 단순히 무엇이 잘못되었는지가 아니라, **왜** 문제인지 설명하세요.20- 수정된 코드와 함께 구체적인 수정 방법을 제안하세요.21224단계: 다음 섹션으로 구성된 구조화된 리뷰를 생성하세요.23- **요약**: 코드가 수행하는 작업, 전반적인 품질 평가24- **소견**: 심각도별 그룹화 (error 우선, 그 다음 warning, 마지막 info)25- **점수**: 1-10점으로 평가하고 간단한 근거를 제시하세요.26- **상위 3가지 권장 사항**: 가장 영향력 있는 개선 사항
패턴 4: Inversion (역전)
에이전트는 본능적으로 추측하고 즉시 생성하려고 합니다. Inversion 패턴은 이 동역학을 뒤집습니다. 사용자가 프롬프트를 주도하고 에이전트가 실행하는 대신, 에이전트가 인터뷰어 역할을 합니다.

Inversion은 명시적이고 협상 불가능한 게이팅 지침(예: "모든 단계가 완료될 때까지 구축을 시작하지 마세요")을 사용하여 에이전트가 먼저 컨텍스트를 수집하도록 강제합니다. 구조화된 질문을 순차적으로 던지고, 각 답변을 기다린 후 다음 단계로 넘어갑니다. 에이전트는 요구 사항과 배포 제약 조건에 대한 완전한 그림을 확보할 때까지 최종 출력을 종합하지 않습니다.
이를 실제로 보려면 다음 프로젝트 플래너 스킬을 살펴보세요. 핵심 요소는 엄격한 단계 구분과 모든 사용자 답변이 수집될 때까지 에이전트가 최종 계획을 종합하지 못하도록 하는 명시적인 게이트키핑 프롬프트입니다.
1# skills/project-planner/SKILL.md2---3name: project-planner4description: 구조화된 질문을 통해 요구 사항을 수집한 후 계획을 수립하여 새 소프트웨어 프로젝트를 계획합니다. 사용자가 "구축하고 싶습니다", "계획을 도와주세요", "시스템을 설계해주세요" 또는 "새 프로젝트를 시작하겠습니다"라고 말할 때 사용합니다.5metadata:6 pattern: inversion7 interaction: multi-turn8---910귀하는 구조화된 요구 사항 인터뷰를 진행하고 있습니다. 모든 단계가 완료될 때까지 구축이나 설계를 시작하지 **마세요**.1112## 1단계 — 문제 발견 (한 번에 한 질문씩, 각 답변을 기다리세요)1314다음 질문을 순서대로 하세요. 건너뛰지 마세요.1516- 질문 1: "이 프로젝트는 사용자에게 어떤 문제를 해결해 주나요?"17- 질문 2: "주요 사용자는 누구인가요? 그들의 기술 수준은 어느 정도인가요?"18- 질문 3: "예상 규모는 어떻게 되나요? (일일 사용자 수, 데이터 볼륨, 요청 비율)"1920## 2단계 — 기술적 제약 조건 (1단계가 완전히 응답된 후에만)2122- 질문 4: "어떤 배포 환경을 사용할 예정인가요?"23- 질문 5: "기술 스택에 대한 요구 사항이나 선호 사항이 있나요?"24- 질문 6: "절대 타협할 수 없는 요구 사항은 무엇인가요? (지연 시간, 가동 시간, 규정 준수, 예산)"2526## 3단계 — 종합 (모든 질문에 응답된 후에만)27281. 'assets/plan-template.md'를 로드하여 출력 형식을 확인하세요.292. 수집된 요구 사항을 사용하여 템플릿의 모든 섹션을 채우세요.303. 완성된 계획을 사용자에게 제시하세요.314. 질문: "이 계획이 귀하의 요구 사항을 정확히 반영하고 있나요? 무엇을 변경하시겠습니까?"325. 사용자가 확인할 때까지 피드백을 반영하여 반복하세요.
패턴 5: Pipeline (파이프라인)
복잡한 작업의 경우 단계를 건너뛰거나 지침을 무시할 수 없습니다. Pipeline 패턴은 엄격한 순차 워크플로와 강력한 체크포인트를 강제합니다.
지침 자체가 워크플로 정의 역할을 합니다. 명시적인 다이아몬드 게이트 조건(예: docstring 생성 단계에서 최종 조립 단계로 넘어가기 전에 사용자 승인 요구)을 구현함으로써, Pipeline은 에이전트가 복잡한 작업을 우회하고 검증되지 않은 최종 결과를 제시하는 것을 방지합니다.

이 패턴은 모든 선택적 디렉터리를 활용하여, 필요한 특정 단계에서만 다른 참조 파일과 템플릿을 가져와 컨텍스트 윈도우를 깨끗하게 유지합니다.
다음 문서 파이프라인 예시에서 명시적인 게이트 조건에 주목하세요. 에이전트는 이전 단계에서 생성된 docstring을 사용자가 확인할 때까지 조립 단계로 진행하는 것이 명시적으로 금지됩니다.
1# skills/doc-pipeline/SKILL.md2---3name: doc-pipeline4description: 다단계 파이프라인을 통해 Python 소스 코드에서 API 문서를 생성합니다. 사용자가 모듈 문서화, API 문서 생성, 또는 코드에서 문서를 만들어 달라고 요청할 때 사용합니다.5metadata:6 pattern: pipeline7 steps: "4"8---910귀하는 문서 생성 파이프라인을 실행하고 있습니다. 각 단계를 순서대로 실행하세요. 단계를 건너뛰거나 단계가 실패하면 진행하지 **마세요**.1112## 1단계 — 파싱 및 인벤토리13사용자의 Python 코드를 분석하여 모든 공개 클래스, 함수, 상수를 추출하세요. 인벤토리를 체크리스트 형식으로 제시하세요. 질문: "이것이 문서화하려는 전체 공개 API가 맞습니까?"1415## 2단계 — Docstring 생성16Docstring이 없는 각 함수에 대해:17- 'references/docstring-style.md'를 로드하여 필요한 형식을 확인하세요.18- 스타일 가이드를 정확히 따라 docstring을 생성하세요.19- 생성된 각 docstring을 사용자 승인을 위해 제시하세요.20사용자가 확인할 때까지 3단계로 진행하지 **마세요**.2122## 3단계 — 문서 조립23'assets/api-doc-template.md'를 로드하여 출력 구조를 확인하세요. 모든 클래스, 함수, docstring을 단일 API 참조 문서로 컴파일하세요.2425## 4단계 — 품질 검사26'references/quality-checklist.md'를 기준으로 검토하세요:27- 모든 공개 심볼이 문서화되었는가?28- 모든 매개변수에 타입과 설명이 있는가?29- 함수당 최소 하나의 사용 예제가 있는가?30결과를 보고하세요. 최종 문서를 제시하기 전에 문제를 수정하세요.
올바른 에이전트 스킬 패턴 선택하기
각 패턴은 다른 질문에 답합니다. 다음 의사 결정 트리를 사용하여 사용 사례에 맞는 올바른 패턴을 찾으세요.

마지막으로, 패턴은 조합 가능합니다
이 패턴들은 상호 배타적이지 않습니다. 조합할 수 있습니다.
Pipeline 스킬은 마지막에 Reviewer 단계를 포함하여 자체 작업을 이중 점검할 수 있습니다. Generator는 템플릿을 채우기 전에 필요한 변수를 수집하기 위해 초기에 Inversion에 의존할 수 있습니다. ADK의 𝚂𝚔𝚒𝚕𝚕𝚃𝚘𝚘𝚕𝚜𝚎𝚝과 점진적 공개 덕분에, 에이전트는 런타임에 필요한 정확한 패턴에만 컨텍스트 토큰을 사용합니다.
복잡하고 깨지기 쉬운 지침을 단일 시스템 프롬프트에 억지로 집어넣지 마세요. 워크플로를 분해하고, 올바른 구조적 패턴을 적용하고, 신뢰할 수 있는 에이전트를 구축하세요.
지금 시작하세요
Agent Skills 명세는 오픈소스이며 ADK에서 기본적으로 지원됩니다. 이미 포맷을 패키징하는 방법을 알고 있습니다. 이제 콘텐츠를 설계하는 방법도 알게 되었습니다. Google Agent Development Kit로 더 똑똑한 에이전트를 구축해 보세요.





