Loading...
    • 개발자 가이드
    • API 레퍼런스
    • MCP
    • 리소스
    • 릴리스 노트
    Search...
    ⌘K
    시작하기
    Claude 소개빠른 시작
    모델 및 가격
    모델 개요모델 선택Claude 4.6의 새로운 기능마이그레이션 가이드모델 지원 중단가격
    Claude로 구축하기
    기능 개요Messages API 사용중지 사유 처리프롬프트 모범 사례
    컨텍스트 관리
    컨텍스트 윈도우압축컨텍스트 편집
    기능
    프롬프트 캐싱확장 사고적응형 사고노력 수준메시지 스트리밍배치 처리인용다국어 지원토큰 카운팅임베딩비전PDF 지원Files API검색 결과구조화된 출력
    도구
    개요도구 사용 구현 방법세분화된 도구 스트리밍Bash 도구코드 실행 도구프로그래밍 방식 도구 호출컴퓨터 사용 도구텍스트 편집기 도구웹 페치 도구웹 검색 도구메모리 도구도구 검색 도구
    Agent Skills
    개요빠른 시작모범 사례엔터프라이즈용 SkillsAPI로 Skills 사용
    Agent SDK
    개요빠른 시작TypeScript SDKTypeScript V2 (미리보기)Python SDK마이그레이션 가이드
    API에서 MCP
    MCP 커넥터원격 MCP 서버
    서드파티 플랫폼의 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    프롬프트 엔지니어링
    개요프롬프트 생성기프롬프트 템플릿 사용프롬프트 개선기명확하고 직접적으로 작성예시 사용 (멀티샷 프롬프팅)Claude에게 생각하게 하기 (CoT)XML 태그 사용Claude에게 역할 부여 (시스템 프롬프트)복잡한 프롬프트 연결긴 컨텍스트 팁확장 사고 팁
    테스트 및 평가
    성공 기준 정의테스트 케이스 개발평가 도구 사용지연 시간 줄이기
    가드레일 강화
    환각 줄이기출력 일관성 높이기탈옥 방지스트리밍 거부프롬프트 유출 줄이기Claude 캐릭터 유지
    관리 및 모니터링
    Admin API 개요데이터 상주워크스페이스사용량 및 비용 APIClaude Code Analytics API제로 데이터 보존
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Agent Skills

    API로 Agent Skills 사용하기

    API를 통해 Claude의 기능을 확장하는 Agent Skills 사용 방법을 알아보세요.

    Agent Skills는 체계적으로 구성된 지침, 스크립트, 리소스 폴더를 통해 Claude의 기능을 확장합니다. 이 가이드에서는 사전 구축된 Skills와 커스텀 Skills를 Claude API와 함께 사용하는 방법을 보여줍니다.

    요청/응답 스키마 및 모든 매개변수를 포함한 전체 API 레퍼런스는 다음을 참조하세요:

    • Skill 관리 API 레퍼런스 - Skills의 CRUD 작업
    • Skill 버전 API 레퍼런스 - 버전 관리

    빠른 링크

    Agent Skills 시작하기

    첫 번째 Skill 만들기

    커스텀 Skills 만들기

    Skills 작성 모범 사례

    개요

    Agent Skills의 아키텍처와 실제 활용 사례에 대한 심층 분석은 엔지니어링 블로그를 읽어보세요: Equipping agents for the real world with Agent Skills.

    Skills는 코드 실행 도구를 통해 Messages API와 통합됩니다. Anthropic이 관리하는 사전 구축된 Skills를 사용하든 직접 업로드한 커스텀 Skills를 사용하든, 통합 형태는 동일합니다—둘 다 코드 실행이 필요하며 동일한 container 구조를 사용합니다.

    Skills 사용하기

    Skills는 출처에 관계없이 Messages API에서 동일하게 통합됩니다. container 매개변수에 skill_id, type, 그리고 선택적으로 version을 지정하면 코드 실행 환경에서 실행됩니다.

    두 가지 출처의 Skills를 사용할 수 있습니다:

    항목Anthropic Skills커스텀 Skills
    Type 값anthropiccustom
    Skill ID짧은 이름: pptx, xlsx, docx, pdf생성됨: skill_01AbCdEfGhIjKlMnOpQrStUv
    버전 형식날짜 기반: 20251013 또는 latest에포크 타임스탬프: 1759178010641129 또는 latest
    관리Anthropic이 사전 구축 및 유지 관리Skills API를 통해 업로드 및 관리
    가용성모든 사용자에게 제공워크스페이스 전용

    두 Skill 출처 모두 Skills 목록 엔드포인트에서 반환됩니다(source 매개변수를 사용하여 필터링). 통합 형태와 실행 환경은 동일하며—유일한 차이점은 Skills의 출처와 관리 방식입니다.

    사전 요구 사항

    Skills를 사용하려면 다음이 필요합니다:

    1. Console에서 발급받은 Anthropic API 키
    2. 베타 헤더:
      • code-execution-2025-08-25 - 코드 실행 활성화 (Skills에 필수)
      • skills-2025-10-02 - Skills API 활성화
      • files-api-2025-04-14 - 컨테이너에서 파일 업로드/다운로드용
    3. 요청에서 코드 실행 도구 활성화

    Messages에서 Skills 사용하기

    Container 매개변수

    Skills는 Messages API의 container 매개변수를 사용하여 지정합니다. 요청당 최대 8개의 Skills를 포함할 수 있습니다.

    구조는 Anthropic Skills와 커스텀 Skills 모두 동일합니다—필수 type과 skill_id를 지정하고, 선택적으로 version을 포함하여 특정 버전에 고정할 수 있습니다:

    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [
                {
                    "type": "anthropic",
                    "skill_id": "pptx",
                    "version": "latest"
                }
            ]
        },
        messages=[{
            "role": "user",
            "content": "Create a presentation about renewable energy"
        }],
        tools=[{
            "type": "code_execution_20250825",
            "name": "code_execution"
        }]
    )

    생성된 파일 다운로드

    Skills가 문서(Excel, PowerPoint, PDF, Word)를 생성하면 응답에 file_id 속성을 반환합니다. 이 파일을 다운로드하려면 Files API를 사용해야 합니다.

    작동 방식:

    1. Skills가 코드 실행 중 파일을 생성합니다
    2. 응답에 생성된 각 파일의 file_id가 포함됩니다
    3. Files API를 사용하여 실제 파일 콘텐츠를 다운로드합니다
    4. 로컬에 저장하거나 필요에 따라 처리합니다

    예시: Excel 파일 생성 및 다운로드

    import anthropic
    
    client = anthropic.Anthropic()
    
    # 1단계: Skill을 사용하여 파일 생성
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [
                {"type": "anthropic", "skill_id": "xlsx", "version": "latest"}
            ]
        },
        messages=[{
            "role": "user",
            "content": "Create an Excel file with a simple budget spreadsheet"
        }],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )
    
    # 2단계: 응답에서 파일 ID 추출
    def extract_file_ids(response):
        file_ids = []
        for item in response.content:
            if item.type == 'bash_code_execution_tool_result':
                content_item = item.content
                if content_item.type == 'bash_code_execution_result':
                    for file in content_item.content:
                        if hasattr(file, 'file_id'):
                            file_ids.append(file.file_id)
        return file_ids
    
    # 3단계: Files API를 사용하여 파일 다운로드
    for file_id in extract_file_ids(response):
        file_metadata = client.beta.files.retrieve_metadata(
            file_id=file_id,
            betas=["files-api-2025-04-14"]
        )
        file_content = client.beta.files.download(
            file_id=file_id,
            betas=["files-api-2025-04-14"]
        )
    
        # 4단계: 디스크에 저장
        file_content.write_to_file(file_metadata.filename)
        print(f"Downloaded: {file_metadata.filename}")

    추가 Files API 작업:

    # 파일 메타데이터 가져오기
    file_info = client.beta.files.retrieve_metadata(
        file_id=file_id,
        betas=["files-api-2025-04-14"]
    )
    print(f"Filename: {file_info.filename}, Size: {file_info.size_bytes} bytes")
    
    # 모든 파일 목록 조회
    files = client.beta.files.list(betas=["files-api-2025-04-14"])
    for file in files.data:
        print(f"{file.filename} - {file.created_at}")
    
    # 파일 삭제
    client.beta.files.delete(
        file_id=file_id,
        betas=["files-api-2025-04-14"]
    )

    Files API에 대한 전체 세부 사항은 Files API 문서를 참조하세요.

    멀티턴 대화

    컨테이너 ID를 지정하여 여러 메시지에 걸쳐 동일한 컨테이너를 재사용합니다:

    # 첫 번째 요청이 컨테이너를 생성합니다
    response1 = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [
                {"type": "anthropic", "skill_id": "xlsx", "version": "latest"}
            ]
        },
        messages=[{"role": "user", "content": "Analyze this sales data"}],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )
    
    # 동일한 컨테이너로 대화 계속
    messages = [
        {"role": "user", "content": "Analyze this sales data"},
        {"role": "assistant", "content": response1.content},
        {"role": "user", "content": "What was the total revenue?"}
    ]
    
    response2 = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "id": response1.container.id,  # 컨테이너 재사용
            "skills": [
                {"type": "anthropic", "skill_id": "xlsx", "version": "latest"}
            ]
        },
        messages=messages,
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )

    장시간 실행 작업

    Skills는 여러 턴이 필요한 작업을 수행할 수 있습니다. pause_turn 중지 사유를 처리하세요:

    messages = [{"role": "user", "content": "Process this large dataset"}]
    max_retries = 10
    
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [
                {"type": "custom", "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv", "version": "latest"}
            ]
        },
        messages=messages,
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )
    
    # 장시간 작업을 위한 pause_turn 처리
    for i in range(max_retries):
        if response.stop_reason != "pause_turn":
            break
    
        messages.append({"role": "assistant", "content": response.content})
        response = client.beta.messages.create(
            model="claude-opus-4-6",
            max_tokens=4096,
            betas=["code-execution-2025-08-25", "skills-2025-10-02"],
            container={
                "id": response.container.id,
                "skills": [
                    {"type": "custom", "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv", "version": "latest"}
                ]
            },
            messages=messages,
            tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
        )

    응답에 pause_turn 중지 사유가 포함될 수 있으며, 이는 API가 장시간 실행되는 Skill 작업을 일시 중지했음을 나타냅니다. Claude가 턴을 계속할 수 있도록 응답을 그대로 후속 요청에 제공하거나, 대화를 중단하고 추가 안내를 제공하려면 콘텐츠를 수정할 수 있습니다.

    여러 Skills 사용하기

    복잡한 워크플로를 처리하기 위해 단일 요청에서 여러 Skills를 결합합니다:

    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [
                {
                    "type": "anthropic",
                    "skill_id": "xlsx",
                    "version": "latest"
                },
                {
                    "type": "anthropic",
                    "skill_id": "pptx",
                    "version": "latest"
                },
                {
                    "type": "custom",
                    "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
                    "version": "latest"
                }
            ]
        },
        messages=[{
            "role": "user",
            "content": "Analyze sales data and create a presentation"
        }],
        tools=[{
            "type": "code_execution_20250825",
            "name": "code_execution"
        }]
    )

    커스텀 Skills 관리

    Skill 생성하기

    커스텀 Skill을 업로드하여 워크스페이스에서 사용할 수 있게 합니다. 디렉토리 경로 또는 개별 파일 객체를 사용하여 업로드할 수 있습니다.

    import anthropic
    
    client = anthropic.Anthropic()
    
    # 옵션 1: files_from_dir 헬퍼 사용 (Python 전용, 권장)
    from anthropic.lib import files_from_dir
    
    skill = client.beta.skills.create(
        display_title="Financial Analysis",
        files=files_from_dir("/path/to/financial_analysis_skill"),
        betas=["skills-2025-10-02"]
    )
    
    # 옵션 2: zip 파일 사용
    skill = client.beta.skills.create(
        display_title="Financial Analysis",
        files=[("skill.zip", open("financial_analysis_skill.zip", "rb"))],
        betas=["skills-2025-10-02"]
    )
    
    # 옵션 3: 파일 튜플 사용 (filename, file_content, mime_type)
    skill = client.beta.skills.create(
        display_title="Financial Analysis",
        files=[
            ("financial_skill/SKILL.md", open("financial_skill/SKILL.md", "rb"), "text/markdown"),
            ("financial_skill/analyze.py", open("financial_skill/analyze.py", "rb"), "text/x-python"),
        ],
        betas=["skills-2025-10-02"]
    )
    
    print(f"Created skill: {skill.id}")
    print(f"Latest version: {skill.latest_version}")

    요구 사항:

    • 최상위 레벨에 SKILL.md 파일을 포함해야 합니다
    • 모든 파일은 경로에 공통 루트 디렉토리를 지정해야 합니다
    • 총 업로드 크기는 8MB 미만이어야 합니다
    • YAML 프론트매터 요구 사항:
      • name: 최대 64자, 소문자/숫자/하이픈만 허용, XML 태그 불가, 예약어 불가 ("anthropic", "claude")
      • description: 최대 1024자, 비어있지 않아야 함, XML 태그 불가

    전체 요청/응답 스키마는 Skill 생성 API 레퍼런스를 참조하세요.

    Skills 목록 조회

    Anthropic 사전 구축 Skills와 커스텀 Skills를 포함하여 워크스페이스에서 사용 가능한 모든 Skills를 조회합니다. source 매개변수를 사용하여 Skill 유형별로 필터링합니다:

    # 모든 Skills 목록 조회
    skills = client.beta.skills.list(
        betas=["skills-2025-10-02"]
    )
    
    for skill in skills.data:
        print(f"{skill.id}: {skill.display_title} (source: {skill.source})")
    
    # 커스텀 Skills만 목록 조회
    custom_skills = client.beta.skills.list(
        source="custom",
        betas=["skills-2025-10-02"]
    )

    페이지네이션 및 필터링 옵션은 Skills 목록 API 레퍼런스를 참조하세요.

    Skill 조회하기

    특정 Skill에 대한 세부 정보를 가져옵니다:

    skill = client.beta.skills.retrieve(
        skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv",
        betas=["skills-2025-10-02"]
    )
    
    print(f"Skill: {skill.display_title}")
    print(f"Latest version: {skill.latest_version}")
    print(f"Created: {skill.created_at}")

    Skill 삭제하기

    Skill을 삭제하려면 먼저 모든 버전을 삭제해야 합니다:

    # 1단계: 모든 버전 삭제
    versions = client.beta.skills.versions.list(
        skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv",
        betas=["skills-2025-10-02"]
    )
    
    for version in versions.data:
        client.beta.skills.versions.delete(
            skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv",
            version=version.version,
            betas=["skills-2025-10-02"]
        )
    
    # 2단계: Skill 삭제
    client.beta.skills.delete(
        skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv",
        betas=["skills-2025-10-02"]
    )

    기존 버전이 있는 Skill을 삭제하려고 하면 400 오류가 반환됩니다.

    버전 관리

    Skills는 업데이트를 안전하게 관리하기 위한 버전 관리를 지원합니다:

    Anthropic 관리 Skills:

    • 버전은 날짜 형식을 사용합니다: 20251013
    • 업데이트가 이루어지면 새 버전이 릴리스됩니다
    • 안정성을 위해 정확한 버전을 지정하세요

    커스텀 Skills:

    • 자동 생성된 에포크 타임스탬프: 1759178010641129
    • 항상 최신 버전을 가져오려면 "latest"를 사용하세요
    • Skill 파일을 업데이트할 때 새 버전을 생성하세요
    # 새 버전 생성
    from anthropic.lib import files_from_dir
    
    new_version = client.beta.skills.versions.create(
        skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv",
        files=files_from_dir("/path/to/updated_skill"),
        betas=["skills-2025-10-02"]
    )
    
    # 특정 버전 사용
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [{
                "type": "custom",
                "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
                "version": new_version.version
            }]
        },
        messages=[{"role": "user", "content": "Use updated Skill"}],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )
    
    # 최신 버전 사용
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [{
                "type": "custom",
                "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
                "version": "latest"
            }]
        },
        messages=[{"role": "user", "content": "Use latest Skill version"}],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )

    전체 세부 사항은 Skill 버전 생성 API 레퍼런스를 참조하세요.


    Skills 로딩 방식

    컨테이너에서 Skills를 지정하면:

    1. 메타데이터 탐색: Claude는 시스템 프롬프트에서 각 Skill의 메타데이터(이름, 설명)를 확인합니다
    2. 파일 로딩: Skill 파일이 컨테이너의 /skills/{directory}/에 복사됩니다
    3. 자동 사용: Claude는 요청과 관련이 있을 때 자동으로 Skills를 로드하고 사용합니다
    4. 조합: 복잡한 워크플로우를 위해 여러 Skills가 함께 조합됩니다

    점진적 공개 아키텍처는 효율적인 컨텍스트 사용을 보장합니다—Claude는 필요할 때만 전체 Skill 지침을 로드합니다.


    사용 사례

    조직용 Skills

    브랜드 & 커뮤니케이션

    • 문서에 회사별 서식(색상, 글꼴, 레이아웃) 적용
    • 조직 템플릿에 따른 커뮤니케이션 생성
    • 모든 출력물에서 일관된 브랜드 가이드라인 보장

    프로젝트 관리

    • 회사별 형식(OKR, 의사결정 로그)으로 노트 구조화
    • 팀 규칙에 따른 작업 생성
    • 표준화된 회의 요약 및 상태 업데이트 작성

    비즈니스 운영

    • 회사 표준 보고서, 제안서 및 분석 작성
    • 회사별 분석 절차 실행
    • 조직 템플릿에 따른 재무 모델 생성

    개인용 Skills

    콘텐츠 제작

    • 커스텀 문서 템플릿
    • 전문 서식 및 스타일링
    • 도메인별 콘텐츠 생성

    데이터 분석

    • 커스텀 데이터 처리 파이프라인
    • 전문 시각화 템플릿
    • 산업별 분석 방법

    개발 & 자동화

    • 코드 생성 템플릿
    • 테스트 프레임워크
    • 배포 워크플로우

    예시: 재무 모델링

    Excel과 커스텀 DCF 분석 Skills를 결합합니다:

    # 커스텀 DCF 분석 Skill 생성
    from anthropic.lib import files_from_dir
    
    dcf_skill = client.beta.skills.create(
        display_title="DCF Analysis",
        files=files_from_dir("/path/to/dcf_skill"),
        betas=["skills-2025-10-02"]
    )
    
    # Excel과 함께 사용하여 재무 모델 생성
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02"],
        container={
            "skills": [
                {"type": "anthropic", "skill_id": "xlsx", "version": "latest"},
                {"type": "custom", "skill_id": dcf_skill.id, "version": "latest"}
            ]
        },
        messages=[{
            "role": "user",
            "content": "Build a DCF valuation model for a SaaS company with the attached financials"
        }],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )

    제한 사항 및 제약 조건

    요청 제한

    • 요청당 최대 Skills 수: 8
    • 최대 Skill 업로드 크기: 8MB (모든 파일 합산)
    • YAML 프론트매터 요구 사항:
      • name: 최대 64자, 소문자/숫자/하이픈만 허용, XML 태그 불가, 예약어 불가
      • description: 최대 1024자, 비어 있지 않아야 함, XML 태그 불가

    환경 제약 조건

    Skills는 다음과 같은 제한이 있는 코드 실행 컨테이너에서 실행됩니다:

    • 네트워크 접근 불가 - 외부 API 호출 불가
    • 런타임 패키지 설치 불가 - 사전 설치된 패키지만 사용 가능
    • 격리된 환경 - 각 요청마다 새로운 컨테이너가 제공됨

    사용 가능한 패키지는 코드 실행 도구 문서를 참조하세요.


    모범 사례

    여러 Skills를 사용해야 하는 경우

    작업이 여러 문서 유형이나 도메인을 포함할 때 Skills를 결합하세요:

    좋은 사용 사례:

    • 데이터 분석(Excel) + 프레젠테이션 생성(PowerPoint)
    • 보고서 생성(Word) + PDF로 내보내기
    • 커스텀 도메인 로직 + 문서 생성

    피해야 할 사항:

    • 사용하지 않는 Skills 포함(성능에 영향)

    버전 관리 전략

    프로덕션용:

    # 안정성을 위해 특정 버전에 고정
    container={
        "skills": [{
            "type": "custom",
            "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
            "version": "1759178010641129"  # 특정 버전
        }]
    }

    개발용:

    # 활발한 개발 시 latest 사용
    container={
        "skills": [{
            "type": "custom",
            "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
            "version": "latest"  # 항상 최신 버전 가져오기
        }]
    }

    프롬프트 캐싱 고려 사항

    프롬프트 캐싱을 사용할 때, 컨테이너의 Skills 목록을 변경하면 캐시가 무효화됩니다:

    # 첫 번째 요청이 캐시를 생성
    response1 = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02", "prompt-caching-2024-07-31"],
        container={
            "skills": [
                {"type": "anthropic", "skill_id": "xlsx", "version": "latest"}
            ]
        },
        messages=[{"role": "user", "content": "Analyze sales data"}],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )
    
    # Skills 추가/제거 시 캐시가 무효화됨
    response2 = client.beta.messages.create(
        model="claude-opus-4-6",
        max_tokens=4096,
        betas=["code-execution-2025-08-25", "skills-2025-10-02", "prompt-caching-2024-07-31"],
        container={
            "skills": [
                {"type": "anthropic", "skill_id": "xlsx", "version": "latest"},
                {"type": "anthropic", "skill_id": "pptx", "version": "latest"}  # 캐시 미스
            ]
        },
        messages=[{"role": "user", "content": "Create a presentation"}],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
    )

    최적의 캐싱 성능을 위해 요청 간에 Skills 목록을 일관되게 유지하세요.

    오류 처리

    Skill 관련 오류를 우아하게 처리하세요:

    try:
        response = client.beta.messages.create(
            model="claude-opus-4-6",
            max_tokens=4096,
            betas=["code-execution-2025-08-25", "skills-2025-10-02"],
            container={
                "skills": [
                    {"type": "custom", "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv", "version": "latest"}
                ]
            },
            messages=[{"role": "user", "content": "Process data"}],
            tools=[{"type": "code_execution_20250825", "name": "code_execution"}]
        )
    except anthropic.BadRequestError as e:
        if "skill" in str(e):
            print(f"Skill error: {e}")
            # Skill 관련 오류 처리
        else:
            raise

    다음 단계

    API 레퍼런스

    모든 엔드포인트가 포함된 전체 API 레퍼런스

    작성 가이드

    효과적인 Skills 작성을 위한 모범 사례

    코드 실행 도구

    코드 실행 환경에 대해 알아보기

    Was this page helpful?

    • Skills 사용하기
    • Messages에서 Skills 사용하기
    • Container 매개변수
    • 여러 Skills 사용하기
    • 커스텀 Skills 관리
    • Skill 생성하기
    • Skills 목록 조회
    • Skill 조회하기
    • Skill 삭제하기
    • Skills 로딩 방식
    • 조직용 Skills
    • 개인용 Skills
    • 여러 Skills를 사용해야 하는 경우