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
    Manajemen konteks
    Jendela konteksKompresiPengeditan konteks
    Kemampuan
    Caching promptPemikiran diperpanjangPemikiran adaptifUpayaStreaming pesanPemrosesan batchKutipanDukungan multibahasaPenghitungan tokenEmbeddingsVisiDukungan PDFFiles APIHasil pencarianOutput terstruktur
    Alat
    IkhtisarCara mengimplementasikan penggunaan alatStreaming alat berbutir halusAlat BashAlat eksekusi kodePemanggilan alat terprogramAlat penggunaan komputerAlat editor teksAlat pengambilan webAlat pencarian webAlat memoriAlat pencarian alat
    Keterampilan Agen
    IkhtisarMulai cepatPraktik terbaikKeterampilan untuk perusahaanMenggunakan Keterampilan 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
    Rekayasa prompt
    IkhtisarGenerator promptGunakan template promptPenyempurna promptJadilah jelas dan langsungGunakan contoh (prompting multishot)Biarkan Claude berpikir (CoT)Gunakan tag XMLBerikan Claude peran (prompt sistem)Rantai prompt kompleksTips konteks panjangTips pemikiran diperpanjang
    Uji & evaluasi
    Tentukan kriteria kesuksesanKembangkan kasus ujiMenggunakan alat evaluasiMengurangi latensi
    Perkuat penjaga
    Kurangi halusinasiTingkatkan konsistensi outputMitigasi jailbreakStreaming penolakanKurangi kebocoran promptJaga Claude tetap dalam karakter
    Administrasi dan pemantauan
    Ikhtisar Admin APIResidensi dataRuang kerjaAPI penggunaan dan biayaClaude Code Analytics APIRetensi data nol
    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
    Keterampilan Agen

    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 dibuat 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

    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 dibuat 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 SkillsSkills Khusus
    Nilai Typeanthropiccustom
    ID SkillNama pendek: pptx, xlsx, docx, pdfDihasilkan: skill_01AbCdEfGhIjKlMnOpQrStUv
    Format VersiBerbasis tanggal: 20251013 atau latestStempel waktu epoch: 1759178010641129 atau latest
    ManajemenDibuat sebelumnya dan dikelola oleh AnthropicUnggah dan kelola melalui Skills API
    KetersediaanTersedia untuk semua penggunaPribadi untuk ruang kerja 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 Konsol
    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 Skills khusus—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 aktual
    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 giliran-nya, atau memodifikasi konten jika Anda ingin mengganggu percakapan dan memberikan panduan tambahan.

    Menggunakan Multiple 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 Skills Khusus

    Membuat Skill

    Unggah Skill khusus Anda untuk membuatnya tersedia di ruang kerja 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 8MB
    • Persyaratan frontmatter YAML:
      • name: Maksimal 64 karakter, hanya huruf kecil/angka/tanda hubung, tanpa tag XML, tanpa kata-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 ruang kerja Anda, termasuk Skills yang sudah dibuat sebelumnya oleh 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 bersatu 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 panduan 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

    Example: 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: 8MB (semua file digabungkan)
    • YAML frontmatter requirements:
      • name: Maksimal 64 karakter, hanya huruf kecil/angka/tanda hubung, 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 ini:

    • 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 tipe 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 Multiple Skills
    • Mengelola Skills Khusus
    • Membuat Skill
    • Mendaftar Skills
    • Mengambil Skill
    • Menghapus Skill
    • Versioning
    • Bagaimana Skills Dimuat
    • Use Cases
    • Organizational Skills
    • Personal Skills
    • Example: 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