Claude Skills.. 앤트로픽에 $200를 내야하는 이유
Claude Skills의 정의와 핵심 개념
Claude Skills는 Anthropic이 공식적으로 제공하는 새로운 기능으로, “특정 작업에서 더 나은 성능을 발휘할 수 있도록 에이전트가 동적으로 탐색하고 로드할 수 있는 지시문, 스크립트, 리소스를 정리하는 폴더”로 정의된다. 이는 사용자의 전문 지식을 Claude에 조합 가능한 리소스로 패키징함으로써 범용 에이전트를 사용자의 필요에 맞는 특화된 에이전트로 변환할 수 있게 해준다.
이 정의만으로는 기존의 Custom Command, Custom Sub-Agent와의 차별점이 명확하지 않을 수 있다. 하지만 아키텍처와 실행 방식을 살펴보면 그 차이가 분명해진다.
아키텍처: MCP와 동등한 레벨의 확장 메커니즘
Claude Skills의 아키텍처는 MCP(Model Context Protocol)와 동등한 레벨에 위치한다. MCP가 외부 도구와의 소통을 담당한다면, Skills는 내부적으로 구조화된 지식과 스크립트를 관리하는 역할을 한다.
파일 시스템 구조는 다음과 같이 구성된다:
.claude/
skills/
pdf/
skill.md (필수)
reference.md
forms.md
scripts/
extract_fields.py
bigquery/
skill.md
...
각 스킬 폴더 내부에는 반드시 skill.md 파일이 존재해야 하며, 그 외의 파일들은 자유롭게 추가할 수 있다. 파일 포맷에는 제한이 없으며, 필요에 따라 마크다운, 파이썬 스크립트, 기타 리소스 파일을 포함할 수 있다.
skill.md의 구조: Front Matter와 본문
skill.md 파일은 Front Matter와 본문(Body)으로 구성된다.
Front Matter (메타데이터)
---
name: pdf
description: Comprehensive PDF toolkit for extracting text and tables, merging splitting documents, and filling out forms
---name: 스킬의 이름description: 스킬이 언제 사용되어야 하는지를 설명하는 핵심 요소. Custom Sub-Agent의 description과 동일한 역할을 하며, 가능한 한 상세하고 구체적으로 작성해야 한다. 스킬이 여러 개 존재할 경우 에이전트가 적절한 스킬을 선택할 수 있도록 명확한 차별점을 제시해야 한다.
본문 (Markdown Body)
본문에는 스킬이 수행해야 할 작업에 대한 설명과 지시사항이 포함된다. 중요한 점은 5,000 토큰 이하로 제한되어 있다는 것이다. 따라서 상세한 예제나 부가 설명은 별도의 파일로 분리하고, 본문에서는 해당 파일을 참조(Reference)하는 방식으로 구성한다.
Progressive Disclosure: 단계적 정보 로딩
Claude Skills의 가장 핵심적인 특징은 Progressive Disclosure 메커니즘이다. 이는 에이전트가 필요에 따라 단계적으로 정보를 로드함으로써 Context Window를 효율적으로 관리하는 방식이다.
Level 1: Front Matter (약 100 토큰)
모든 스킬의 name과 description은 항상 Context에 로드되어 있다. 이를 통해 에이전트는 어떤 스킬들이 사용 가능한지, 각 스킬이 어떤 상황에 적합한지를 항상 인지하고 있다.
Level 2: Markdown Body (최대 5,000 토큰)
스킬이 트리거된 후에만 본문이 로드된다. 즉, Front Matter를 읽고 “이 스킬을 사용해야겠다”는 결정이 내려져야만 본문의 내용이 Context에 추가된다.
Level 3+: Referenced Files (무제한)
본문에서 참조된 파일들(reference.md, forms.md, 스크립트 파일 등)은 실제로 필요할 때만 로드된다. 예를 들어:
## Usage
See ./reference.md for detailed examples
## Filling PDF Forms
Read ./forms.md for instructions on filling PDF forms에이전트가 본문을 읽고 “상세한 예제가 필요하다”고 판단하면 그제서야 reference.md를 로드한다. 모든 참조 파일을 미리 로드하지 않기 때문에 Context 제한이 없으며, 필요한 파일만 선택적으로 가져온다.
이러한 방식은 Custom Command나 Custom Sub-Agent가 모든 내용을 한 번에 Context에 로드하는 것(Full Loading)과 대비된다.
Content Referencing: 스크립트 실행과 Deterministic Behavior
Progressive Disclosure의 또 다른 강력한 기능은 스크립트를 Context에 로드하지 않고 직접 실행할 수 있다는 점이다.
예를 들어, forms.md에 다음과 같은 내용이 있다고 가정하자:
Run this script from the files directory:
python ./scripts/extract_fields.py <pdf_file>이 경우 Claude는:
extract_fields.py파일의 코드를 읽지 않는다- 대상 PDF 파일도 Context에 로드하지 않는다
- 단순히 명시된 커맨드를 실행한다
이는 Deterministic(결정론적) 실행을 가능하게 한다. LLM은 기본적으로 Non-Deterministic하다. 동일한 질문(“포트폴리오 사이트를 만들어줘”)을 해도 매번 다른 결과가 나온다. 하지만 전통적인 코드는 동일한 Input에 대해 항상 동일한 Output을 보장한다.
Skills는 이러한 Deterministic한 워크플로우를 LLM 에이전트에 통합함으로써:
- 일관성(Consistency) 확보
- 재현성(Repeatability) 보장
- Context 절약
을 동시에 달성한다.
Skills vs Custom Command vs Custom Sub-Agent
세 가지 기능을 비교하면 다음과 같다:
| 구분 | Custom Command | Custom Sub-Agent | Skills |
|---|---|---|---|
| 실행 방식 | Explicit (명시적) | Implicit (암묵적) | Implicit |
| Progressive Disclosure | Full | Full | Progressive |
| Context 소모 | 전체 로드 | 전체 로드 | 필요한 부분만 로드 |
| 실행 Context | Main Agent | Sub-Agent | Main Agent |
| Deterministic 지원 | Non-Deterministic | Non-Deterministic | Deterministic 가능 |
실행 방식
- Explicit: 사용자가 직접 명령어를 지정 (예:
/commit) - Implicit: Description에 기반하여 에이전트가 자동으로 선택
Custom Command는 사용자가 Slash Command를 직접 입력해야 하지만, Skills와 Custom Sub-Agent는 에이전트가 상황에 맞게 자동으로 선택한다.
실행 Context
Custom Sub-Agent는 별도의 Sub-Agent Context에서 실행되기 때문에 Main Agent의 Context를 절약할 수 있지만, Sub-Agent에서 실행된 세부 과정은 Main Agent가 알 수 없다(Input과 Output만 전달). 반면 Skills와 Custom Command는 Main Agent Context에서 직접 실행된다.
Deterministic 지원
Skills는 스크립트 기반 실행을 통해 Deterministic한 결과를 보장할 수 있도록 설계되었다. Custom Command와 Custom Sub-Agent도 프롬프트를 세밀하게 조정하여 어느 정도 일관성을 확보할 수 있지만, Skills만큼 명확하게 지원하지는 않는다.
실습: PDF 스킬 사용 예제
Anthropic이 제공하는 공식 PDF 스킬을 사용한 실습 과정은 다음과 같다:
1. 스킬 구조 확인
.claude/skills/pdf/ 폴더 내부:
skill.md: 메타데이터와 기본 설명reference.md: 상세한 사용 예제forms.md: PDF Form 채우기 관련 지침scripts/: 파이썬 스크립트들 (extract_fields.py등)
skill.md의 본문은 5,000 토큰 이하로 제한되어 있으며, 각 기능별로 별도 파일을 참조하도록 구성되어 있다.
2. 스킬 인식 확인
User: tell me what skills you have
Claude: I have the pdf skill available...
Context를 완전히 초기화한 상태에서도 Claude는 즉시 PDF 스킬을 인식한다. 이는 Front Matter가 항상 로드되어 있기 때문이다.
3. PDF를 이미지로 변환
User: convert test.pdf to images
Claude는:
- Front Matter를 보고 PDF 스킬이 적합하다고 판단
skill.md본문을 로드하여 이미지 변환 방법 확인- 필요한 스크립트를 실행하여 4페이지의 PDF를 4개의 이미지로 변환
4. Deterministic 실행 검증
동일한 명령을 다시 실행하면:
- 완전히 동일한 프로세스
- 완전히 동일한 결과
LLM의 Non-Deterministic한 특성에도 불구하고, 스크립트 기반 실행으로 인해 재현 가능한 결과를 얻을 수 있다.
결론: Skills를 언제 사용해야 하는가
Claude Skills는 다음과 같은 상황에서 강력한 이점을 제공한다:
- Context 효율성이 중요한 경우: 대량의 참조 자료나 스크립트를 포함하되, 필요한 부분만 선택적으로 로드하고 싶을 때
- Deterministic한 결과가 필요한 경우: 동일한 Input에 대해 항상 동일한 Output을 보장해야 하는 작업
- 스크립트 기반 자동화: 미리 작성된 코드를 에이전트가 상황에 맞게 자동으로 실행하도록 하고 싶을 때
- 복잡한 도메인 지식의 모듈화: PDF 처리, BigQuery 쿼리, Excel 자동화 등 특정 도메인의 전문 지식을 재사용 가능한 형태로 패키징할 때
Custom Command는 사용자가 직접 제어하고 싶을 때, Custom Sub-Agent는 독립적인 작업을 Main Agent와 분리하고 싶을 때 유용하다. Skills는 이 둘의 중간 지점에서 자동화와 효율성, 그리고 일관성을 동시에 제공하는 강력한 도구로 자리잡는다.