Loading...
    • Panduan Pengembang
    • Referensi API
    • MCP
    • Sumber daya
    • Catatan Rilis
    Search...
    ⌘K
    Langkah pertama
    Pengenalan ClaudeMulai cepat
    Model & harga
    Ikhtisar modelMemilih modelYang baru di Claude 4.6Panduan migrasiPenghentian modelHarga
    Bangun dengan Claude
    Ikhtisar fiturMenggunakan Messages APIMenangani alasan berhentiPraktik terbaik prompting
    Kemampuan model
    Extended thinkingAdaptive thinkingEffortMode cepat (pratinjau penelitian)Output terstrukturKutipanStreaming MessagesPemrosesan batchDukungan PDFHasil pencarianDukungan multibahasaEmbeddingsVisi
    Alat
    IkhtisarCara mengimplementasikan penggunaan alatAlat pencarian webAlat pengambilan webAlat eksekusi kodeAlat memoriAlat BashAlat penggunaan komputerAlat editor teks
    Infrastruktur alat
    Pencarian alatPemanggilan alat terprogramStreaming alat berbutir halus
    Manajemen konteks
    Jendela konteksPemadatanPengeditan konteksPrompt cachingPenghitungan token
    File & aset
    Files API
    Agent Skills
    IkhtisarMulai cepatPraktik terbaikSkills untuk enterpriseMenggunakan Skills dengan API
    Agent SDK
    IkhtisarMulai cepatTypeScript SDKTypeScript V2 (pratinjau)Python SDKPanduan Migrasi
    MCP di API
    Konektor MCPServer MCP jarak jauh
    Claude di platform pihak ketiga
    Amazon BedrockMicrosoft FoundryVertex AI
    Prompt engineering
    IkhtisarPembuat promptGunakan template promptPenyempurna promptJadilah jelas dan langsungGunakan contoh (multishot prompting)Biarkan Claude berpikir (CoT)Gunakan tag XMLBerikan Claude peran (system prompts)Rantai prompt kompleksTips konteks panjangTips extended thinking
    Uji & evaluasi
    Tentukan kriteria kesuksesanKembangkan kasus ujiMenggunakan Alat EvaluasiMengurangi latensi
    Perkuat guardrails
    Kurangi halusinasiTingkatkan konsistensi outputMitigasi jailbreaksStreaming penolakanKurangi kebocoran promptJaga Claude tetap dalam karakter
    Administrasi dan pemantauan
    Ikhtisar Admin APIResidensi dataRuang kerjaUsage and Cost APIClaude Code Analytics APIZero Data Retention
    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

    Menggunakan Agent Skills dengan API

    Pelajari cara menggunakan Agent Skills untuk memperluas kemampuan Claude melalui API.

    Agent Skills memperluas kemampuan Claude melalui folder terorganisir yang berisi instruksi, skrip, dan sumber daya. Panduan ini menunjukkan cara menggunakan Skills yang sudah dibangun sebelumnya dan Skills khusus dengan Claude API.

    Untuk referensi API lengkap termasuk skema permintaan/respons dan semua parameter, lihat:

    • Referensi API Manajemen Skill - Operasi CRUD untuk Skills
    • Referensi API Versi Skill - Manajemen versi

    This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.

    Tautan Cepat

    Mulai dengan Agent Skills

    Buat Skill pertama Anda

    Buat Skills Khusus

    Praktik terbaik untuk membuat Skills

    Ikhtisar

    Untuk penjelasan mendalam tentang arsitektur dan aplikasi dunia nyata dari Agent Skills, baca blog teknik kami: Equipping agents for the real world with Agent Skills.

    Skills terintegrasi dengan Messages API melalui alat eksekusi kode. Baik menggunakan Skills yang sudah dibangun sebelumnya yang dikelola oleh Anthropic atau Skills khusus yang telah Anda unggah, bentuk integrasi identik—keduanya memerlukan eksekusi kode dan menggunakan struktur container yang sama.

    Menggunakan Skills

    Skills terintegrasi secara identik dalam Messages API terlepas dari sumbernya. Anda menentukan Skills dalam parameter container dengan skill_id, type, dan version opsional, dan mereka dieksekusi di lingkungan eksekusi kode.

    Anda dapat menggunakan Skills dari dua sumber:

    AspekAnthropic SkillsCustom Skills
    Nilai Typeanthropiccustom
    Skill IDsNama pendek: pptx, xlsx, docx, pdfDihasilkan: skill_01AbCdEfGhIjKlMnOpQrStUv
    Format VersiBerbasis tanggal: 20251013 atau latestEpoch timestamp: 1759178010641129 atau latest
    ManajemenDibangun sebelumnya dan dikelola oleh AnthropicUnggah dan kelola melalui Skills API
    KetersediaanTersedia untuk semua penggunaPribadi untuk workspace Anda

    Kedua sumber skill dikembalikan oleh endpoint List Skills (gunakan parameter source untuk memfilter). Bentuk integrasi dan lingkungan eksekusi identik—satu-satunya perbedaan adalah dari mana Skills berasal dan bagaimana mereka dikelola.

    Prasyarat

    Untuk menggunakan Skills, Anda memerlukan:

    1. Kunci API Anthropic dari Console
    2. Header beta:
      • code-execution-2025-08-25 - Mengaktifkan eksekusi kode (diperlukan untuk Skills)
      • skills-2025-10-02 - Mengaktifkan Skills API
      • files-api-2025-04-14 - Untuk mengunggah/mengunduh file ke/dari container
    3. Alat eksekusi kode diaktifkan dalam permintaan Anda

    Menggunakan Skills dalam Messages

    Parameter Container

    Skills ditentukan menggunakan parameter container dalam Messages API. Anda dapat menyertakan hingga 8 Skills per permintaan.

    Strukturnya identik untuk Skills Anthropic dan custom—tentukan type dan skill_id yang diperlukan, dan secara opsional sertakan version untuk mengikat ke versi tertentu:

    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"}],
    )

    Mengunduh File yang Dihasilkan

    Ketika Skills membuat dokumen (Excel, PowerPoint, PDF, Word), mereka mengembalikan atribut file_id dalam respons. Anda harus menggunakan Files API untuk mengunduh file-file ini.

    Cara kerjanya:

    1. Skills membuat file selama eksekusi kode
    2. Respons mencakup file_id untuk setiap file yang dibuat
    3. Gunakan Files API untuk mengunduh konten file sebenarnya
    4. Simpan secara lokal atau proses sesuai kebutuhan

    Contoh: Membuat dan mengunduh file Excel

    import anthropic
    
    client = anthropic.Anthropic()
    
    # Step 1: Use a Skill to create a file
    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"}],
    )
    
    
    # Step 2: Extract file IDs from the response
    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
    
    
    # Step 3: Download the file using 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"]
        )
    
        # Step 4: Save to disk
        file_content.write_to_file(file_metadata.filename)
        print(f"Downloaded: {file_metadata.filename}")

    Operasi Files API tambahan:

    # Get file metadata
    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")
    
    # List all files
    files = client.beta.files.list(betas=["files-api-2025-04-14"])
    for file in files.data:
        print(f"{file.filename} - {file.created_at}")
    
    # Delete a file
    client.beta.files.delete(file_id=file_id, betas=["files-api-2025-04-14"])

    Untuk detail lengkap tentang Files API, lihat dokumentasi Files API.

    Percakapan Multi-Turn

    Gunakan kembali container yang sama di beberapa pesan dengan menentukan ID container:

    # First request creates container
    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"}],
    )
    
    # Continue conversation with same container
    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,  # Reuse container
            "skills": [{"type": "anthropic", "skill_id": "xlsx", "version": "latest"}],
        },
        messages=messages,
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )

    Operasi Berjalan Lama

    Skills dapat melakukan operasi yang memerlukan beberapa turn. Tangani alasan penghentian 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"}],
    )
    
    # Handle pause_turn for long operations
    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"}],
        )

    Respons mungkin mencakup alasan penghentian pause_turn, yang menunjukkan bahwa API menjeda operasi Skill yang berjalan lama. Anda dapat memberikan respons kembali apa adanya dalam permintaan berikutnya untuk membiarkan Claude melanjutkan gilirannya, atau memodifikasi konten jika Anda ingin menghentikan percakapan dan memberikan panduan tambahan.

    Menggunakan Beberapa Skills

    Gabungkan beberapa Skills dalam satu permintaan untuk menangani alur kerja yang kompleks:

    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"}],
    )

    Mengelola Custom Skills

    Membuat Skill

    Unggah Skill khusus Anda untuk membuatnya tersedia di workspace Anda. Anda dapat mengunggah menggunakan jalur direktori atau objek file individual.

    import anthropic
    
    client = anthropic.Anthropic()
    
    # Option 1: Using files_from_dir helper (Python only, recommended)
    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"],
    )
    
    # Option 2: Using a zip file
    skill = client.beta.skills.create(
        display_title="Financial Analysis",
        files=[("skill.zip", open("financial_analysis_skill.zip", "rb"))],
        betas=["skills-2025-10-02"],
    )
    
    # Option 3: Using file tuples (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}")

    Persyaratan:

    • Harus menyertakan file SKILL.md di tingkat atas
    • Semua file harus menentukan direktori root umum dalam jalur mereka
    • Ukuran unggahan total harus di bawah 30MB
    • Persyaratan frontmatter YAML:
      • name: Maksimal 64 karakter, hanya huruf kecil/angka/tanda hubung, tanpa tag XML, tanpa kata yang dicadangkan ("anthropic", "claude")
      • description: Maksimal 1024 karakter, tidak kosong, tanpa tag XML

    Untuk skema permintaan/respons lengkap, lihat referensi API Create Skill.

    Mendaftar Skills

    Ambil semua Skills yang tersedia untuk workspace Anda, termasuk Skills pre-built Anthropic dan Skills khusus Anda. Gunakan parameter source untuk memfilter berdasarkan jenis skill:

    # List all 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})")
    
    # List only custom Skills
    custom_skills = client.beta.skills.list(source="custom", betas=["skills-2025-10-02"])

    Lihat referensi API List Skills untuk opsi paginasi dan pemfilteran.

    Mengambil Skill

    Dapatkan detail tentang Skill tertentu:

    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}")

    Menghapus Skill

    Untuk menghapus Skill, Anda harus terlebih dahulu menghapus semua versinya:

    # Step 1: Delete all versions
    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"],
        )
    
    # Step 2: Delete the Skill
    client.beta.skills.delete(
        skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv", betas=["skills-2025-10-02"]
    )

    Mencoba menghapus Skill dengan versi yang ada akan mengembalikan kesalahan 400.

    Versioning

    Skills mendukung versioning untuk mengelola pembaruan dengan aman:

    Anthropic-Managed Skills:

    • Versi menggunakan format tanggal: 20251013
    • Versi baru dirilis saat pembaruan dilakukan
    • Tentukan versi yang tepat untuk stabilitas

    Custom Skills:

    • Timestamp epoch yang dihasilkan secara otomatis: 1759178010641129
    • Gunakan "latest" untuk selalu mendapatkan versi terbaru
    • Buat versi baru saat memperbarui file Skill
    # Buat versi baru
    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"],
    )
    
    # Gunakan versi spesifik
    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"}],
    )
    
    # Gunakan versi terbaru
    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"}],
    )

    Lihat referensi API Create Skill Version untuk detail lengkap.


    Bagaimana Skills Dimuat

    Ketika Anda menentukan Skills dalam container:

    1. Penemuan Metadata: Claude melihat metadata untuk setiap Skill (nama, deskripsi) dalam system prompt
    2. Pemuatan File: File Skill disalin ke dalam container di /skills/{directory}/
    3. Penggunaan Otomatis: Claude secara otomatis memuat dan menggunakan Skills ketika relevan dengan permintaan Anda
    4. Komposisi: Beberapa Skills bersama-sama untuk alur kerja yang kompleks

    Arsitektur progressive disclosure memastikan penggunaan konteks yang efisien—Claude hanya memuat instruksi Skill lengkap ketika diperlukan.


    Use Cases

    Organizational Skills

    Brand & Communications

    • Terapkan pemformatan khusus perusahaan (warna, font, tata letak) ke dokumen
    • Hasilkan komunikasi mengikuti template organisasi
    • Pastikan pedoman merek yang konsisten di semua output

    Project Management

    • Struktur catatan dengan format khusus perusahaan (OKRs, decision logs)
    • Hasilkan tugas mengikuti konvensi tim
    • Buat ringkasan pertemuan dan pembaruan status yang terstandar

    Business Operations

    • Buat laporan, proposal, dan analisis standar perusahaan
    • Jalankan prosedur analitik khusus perusahaan
    • Hasilkan model keuangan mengikuti template organisasi

    Personal Skills

    Content Creation

    • Template dokumen khusus
    • Pemformatan dan styling khusus
    • Pembuatan konten khusus domain

    Data Analysis

    • Pipeline pemrosesan data khusus
    • Template visualisasi khusus
    • Metode analitik khusus industri

    Development & Automation

    • Template pembuatan kode
    • Framework pengujian
    • Alur kerja deployment

    Contoh: Financial Modeling

    Gabungkan Excel dan custom DCF analysis Skills:

    # Buat custom DCF analysis 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"],
    )
    
    # Gunakan dengan Excel untuk membuat model keuangan
    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"}],
    )

    Limits and Constraints

    Request Limits

    • Maximum Skills per request: 8
    • Maximum Skill upload size: 30MB (semua file digabungkan)
    • YAML frontmatter requirements:
      • name: Maksimal 64 karakter, huruf kecil/angka/tanda hubung saja, tanpa tag XML, tanpa kata-kata yang dicadangkan
      • description: Maksimal 1024 karakter, tidak kosong, tanpa tag XML

    Environment Constraints

    Skills berjalan dalam code execution container dengan batasan berikut:

    • No network access - Tidak dapat melakukan panggilan API eksternal
    • No runtime package installation - Hanya paket yang sudah diinstal sebelumnya yang tersedia
    • Isolated environment - Setiap permintaan mendapatkan container segar

    Lihat dokumentasi code execution tool untuk paket yang tersedia.


    Best Practices

    When to Use Multiple Skills

    Gabungkan Skills ketika tugas melibatkan beberapa jenis dokumen atau domain:

    Good use cases:

    • Data analysis (Excel) + presentation creation (PowerPoint)
    • Report generation (Word) + export to PDF
    • Custom domain logic + document generation

    Avoid:

    • Including unused Skills (impacts performance)

    Version Management Strategy

    For production:

    # Pin to specific versions for stability
    container = {
        "skills": [
            {
                "type": "custom",
                "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
                "version": "1759178010641129",  # Specific version
            }
        ]
    }

    For development:

    # Use latest for active development
    container = {
        "skills": [
            {
                "type": "custom",
                "skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
                "version": "latest",  # Always get newest
            }
        ]
    }

    Prompt Caching Considerations

    Ketika menggunakan prompt caching, perhatikan bahwa mengubah daftar Skills dalam container Anda akan memecahkan cache:

    # Permintaan pertama membuat cache
    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"}],
    )
    
    # Menambah/menghapus Skills memecahkan cache
    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",
                },  # Cache miss
            ]
        },
        messages=[{"role": "user", "content": "Create a presentation"}],
        tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
    )

    Untuk performa caching terbaik, jaga daftar Skills Anda tetap konsisten di seluruh permintaan.

    Error Handling

    Tangani kesalahan terkait Skill dengan baik:

    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}")
            # Handle skill-specific errors
        else:
            raise

    Next Steps

    API Reference

    Complete API reference with all endpoints

    Authoring Guide

    Best practices for writing effective Skills

    Code Execution Tool

    Learn about the code execution environment

    Was this page helpful?

    • Tautan Cepat
    • Ikhtisar
    • Menggunakan Skills
    • Prasyarat
    • Menggunakan Skills dalam Messages
    • Parameter Container
    • Mengunduh File yang Dihasilkan
    • Percakapan Multi-Turn
    • Operasi Berjalan Lama
    • Menggunakan Beberapa Skills
    • Mengelola Custom Skills
    • Membuat Skill
    • Mendaftar Skills
    • Mengambil Skill
    • Menghapus Skill
    • Versioning
    • Bagaimana Skills Dimuat
    • Use Cases
    • Organizational Skills
    • Personal Skills
    • Contoh: Financial Modeling
    • Limits and Constraints
    • Request Limits
    • Environment Constraints
    • Best Practices
    • When to Use Multiple Skills
    • Version Management Strategy
    • Prompt Caching Considerations
    • Error Handling
    • Next Steps