로드 중
로드 중

스킬

스킬(Skills)은 Claude가 특화된 작업에서 성능을 향상시키기 위해 동적으로 로드하는 지침, 스크립트, 리소스 폴더입니다. 모든 스킬의 핵심에는 SKILL.md 파일이 있습니다 — 한 번 업로드한 다음 어떤 messages.create 호출에든 첨부할 수 있는 패키지화된 지침 세트입니다. 여러분은 Claude에게 여러분이 어떤 일을 어떻게 하는지를 가르치는 것입니다: 여러분의 상태 보고서 형식, 여러분의 검토 체크리스트, 여러분의 릴리스 노트 말이죠. Claude는 스킬을 읽고, 절차를 따르며, 여러분이 원하는 형태로 결과물을 생성합니다.

스킬 vs. 도구

이 둘의 차이를 명확히 해두는 것이 좋습니다. 서로 다른 문제를 해결하기 때문입니다:

  • 도구는 Claude를 데이터와 작업에 연결합니다. "이 코드 섹션을 조회해줘", "이 이메일을 보내줘" — Claude가 도구를 호출하면 다른 무언가가 실행됩니다.
  • 스킬은 Claude에게 절차를 가르칩니다. "이 템플릿에 따라 일일 상태 보고서를 생성해줘" — 이는 Claude가 읽고 따르는 플레이북이며, 때로는 번들로 제공된 스크립트를 직접 실행하는 것을 의미하기도 합니다.

기억하기 쉬운 방법: 도구는 Claude가 무엇을 할 수 있는지에 관한 것이고, 스킬은 여러분이 어떻게 그것이 이루어지길 원하는지에 관한 것입니다.

도구와 스킬의 나란한 비교: 도구는 데이터에 연결하고, 작업을 수행하며, 코드를 실행합니다 — Claude가 할 수 있는 것; 스킬은 지침만으로 절차를 가르치며, 코드는 실행되지 않습니다 — 여러분이 원하는 방식

한 가지 더 알아둘 점: 스킬은 시작 시 컨텍스트에 전체가 로드되지 않습니다. 처음에는 이름과 설명만 로드됩니다. 에이전트가 어떤 스킬이 관련 있다고 판단하면, 그때 전체 스킬을 컨텍스트에 로드합니다. 이를 통해 많은 스킬이 사용 가능한 상황에서도 컨텍스트를 가볍게 유지할 수 있습니다.

스킬 업로드하기

스킬은 워크스페이스에 한 번 업로드된 후 ID로 참조됩니다. Claude Platform에서 직접 업로드하거나 프로그래밍 방식으로 수행할 수 있습니다:

python
skill = client.skills.create(
    display_name="Status Report Generator",
    files=files_from_dir("status-report-skill"),  # folder containing SKILL.md
)

print(skill.id)  # reference this ID in future requests

이 예시에서는 상태 보고서 생성기를 만들고자 합니다. 좋은 상태 보고서를 만드는 모든 규칙 — 섹션, 어조, 요약 방법, 블로커 처리 방법 — 은 미리 패키지화된 스킬 안에 들어 있습니다. 활동 로그 자체는 요청 시점에 전달되는 단순한 문자열일 뿐입니다.

요청에 스킬 첨부하기

스킬은 컨테이너 구성을 통해 요청에 첨부됩니다 — 컨테이너 내부의 skills 배열로, 각 항목은 skill_id와 version을 지정합니다. 다음은 상태 보고서 생성기의 전체 호출입니다:

python
response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    container={
        "skills": [
            {
                "type": "custom",
                "skill_id": skill.id,
                "version": "latest",
            }
        ]
    },
    tools=[
        {
            "type": "code_execution_20250825",
            "name": "code_execution",
        }
    ],
    messages=[
        {
            "role": "user",
            "content": f"Generate the daily status report from this activity log:\n\n{activity_log}",
        }
    ],
)

몇 가지 짚고 넘어갈 점이 있습니다:

  • 베타 헤더 없이 표준 client.messages.create를 호출하고 있습니다. 스킬은 Claude API에서 정식 출시되었으므로 skills-2025-10-02 베타 헤더는 더 이상 필요하지 않습니다. 여전히 이를 보내는 요청도 변경 없이 계속 작동합니다.
  • container.skills는 스킬이 첨부되는 위치입니다. 이는 리스트이므로 하나의 호출에 여러 스킬을 겹쳐서 적용할 수 있습니다.
  • 여기서는 코드 실행도 켜져 있습니다. 이는 필수입니다: API에서 스킬은 코드 실행 도구의 컨테이너 내부에서 실행되며, 이것이 스킬 절차가 터미널에서 스크립트를 실행하는 것과 같은 실제 작업을 할 수 있게 해줍니다.

실행하기

출력 결과는 스킬이 지정한 형식 그대로 포맷된 상태 보고서입니다. 섹션, 어조, 블로커 처리 — 이 모든 것이 여러분이 업로드한 SKILL.md 파일에서 비롯됩니다. 사용자 프롬프트는 한 줄이고, 절차는 스킬 안에 들어 있습니다.

생성된 일일 상태 보고서의 터미널 출력, Done과 Blockers 섹션 및 스킬에 의해 포맷된 요약

프로덕션 앱에서는 이런 방식으로 팀이 전체 기능에 걸쳐 출력을 표준화합니다. 이 일일 상태 보고서 엔드포인트를 사용하면, 모든 PM이 동일한 구조, 동일한 어조, 동일한 섹션을 동일한 순서로 얻게 됩니다 — 누구도 프롬프트에 템플릿을 복사-붙여넣기 할 필요 없이 말이죠.

Daily reports 페이지가 있는 프로젝트 관리 앱. 각 프로젝트의 활동 로그에는 스킬이 뒷받침하는 원클릭 Generate report 버튼이 있습니다

요약

  • 스킬은 여러분의 절차를 패키지화합니다. SKILL.md 파일(그리고 모든 스크립트와 리소스)은 Claude에게 여러분이 원하는 방식으로 무언가를 수행하는 방법을 가르칩니다.
  • 도구 vs. 스킬: 도구는 Claude가 무엇을 할 수 있는지에 관한 것이고, 스킬은 여러분이 그것이 어떻게 이루어지길 원하는지에 관한 것입니다.
  • 스킬은 점진적으로 로드됩니다. 시작 시에는 이름과 설명만 로드되며, 에이전트가 사용하기로 결정하면 전체 스킬이 컨텍스트에 로드됩니다.
  • client.skills.create로 한 번 업로드한 다음, 어떤 messages.create 호출에서든 container.skills로 첨부하세요 — 리스트이므로 여러 스킬을 겹쳐서 적용할 수 있습니다.
  • 스킬의 절차가 실제 작업을 수행해야 할 때는 코드 실행과 함께 사용하세요.
  • 어떻게가 무엇만큼 중요할 때 스킬을 활용하세요.