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.5Migrasi ke Claude 4.5Penghentian modelHarga
    Bangun dengan Claude
    Ikhtisar fiturMenggunakan Messages APIJendela konteksPraktik terbaik prompting
    Kemampuan
    Prompt cachingPengeditan konteksPemikiran diperpanjangUpayaStreaming PesanPemrosesan batchKutipanDukungan multibahasaPenghitungan tokenEmbeddingsVisiDukungan PDFFiles APIHasil pencarianOutput terstrukturAdd-on Google Sheets
    Alat
    IkhtisarCara mengimplementasikan penggunaan alatPenggunaan alat yang efisien tokenStreaming alat berbutir halusAlat BashAlat eksekusi kodePemanggilan alat terprogramAlat penggunaan komputerAlat editor teksAlat pengambilan webAlat pencarian webAlat memoriAlat pencarian alat
    Keterampilan Agen
    IkhtisarMulai cepatPraktik terbaikMenggunakan Keterampilan dengan API
    Agent SDK
    IkhtisarTypeScript SDKPython SDKPanduan Migrasi
    Panduan
    Input StreamingMenangani IzinManajemen SesiOutput terstruktur di SDKHosting Agent SDKMemodifikasi prompt sistemMCP di SDKAlat KustomSubagen di SDKPerintah Garis Miring di SDKKeterampilan Agen di SDKMelacak Biaya dan PenggunaanDaftar TugasPlugin di SDK
    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)Isi sebelumnya respons ClaudeRantai 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 berkarakter
    Administrasi dan pemantauan
    Ikhtisar Admin APIAPI Penggunaan dan BiayaClaude Code Analytics API
    Console
    Log in
    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
    Kemampuan

    Penyimpanan cache prompt

    Penyimpanan cache prompt mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari awalan tertentu dalam prompt Anda.

    Penyimpanan cache prompt adalah fitur canggih yang mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari awalan tertentu dalam prompt Anda. Pendekatan ini secara signifikan mengurangi waktu pemrosesan dan biaya untuk tugas berulang atau prompt dengan elemen yang konsisten.

    Berikut adalah contoh cara mengimplementasikan penyimpanan cache prompt dengan Messages API menggunakan blok cache_control:

    • Cara kerja penyimpanan cache prompt
    • Penetapan harga
    • Cara mengimplementasikan penyimpanan cache prompt
    • Cara kerja penyimpanan cache prompt
    • Penetapan harga
    • Cara mengimplementasikan penyimpanan cache prompt
    • Model yang didukung
    • Cara kerja prompt caching
    • Harga
    • Cara mengimplementasikan prompt caching
    • Model yang didukung
    • Menyusun prompt Anda
    • Batasan cache
    • Batasan cache
    • Memahami biaya titik henti cache
    • Batasan cache
    • Memahami biaya titik henti cache
    • Apa yang dapat di-cache
    • Batasan cache
    • Memahami biaya titik henti cache
    • Apa yang dapat di-cache
    • Apa yang tidak dapat di-cache
    • Batasan cache
    • Memahami biaya titik henti cache
    • Apa yang dapat di-cache
    • Apa yang tidak dapat di-cache
    • Apa yang membatalkan cache
    • Batasan cache
    • Memahami biaya titik henti cache
    • Apa yang dapat di-cache
    • Apa yang tidak dapat di-cache
    • Melacak kinerja cache
    • Batasan cache
    • Memahami biaya breakpoint cache
    • Apa yang dapat di-cache
    • Apa yang tidak dapat di-cache
    • Apa yang membatalkan cache
    • Melacak kinerja cache
    • Best practices untuk cache yang efektif
    • Mengoptimalkan untuk berbagai use case
    • Mengoptimalkan untuk berbagai use case
    • Mengatasi masalah umum
    • Caching dengan thinking blocks
    • Cache storage and sharing
    • Mengoptimalkan untuk berbagai use case
    • Mengatasi masalah umum
    • Caching dengan thinking blocks
    • Cache storage and sharing
    • 1-hour cache duration
    • Kapan menggunakan cache 1 jam
    • Mengoptimalkan untuk berbagai kasus penggunaan
    • Pemecahan masalah umum
    • Caching dengan blok pemikiran
    • Penyimpanan dan berbagi cache
    • Durasi cache 1 jam
    • Kapan menggunakan cache 1 jam
    • Mencampur TTL yang berbeda
    • Contoh prompt caching
    • FAQ
    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    Dalam contoh ini, seluruh teks "Pride and Prejudice" disimpan dalam cache menggunakan parameter cache_control. Ini memungkinkan penggunaan kembali teks besar ini di berbagai panggilan API tanpa memproses ulang setiap kali. Mengubah hanya pesan pengguna memungkinkan Anda mengajukan berbagai pertanyaan tentang buku sambil memanfaatkan konten yang disimpan dalam cache, menghasilkan respons yang lebih cepat dan efisiensi yang ditingkatkan.


    Cara kerja penyimpanan cache prompt

    Ketika Anda mengirim permintaan dengan penyimpanan cache prompt diaktifkan:

    1. Sistem memeriksa apakah awalan prompt, hingga titik henti cache yang ditentukan, sudah disimpan dalam cache dari kueri terbaru.
    2. Jika ditemukan, sistem menggunakan versi yang disimpan dalam cache, mengurangi waktu pemrosesan dan biaya.
    3. Jika tidak, sistem memproses prompt lengkap dan menyimpan awalan dalam cache setelah respons dimulai.

    Ini sangat berguna untuk:

    • Prompt dengan banyak contoh
    • Jumlah besar konteks atau informasi latar belakang
    • Tugas berulang dengan instruksi yang konsisten
    • Percakapan multi-putaran yang panjang

    Secara default, cache memiliki masa pakai 5 menit. Cache disegarkan tanpa biaya tambahan setiap kali konten yang disimpan dalam cache digunakan.

    Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.

    Untuk informasi lebih lanjut, lihat durasi cache 1 jam.

    Penyimpanan cache prompt menyimpan awalan lengkap dalam cache

    Penyimpanan cache prompt mereferensikan seluruh prompt - tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.


    Penetapan harga

    Penyimpanan cache prompt memperkenalkan struktur penetapan harga baru. Tabel di bawah menunjukkan harga per juta token untuk setiap model yang didukung:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    Tabel di atas mencerminkan pengganda penetapan harga berikut untuk penyimpanan cache prompt:

    • Token penulisan cache 5 menit adalah 1,25 kali harga token input dasar
    • Token penulisan cache 1 jam adalah 2 kali harga token input dasar
    • Token pembacaan cache adalah 0,1 kali harga token input dasar

    Cara mengimplementasikan penyimpanan cache prompt

    Penyimpanan cache prompt adalah fitur canggih yang mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari awalan tertentu dalam prompt Anda. Pendekatan ini secara signifikan mengurangi waktu pemrosesan dan biaya untuk tugas berulang atau prompt dengan elemen yang konsisten.

    Berikut adalah contoh cara mengimplementasikan penyimpanan cache prompt dengan Messages API menggunakan blok cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    Dalam contoh ini, seluruh teks "Pride and Prejudice" disimpan dalam cache menggunakan parameter cache_control. Ini memungkinkan penggunaan kembali teks besar ini di berbagai panggilan API tanpa memproses ulang setiap kali. Mengubah hanya pesan pengguna memungkinkan Anda mengajukan berbagai pertanyaan tentang buku sambil memanfaatkan konten yang disimpan dalam cache, menghasilkan respons yang lebih cepat dan efisiensi yang ditingkatkan.


    Cara kerja penyimpanan cache prompt

    Ketika Anda mengirim permintaan dengan penyimpanan cache prompt diaktifkan:

    1. Sistem memeriksa apakah awalan prompt, hingga titik henti cache yang ditentukan, sudah disimpan dalam cache dari kueri terbaru.
    2. Jika ditemukan, sistem menggunakan versi yang disimpan dalam cache, mengurangi waktu pemrosesan dan biaya.
    3. Jika tidak, sistem memproses prompt lengkap dan menyimpan awalan dalam cache setelah respons dimulai.

    Ini sangat berguna untuk:

    • Prompt dengan banyak contoh
    • Jumlah besar konteks atau informasi latar belakang
    • Tugas berulang dengan instruksi yang konsisten
    • Percakapan multi-putaran yang panjang

    Secara default, cache memiliki masa pakai 5 menit. Cache disegarkan tanpa biaya tambahan setiap kali konten yang disimpan dalam cache digunakan.

    Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.

    Untuk informasi lebih lanjut, lihat durasi cache 1 jam.

    Penyimpanan cache prompt menyimpan awalan lengkap dalam cache

    Penyimpanan cache prompt mereferensikan seluruh prompt - tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.


    Penetapan harga

    Penyimpanan cache prompt memperkenalkan struktur penetapan harga baru. Tabel di bawah menunjukkan harga per juta token untuk setiap model yang didukung:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    Tabel di atas mencerminkan pengganda penetapan harga berikut untuk penyimpanan cache prompt:

    • Token penulisan cache 5 menit adalah 1,25 kali harga token input dasar
    • Token penulisan cache 1 jam adalah 2 kali harga token input dasar
    • Token pembacaan cache adalah 0,1 kali harga token input dasar

    Cara mengimplementasikan penyimpanan cache prompt

    Model yang didukung

    Penyimpanan cache prompt saat ini didukung pada:

    • Claude Opus 4.5
    • Claude Opus 4.1
    • Claude Opus 4
    • Claude Sonnet 4.5
    • Claude Sonnet 4
    • Claude Sonnet 3.7
    • Claude Haiku 4.5
    • Claude Haiku 3.5
    • Claude Haiku 3
    • Claude Opus 3 (tidak digunakan lagi)

    Prompt caching adalah fitur yang kuat yang mengoptimalkan penggunaan API Anda dengan memungkinkan melanjutkan dari prefiks tertentu dalam prompt Anda. Pendekatan ini secara signifikan mengurangi waktu pemrosesan dan biaya untuk tugas berulang atau prompt dengan elemen yang konsisten.

    Berikut adalah contoh cara mengimplementasikan prompt caching dengan Messages API menggunakan blok cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    Dalam contoh ini, seluruh teks "Pride and Prejudice" di-cache menggunakan parameter cache_control. Ini memungkinkan penggunaan kembali teks besar ini di berbagai panggilan API tanpa memproses ulang setiap kali. Mengubah hanya pesan pengguna memungkinkan Anda untuk mengajukan berbagai pertanyaan tentang buku sambil memanfaatkan konten yang di-cache, yang menghasilkan respons lebih cepat dan efisiensi yang ditingkatkan.


    Cara kerja prompt caching

    Ketika Anda mengirim permintaan dengan prompt caching diaktifkan:

    1. Sistem memeriksa apakah prefiks prompt, hingga titik henti cache tertentu, sudah di-cache dari kueri baru-baru ini.
    2. Jika ditemukan, sistem menggunakan versi yang di-cache, mengurangi waktu pemrosesan dan biaya.
    3. Jika tidak, sistem memproses prompt lengkap dan men-cache prefiks setelah respons dimulai.

    Ini sangat berguna untuk:

    • Prompt dengan banyak contoh
    • Jumlah besar konteks atau informasi latar belakang
    • Tugas berulang dengan instruksi yang konsisten
    • Percakapan multi-putaran yang panjang

    Secara default, cache memiliki masa pakai 5 menit. Cache disegarkan tanpa biaya tambahan setiap kali konten yang di-cache digunakan.

    Jika Anda merasa bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.

    Untuk informasi lebih lanjut, lihat durasi cache 1 jam.

    Prompt caching men-cache prefiks lengkap

    Prompt caching mereferensikan seluruh prompt - tools, system, dan messages (dalam urutan itu) hingga dan termasuk blok yang ditunjuk dengan cache_control.


    Harga

    Prompt caching memperkenalkan struktur harga baru. Tabel di bawah menunjukkan harga per juta token untuk setiap model yang didukung:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    Tabel di atas mencerminkan pengganda harga berikut untuk prompt caching:

    • Token penulisan cache 5 menit adalah 1,25 kali harga token input dasar
    • Token penulisan cache 1 jam adalah 2 kali harga token input dasar
    • Token pembacaan cache adalah 0,1 kali harga token input dasar

    Cara mengimplementasikan prompt caching

    Model yang didukung

    Prompt caching saat ini didukung pada:

    • Claude Opus 4.5
    • Claude Opus 4.1
    • Claude Opus 4
    • Claude Sonnet 4.5
    • Claude Sonnet 4
    • Claude Sonnet 3.7
    • Claude Haiku 4.5
    • Claude Haiku 3.5
    • Claude Haiku 3
    • Claude Opus 3 (deprecated)

    Menyusun prompt Anda

    Tempatkan konten statis (definisi alat, instruksi sistem, konteks, contoh) di awal prompt Anda. Tandai akhir konten yang dapat digunakan kembali untuk caching menggunakan parameter cache_control.

    Prefiks cache dibuat dalam urutan berikut: tools, system, kemudian messages. Urutan ini membentuk hierarki di mana setiap level dibangun di atas yang sebelumnya.

    Cara kerja pemeriksaan prefiks otomatis

    Anda dapat menggunakan hanya satu titik henti cache di akhir konten statis Anda, dan sistem akan secara otomatis menemukan urutan blok yang di-cache paling panjang yang cocok. Memahami cara kerjanya membantu Anda mengoptimalkan strategi caching Anda.

    Tiga prinsip inti:

    1. Kunci cache bersifat kumulatif: Ketika Anda secara eksplisit men-cache blok dengan cache_control, kunci hash cache dihasilkan dengan melakukan hash semua blok sebelumnya dalam percakapan secara berurutan. Ini berarti cache untuk setiap blok bergantung pada semua konten yang datang sebelumnya.

    2. Pemeriksaan berurutan mundur: Sistem memeriksa cache hits dengan bekerja mundur dari titik henti eksplisit Anda, memeriksa setiap blok sebelumnya dalam urutan terbalik. Ini memastikan Anda mendapatkan cache hit terpanjang yang mungkin.

    3. Jendela lookback 20 blok: Sistem hanya memeriksa hingga 20 blok sebelum setiap titik henti cache_control eksplisit. Setelah memeriksa 20 blok tanpa kecocokan, sistem berhenti memeriksa dan beralih ke titik henti eksplisit berikutnya (jika ada).

    Contoh: Memahami jendela lookback

    Pertimbangkan percakapan dengan 30 blok konten di mana Anda menetapkan cache_control hanya pada blok 30:

    • Jika Anda mengirim blok 31 tanpa perubahan pada blok sebelumnya: Sistem memeriksa blok 30 (cocok!). Anda mendapatkan cache hit di blok 30, dan hanya blok 31 yang perlu diproses.

    • Jika Anda memodifikasi blok 25 dan mengirim blok 31: Sistem memeriksa mundur dari blok 30 → 29 → 28... → 25 (tidak cocok) → 24 (cocok!). Karena blok 24 belum berubah, Anda mendapatkan cache hit di blok 24, dan hanya blok 25-30 yang perlu diproses ulang.

    • Jika Anda memodifikasi blok 5 dan mengirim blok 31: Sistem memeriksa mundur dari blok 30 → 29 → 28... → 11 (pemeriksaan #20). Setelah 20 pemeriksaan tanpa menemukan kecocokan, sistem berhenti mencari. Karena blok 5 berada di luar jendela 20 blok, tidak ada cache hit yang terjadi dan semua blok perlu diproses ulang. Namun, jika Anda telah menetapkan titik henti cache_control eksplisit pada blok 5, sistem akan terus memeriksa dari titik henti itu: blok 5 (tidak cocok) → blok 4 (cocok!). Ini memungkinkan cache hit di blok 4, menunjukkan mengapa Anda harus menempatkan titik henti sebelum blok konten yang dapat diedit.

    Kesimpulan utama: Selalu tetapkan titik henti cache eksplisit di akhir percakapan Anda untuk memaksimalkan peluang cache hits. Selain itu, tetapkan titik henti tepat sebelum blok konten yang mungkin dapat diedit untuk memastikan bagian-bagian tersebut dapat di-cache secara independen.

    Kapan menggunakan beberapa titik henti

    Anda dapat menentukan hingga 4 titik henti cache jika Anda ingin:

    • Men-cache bagian berbeda yang berubah pada frekuensi berbeda (misalnya, alat jarang berubah, tetapi konteks diperbarui setiap hari)
    • Memiliki kontrol lebih besar atas apa yang tepat di-cache
    • Memastikan caching untuk konten lebih dari 20 blok sebelum titik henti cache Anda
    • Menempatkan titik henti sebelum konten yang dapat diedit untuk menjamin cache hits bahkan ketika perubahan terjadi di luar jendela 20 blok

    Batasan penting: Jika prompt Anda memiliki lebih dari 20 blok konten sebelum titik henti cache Anda, dan Anda memodifikasi konten lebih awal dari 20 blok tersebut, Anda tidak akan mendapatkan cache hit kecuali Anda menambahkan titik henti eksplisit tambahan lebih dekat ke konten itu.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Memahami biaya titik henti cache

    Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:

    • Penulisan cache: Ketika konten baru ditulis ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
    • Pembacaan cache: Ketika konten yang di-cache digunakan (10% dari harga token input dasar)
    • Token input reguler: Untuk konten apa pun yang tidak di-cache

    Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Memahami biaya titik henti cache

    Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:

    • Penulisan cache: Ketika konten baru ditulis ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
    • Pembacaan cache: Ketika konten yang di-cache digunakan (10% dari harga token input dasar)
    • Token input reguler: Untuk konten apa pun yang tidak di-cache

    Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.

    Apa yang dapat di-cache

    Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:

    • Tools: Definisi alat dalam array tools
    • Pesan sistem: Blok konten dalam array system
    • Pesan teks: Blok konten dalam array messages.content, untuk putaran pengguna dan asisten
    • Gambar & Dokumen: Blok konten dalam array messages.content, dalam putaran pengguna
    • Penggunaan alat dan hasil alat: Blok konten dalam array messages.content, dalam putaran pengguna dan asisten

    Setiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Memahami biaya titik henti cache

    Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:

    • Penulisan cache: Ketika konten baru ditulis ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
    • Pembacaan cache: Ketika konten yang di-cache digunakan (10% dari harga token input dasar)
    • Token input reguler: Untuk konten apa pun yang tidak di-cache

    Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.

    Apa yang dapat di-cache

    Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:

    • Tools: Definisi alat dalam array tools
    • Pesan sistem: Blok konten dalam array system
    • Pesan teks: Blok konten dalam array messages.content, untuk putaran pengguna dan asisten
    • Gambar & Dokumen: Blok konten dalam array messages.content, dalam putaran pengguna
    • Penggunaan alat dan hasil alat: Blok konten dalam array messages.content, dalam putaran pengguna dan asisten

    Setiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.

    Apa yang tidak dapat di-cache

    Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:

    • Blok pemikiran tidak dapat di-cache secara langsung dengan cache_control. Namun, blok pemikiran DAPAT di-cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.

    • Blok sub-konten (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.

      Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan kutipan secara efektif dengan men-cache dokumen yang akan direferensikan oleh kutipan.

    • Blok teks kosong tidak dapat di-cache.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Memahami biaya titik henti cache

    Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:

    • Penulisan cache: Ketika konten baru ditulis ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
    • Pembacaan cache: Ketika konten yang di-cache digunakan (10% dari harga token input dasar)
    • Token input reguler: Untuk konten apa pun yang tidak di-cache

    Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.

    Apa yang dapat di-cache

    Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:

    • Tools: Definisi alat dalam array tools
    • Pesan sistem: Blok konten dalam array system
    • Pesan teks: Blok konten dalam array messages.content, untuk putaran pengguna dan asisten
    • Gambar & Dokumen: Blok konten dalam array messages.content, dalam putaran pengguna
    • Penggunaan alat dan hasil alat: Blok konten dalam array messages.content, dalam putaran pengguna dan asisten

    Setiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.

    Apa yang tidak dapat di-cache

    Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:

    • Blok pemikiran tidak dapat di-cache secara langsung dengan cache_control. Namun, blok pemikiran DAPAT di-cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.

    • Blok sub-konten (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.

      Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan kutipan secara efektif dengan men-cache dokumen yang akan direferensikan oleh kutipan.

    • Blok teks kosong tidak dapat di-cache.

    Apa yang membatalkan cache

    Modifikasi pada konten yang di-cache dapat membatalkan sebagian atau seluruh cache.

    Seperti dijelaskan dalam Menyusun prompt Anda, cache mengikuti hierarki: tools → system → messages. Perubahan di setiap level membatalkan level itu dan semua level berikutnya.

    Tabel berikut menunjukkan bagian mana dari cache yang dibatalkan oleh berbagai jenis perubahan. ✘ menunjukkan bahwa cache dibatalkan, sementara ✓ menunjukkan bahwa cache tetap valid.

    Apa yang berubahCache ToolsCache SystemCache MessagesDampak
    Definisi alat✘✘✘Memodifikasi definisi alat (nama, deskripsi, parameter) membatalkan seluruh cache
    Toggle pencarian web✓✘✘Mengaktifkan/menonaktifkan pencarian web memodifikasi prompt sistem
    Toggle kutipan✓✘✘Mengaktifkan/menonaktifkan kutipan memodifikasi prompt sistem
    Pilihan alat✓✓✘Perubahan pada parameter tool_choice hanya mempengaruhi blok pesan
    Gambar✓✓✘Menambahkan/menghapus gambar di mana pun dalam prompt mempengaruhi blok pesan
    Parameter pemikiran✓✓✘Perubahan pada pengaturan pemikiran diperpanjang (aktifkan/nonaktifkan, anggaran) mempengaruhi blok pesan
    Hasil non-alat yang dilewatkan ke permintaan pemikiran diperpanjang✓✓✘Ketika hasil non-alat dilewatkan dalam permintaan saat pemikiran diperpanjang diaktifkan, semua blok pemikiran yang sebelumnya di-cache dilepas dari konteks, dan pesan apa pun dalam konteks yang mengikuti blok pemikiran itu dihapus dari cache. Untuk detail lebih lanjut, lihat Caching dengan blok pemikiran.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk men-cache lebih sedikit dari jumlah token ini akan diproses tanpa caching. Untuk melihat apakah prompt di-cache, lihat field penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hits untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Memahami biaya titik henti cache

    Titik henti cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:

    • Penulisan cache: Ketika konten baru ditulis ke cache (25% lebih banyak dari token input dasar untuk TTL 5 menit)
    • Pembacaan cache: Ketika konten yang di-cache digunakan (10% dari harga token input dasar)
    • Token input reguler: Untuk konten apa pun yang tidak di-cache

    Menambahkan lebih banyak titik henti cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Titik henti hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.

    Apa yang dapat di-cache

    Sebagian besar blok dalam permintaan dapat ditunjuk untuk caching dengan cache_control. Ini termasuk:

    • Tools: Definisi alat dalam array tools
    • Pesan sistem: Blok konten dalam array system
    • Pesan teks: Blok konten dalam array messages.content, untuk putaran pengguna dan asisten
    • Gambar & Dokumen: Blok konten dalam array messages.content, dalam putaran pengguna
    • Penggunaan alat dan hasil alat: Blok konten dalam array messages.content, dalam putaran pengguna dan asisten

    Setiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan caching untuk bagian permintaan itu.

    Apa yang tidak dapat di-cache

    Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:

    • Blok pemikiran tidak dapat di-cache secara langsung dengan cache_control. Namun, blok pemikiran DAPAT di-cache bersama konten lain ketika muncul dalam putaran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.

    • Blok sub-konten (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.

      Dalam kasus kutipan, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk kutipan dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan kutipan secara efektif dengan men-cache dokumen yang akan direferensikan oleh kutipan.

    • Blok teks kosong tidak dapat di-cache.

    Melacak kinerja cache

    Pantau kinerja cache menggunakan field respons API ini, dalam usage dalam respons (atau event message_start jika streaming):

    • cache_creation_input_tokens: Jumlah token yang ditulis ke cache saat membuat entri baru.
    • cache_read_input_tokens: Jumlah token yang diambil dari cache untuk permintaan ini.
    • input_tokens: Jumlah token input yang tidak dibaca dari atau digunakan untuk membuat cache (yaitu, token setelah titik henti cache terakhir).

    Memahami rincian token

    Field input_tokens mewakili hanya token yang datang setelah titik henti cache terakhir dalam permintaan Anda - bukan semua token input yang Anda kirim.

    Untuk menghitung total token input:

    total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

    Penjelasan spasial:

    • cache_read_input_tokens = token sebelum titik henti sudah di-cache (pembacaan)
    • cache_creation_input_tokens = token sebelum titik henti sedang di-cache sekarang (penulisan)
    • input_tokens = token setelah titik henti cache terakhir Anda (tidak memenuhi syarat untuk cache)

    Contoh: Jika Anda memiliki permintaan dengan 100.000 token konten yang di-cache (dibaca dari cache), 0 token konten baru yang sedang di-cache, dan 50 token dalam pesan pengguna Anda (setelah titik henti cache):

    • cache_read_input_tokens: 100.000
    • cache_creation_input_tokens: 0
    • input_tokens: 50
    • Total token input yang diproses: 100.050 token

    Ini penting untuk memahami biaya dan batas laju, karena input_tokens biasanya akan jauh lebih kecil dari total input Anda saat menggunakan caching secara efektif.

    Batasan cache

    Panjang prompt yang dapat di-cache minimum adalah:

    • 1024 token untuk Claude Opus 4.5, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (deprecated), dan Claude Opus 3 (deprecated)
    • 4096 token untuk Claude Haiku 4.5
    • 2048 token untuk Claude Haiku 3.5 dan Claude Haiku 3

    Prompt yang lebih pendek tidak dapat di-cache, bahkan jika ditandai dengan cache_control. Permintaan apa pun untuk cache kurang dari jumlah token ini akan diproses tanpa cache. Untuk melihat apakah prompt telah di-cache, lihat fields penggunaan respons.

    Untuk permintaan bersamaan, perhatikan bahwa entri cache hanya tersedia setelah respons pertama dimulai. Jika Anda memerlukan cache hit untuk permintaan paralel, tunggu respons pertama sebelum mengirim permintaan berikutnya.

    Saat ini, "ephemeral" adalah satu-satunya jenis cache yang didukung, yang secara default memiliki masa pakai 5 menit.

    Memahami biaya breakpoint cache

    Breakpoint cache itu sendiri tidak menambah biaya apa pun. Anda hanya dikenakan biaya untuk:

    • Cache writes: Ketika konten baru ditulis ke cache (25% lebih dari token input dasar untuk TTL 5 menit)
    • Cache reads: Ketika konten cache digunakan (10% dari harga token input dasar)
    • Token input reguler: Untuk konten apa pun yang tidak di-cache

    Menambahkan lebih banyak breakpoint cache_control tidak meningkatkan biaya Anda - Anda masih membayar jumlah yang sama berdasarkan konten apa yang sebenarnya di-cache dan dibaca. Breakpoint hanya memberi Anda kontrol atas bagian mana yang dapat di-cache secara independen.

    Apa yang dapat di-cache

    Sebagian besar blok dalam permintaan dapat ditunjuk untuk cache dengan cache_control. Ini termasuk:

    • Tools: Definisi tool dalam array tools
    • System messages: Content blocks dalam array system
    • Text messages: Content blocks dalam array messages.content, untuk giliran pengguna dan asisten
    • Images & Documents: Content blocks dalam array messages.content, dalam giliran pengguna
    • Tool use dan tool results: Content blocks dalam array messages.content, dalam giliran pengguna dan asisten

    Setiap elemen ini dapat ditandai dengan cache_control untuk mengaktifkan cache untuk bagian permintaan tersebut.

    Apa yang tidak dapat di-cache

    Meskipun sebagian besar blok permintaan dapat di-cache, ada beberapa pengecualian:

    • Thinking blocks tidak dapat di-cache secara langsung dengan cache_control. Namun, thinking blocks DAPAT di-cache bersama konten lain ketika muncul dalam giliran asisten sebelumnya. Ketika di-cache dengan cara ini, mereka MENGHITUNG sebagai token input ketika dibaca dari cache.

    • Sub-content blocks (seperti citations) itu sendiri tidak dapat di-cache secara langsung. Sebagai gantinya, cache blok tingkat atas.

      Dalam kasus citations, blok konten dokumen tingkat atas yang berfungsi sebagai materi sumber untuk citations dapat di-cache. Ini memungkinkan Anda menggunakan prompt caching dengan citations secara efektif dengan cache dokumen yang akan direferensikan oleh citations.

    • Empty text blocks tidak dapat di-cache.

    Apa yang membatalkan cache

    Modifikasi konten cache dapat membatalkan sebagian atau seluruh cache.

    Seperti dijelaskan dalam Structuring your prompt, cache mengikuti hierarki: tools → system → messages. Perubahan di setiap level membatalkan level tersebut dan semua level berikutnya.

    Tabel berikut menunjukkan bagian cache mana yang dibatalkan oleh berbagai jenis perubahan. ✘ menunjukkan bahwa cache dibatalkan, sementara ✓ menunjukkan bahwa cache tetap valid.

    Apa yang berubahTools cacheSystem cacheMessages cacheDampak
    Tool definitions✘✘✘Memodifikasi definisi tool (nama, deskripsi, parameter) membatalkan seluruh cache
    Web search toggle✓✘✘Mengaktifkan/menonaktifkan web search memodifikasi system prompt
    Citations toggle✓✘✘Mengaktifkan/menonaktifkan citations memodifikasi system prompt
    Tool choice✓✓✘Perubahan parameter tool_choice hanya mempengaruhi blok pesan
    Images✓✓✘Menambahkan/menghapus gambar di mana pun dalam prompt mempengaruhi blok pesan
    Thinking parameters✓✓✘Perubahan pengaturan extended thinking (aktifkan/nonaktifkan, budget) mempengaruhi blok pesan
    Non-tool results passed to extended thinking requests✓✓✘Ketika non-tool results dilewatkan dalam permintaan saat extended thinking diaktifkan, semua thinking blocks yang sebelumnya di-cache dilepas dari konteks, dan pesan apa pun dalam konteks yang mengikuti thinking blocks tersebut dihapus dari cache. Untuk detail lebih lanjut, lihat Caching with thinking blocks.

    Melacak kinerja cache

    Pantau kinerja cache menggunakan field respons API ini, dalam usage dalam respons (atau event message_start jika streaming):

    • cache_creation_input_tokens: Jumlah token yang ditulis ke cache saat membuat entri baru.
    • cache_read_input_tokens: Jumlah token yang diambil dari cache untuk permintaan ini.
    • input_tokens: Jumlah token input yang tidak dibaca dari atau digunakan untuk membuat cache (yaitu, token setelah breakpoint cache terakhir).

    Memahami breakdown token

    Field input_tokens hanya mewakili token yang datang setelah breakpoint cache terakhir dalam permintaan Anda - bukan semua token input yang Anda kirim.

    Untuk menghitung total token input:

    total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

    Penjelasan spasial:

    • cache_read_input_tokens = token sebelum breakpoint sudah di-cache (reads)
    • cache_creation_input_tokens = token sebelum breakpoint sedang di-cache sekarang (writes)
    • input_tokens = token setelah breakpoint terakhir Anda (tidak memenuhi syarat untuk cache)

    Contoh: Jika Anda memiliki permintaan dengan 100.000 token konten cache (dibaca dari cache), 0 token konten baru yang sedang di-cache, dan 50 token dalam pesan pengguna Anda (setelah breakpoint cache):

    • cache_read_input_tokens: 100.000
    • cache_creation_input_tokens: 0
    • input_tokens: 50
    • Total token input yang diproses: 100.050 token

    Ini penting untuk memahami biaya dan batas laju, karena input_tokens biasanya akan jauh lebih kecil dari total input Anda saat menggunakan cache secara efektif.

    Best practices untuk cache yang efektif

    Untuk mengoptimalkan kinerja prompt caching:

    • Cache konten stabil dan dapat digunakan kembali seperti instruksi sistem, informasi latar belakang, konteks besar, atau definisi tool yang sering digunakan.
    • Tempatkan konten cache di awal prompt untuk kinerja terbaik.
    • Gunakan breakpoint cache secara strategis untuk memisahkan bagian prefix yang berbeda yang dapat di-cache.
    • Atur breakpoint cache di akhir percakapan dan tepat sebelum konten yang dapat diedit untuk memaksimalkan cache hit rates, terutama saat bekerja dengan prompt yang memiliki lebih dari 20 content blocks.
    • Secara teratur analisis cache hit rates dan sesuaikan strategi Anda sesuai kebutuhan.

    Mengoptimalkan untuk berbagai use case

    Sesuaikan strategi prompt caching Anda dengan skenario Anda:

    • Conversational agents: Kurangi biaya dan latensi untuk percakapan yang diperpanjang, terutama yang memiliki instruksi panjang atau dokumen yang diunggah.
    • Coding assistants: Tingkatkan autocomplete dan codebase Q&A dengan menyimpan bagian yang relevan atau versi ringkasan codebase dalam prompt.
    • Large document processing: Gabungkan materi bentuk panjang lengkap termasuk gambar dalam prompt Anda tanpa meningkatkan latensi respons.
    • Detailed instruction sets: Bagikan daftar instruksi, prosedur, dan contoh yang luas untuk menyempurnakan respons Claude. Pengembang sering menyertakan satu atau dua contoh dalam prompt, tetapi dengan prompt caching Anda dapat mencapai kinerja yang lebih baik dengan menyertakan 20+ contoh beragam jawaban berkualitas tinggi.
    • Agentic tool use: Tingkatkan kinerja untuk skenario yang melibatkan beberapa tool calls dan perubahan kode iteratif, di mana setiap langkah biasanya memerlukan panggilan API baru.
    • Talk to books, papers, documentation, podcast transcripts, dan konten longform lainnya: Hidupkan basis pengetahuan apa pun dengan menyematkan seluruh dokumen ke dalam prompt, dan membiarkan pengguna mengajukan pertanyaan kepadanya.

    Mengoptimalkan untuk berbagai use case

    Sesuaikan strategi prompt caching Anda dengan skenario Anda:

    • Conversational agents: Kurangi biaya dan latensi untuk percakapan yang diperpanjang, terutama yang memiliki instruksi panjang atau dokumen yang diunggah.
    • Coding assistants: Tingkatkan autocomplete dan codebase Q&A dengan menyimpan bagian yang relevan atau versi ringkasan codebase dalam prompt.
    • Large document processing: Gabungkan materi bentuk panjang lengkap termasuk gambar dalam prompt Anda tanpa meningkatkan latensi respons.
    • Detailed instruction sets: Bagikan daftar instruksi, prosedur, dan contoh yang luas untuk menyempurnakan respons Claude. Pengembang sering menyertakan satu atau dua contoh dalam prompt, tetapi dengan prompt caching Anda dapat mencapai kinerja yang lebih baik dengan menyertakan 20+ contoh beragam jawaban berkualitas tinggi.
    • Agentic tool use: Tingkatkan kinerja untuk skenario yang melibatkan beberapa tool calls dan perubahan kode iteratif, di mana setiap langkah biasanya memerlukan panggilan API baru.
    • Talk to books, papers, documentation, podcast transcripts, dan konten longform lainnya: Hidupkan basis pengetahuan apa pun dengan menyematkan seluruh dokumen ke dalam prompt, dan membiarkan pengguna mengajukan pertanyaan kepadanya.

    Mengatasi masalah umum

    Jika mengalami perilaku yang tidak terduga:

    • Pastikan bagian cache identik dan ditandai dengan cache_control di lokasi yang sama di seluruh panggilan
    • Periksa bahwa panggilan dilakukan dalam masa pakai cache (5 menit secara default)
    • Verifikasi bahwa tool_choice dan penggunaan gambar tetap konsisten antar panggilan
    • Validasi bahwa Anda cache setidaknya jumlah token minimum
    • Sistem secara otomatis memeriksa cache hits di batas blok konten sebelumnya (hingga ~20 blok sebelum breakpoint Anda). Untuk prompt dengan lebih dari 20 content blocks, Anda mungkin memerlukan parameter cache_control tambahan lebih awal dalam prompt untuk memastikan semua konten dapat di-cache
    • Verifikasi bahwa kunci dalam blok konten tool_use Anda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacak urutan kunci selama konversi JSON, merusak cache

    Perubahan pada tool_choice atau ada/tidaknya gambar di mana pun dalam prompt akan membatalkan cache, memerlukan entri cache baru untuk dibuat. Untuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.

    Caching dengan thinking blocks

    Saat menggunakan extended thinking dengan prompt caching, thinking blocks memiliki perilaku khusus:

    Automatic caching alongside other content: Meskipun thinking blocks tidak dapat secara eksplisit ditandai dengan cache_control, mereka mendapat cache sebagai bagian dari konten permintaan ketika Anda membuat panggilan API berikutnya dengan tool results. Ini biasanya terjadi selama tool use ketika Anda meneruskan thinking blocks kembali untuk melanjutkan percakapan.

    Input token counting: Ketika thinking blocks dibaca dari cache, mereka menghitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.

    Cache invalidation patterns:

    • Cache tetap valid ketika hanya tool results yang disediakan sebagai pesan pengguna
    • Cache dibatalkan ketika konten pengguna non-tool-result ditambahkan, menyebabkan semua thinking blocks sebelumnya dilepas
    • Perilaku cache ini terjadi bahkan tanpa penanda cache_control eksplisit

    Untuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.

    Contoh dengan tool use:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Ketika blok pengguna non-tool-result disertakan, itu menunjuk loop asisten baru dan semua thinking blocks sebelumnya dihapus dari konteks.

    Untuk informasi lebih detail, lihat extended thinking documentation.


    Cache storage and sharing

    • Organization Isolation: Cache terisolasi antar organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.

    • Exact Matching: Cache hits memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan cache control.

    • Output Token Generation: Prompt caching tidak berpengaruh pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika prompt caching tidak digunakan.


    Mengoptimalkan untuk berbagai use case

    Sesuaikan strategi prompt caching Anda dengan skenario Anda:

    • Conversational agents: Kurangi biaya dan latensi untuk percakapan yang diperpanjang, terutama yang memiliki instruksi panjang atau dokumen yang diunggah.
    • Coding assistants: Tingkatkan autocomplete dan codebase Q&A dengan menyimpan bagian yang relevan atau versi ringkasan codebase dalam prompt.
    • Large document processing: Gabungkan materi bentuk panjang lengkap termasuk gambar dalam prompt Anda tanpa meningkatkan latensi respons.
    • Detailed instruction sets: Bagikan daftar instruksi, prosedur, dan contoh yang luas untuk menyempurnakan respons Claude. Pengembang sering menyertakan satu atau dua contoh dalam prompt, tetapi dengan prompt caching Anda dapat mencapai kinerja yang lebih baik dengan menyertakan 20+ contoh beragam jawaban berkualitas tinggi.
    • Agentic tool use: Tingkatkan kinerja untuk skenario yang melibatkan beberapa tool calls dan perubahan kode iteratif, di mana setiap langkah biasanya memerlukan panggilan API baru.
    • Talk to books, papers, documentation, podcast transcripts, dan konten longform lainnya: Hidupkan basis pengetahuan apa pun dengan menyematkan seluruh dokumen ke dalam prompt, dan membiarkan pengguna mengajukan pertanyaan kepadanya.

    Mengatasi masalah umum

    Jika mengalami perilaku yang tidak terduga:

    • Pastikan bagian cache identik dan ditandai dengan cache_control di lokasi yang sama di seluruh panggilan
    • Periksa bahwa panggilan dilakukan dalam masa pakai cache (5 menit secara default)
    • Verifikasi bahwa tool_choice dan penggunaan gambar tetap konsisten antar panggilan
    • Validasi bahwa Anda cache setidaknya jumlah token minimum
    • Sistem secara otomatis memeriksa cache hits di batas blok konten sebelumnya (hingga ~20 blok sebelum breakpoint Anda). Untuk prompt dengan lebih dari 20 content blocks, Anda mungkin memerlukan parameter cache_control tambahan lebih awal dalam prompt untuk memastikan semua konten dapat di-cache
    • Verifikasi bahwa kunci dalam blok konten tool_use Anda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacak urutan kunci selama konversi JSON, merusak cache

    Perubahan pada tool_choice atau ada/tidaknya gambar di mana pun dalam prompt akan membatalkan cache, memerlukan entri cache baru untuk dibuat. Untuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.

    Caching dengan thinking blocks

    Saat menggunakan extended thinking dengan prompt caching, thinking blocks memiliki perilaku khusus:

    Automatic caching alongside other content: Meskipun thinking blocks tidak dapat secara eksplisit ditandai dengan cache_control, mereka mendapat cache sebagai bagian dari konten permintaan ketika Anda membuat panggilan API berikutnya dengan tool results. Ini biasanya terjadi selama tool use ketika Anda meneruskan thinking blocks kembali untuk melanjutkan percakapan.

    Input token counting: Ketika thinking blocks dibaca dari cache, mereka menghitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.

    Cache invalidation patterns:

    • Cache tetap valid ketika hanya tool results yang disediakan sebagai pesan pengguna
    • Cache dibatalkan ketika konten pengguna non-tool-result ditambahkan, menyebabkan semua thinking blocks sebelumnya dilepas
    • Perilaku cache ini terjadi bahkan tanpa penanda cache_control eksplisit

    Untuk detail lebih lanjut tentang cache invalidation, lihat What invalidates the cache.

    Contoh dengan tool use:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Ketika blok pengguna non-tool-result disertakan, itu menunjuk loop asisten baru dan semua thinking blocks sebelumnya dihapus dari konteks.

    Untuk informasi lebih detail, lihat extended thinking documentation.


    Cache storage and sharing

    • Organization Isolation: Cache terisolasi antar organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.

    • Exact Matching: Cache hits memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan cache control.

    • Output Token Generation: Prompt caching tidak berpengaruh pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika prompt caching tidak digunakan.


    1-hour cache duration

    Jika Anda merasa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.

    Untuk menggunakan cache yang diperpanjang, sertakan ttl dalam definisi cache_control seperti ini:

    "cache_control": {
        "type": "ephemeral",
        "ttl": "5m" | "1h"
    }

    Respons akan mencakup informasi cache terperinci seperti berikut:

    {
        "usage": {
            "input_tokens": ...,
            "cache_read_input_tokens": ...,
            "cache_creation_input_tokens": ...,
            "output_tokens": ...,
    
            "cache_creation": {
                "ephemeral_5m_input_tokens": 456,
                "ephemeral_1h_input_tokens": 100,
            }
        }
    }

    Perhatikan bahwa field cache_creation_input_tokens saat ini sama dengan jumlah nilai dalam objek cache_creation.

    Kapan menggunakan cache 1 jam

    Jika Anda memiliki prompt yang digunakan dengan ritme teratur (yaitu, system prompts yang digunakan lebih sering daripada setiap 5 menit), terus gunakan cache 5 menit, karena ini akan terus diperbarui tanpa biaya tambahan.

    Cache 1 jam paling baik digunakan dalam skenario berikut:

    • Ketika Anda memiliki prompt yang kemungkinan digunakan kurang sering daripada 5 menit, tetapi lebih sering daripada setiap jam. Misalnya, ketika side-agent agentic akan memakan waktu lebih dari 5 menit, atau ketika menyimpan percakapan chat panjang dengan pengguna dan Anda umumnya mengharapkan pengguna tersebut mungkin tidak merespons dalam 5 menit berikutnya.
    • Ketika latensi penting dan prompt follow-up Anda mungkin dikirim di luar 5 menit.
    • Ketika Anda ingin meningkatkan utilisasi rate limit Anda, karena cache hits tidak dikurangkan dari rate limit Anda.

    Cache 5 menit dan 1 jam berperilaku sama sehubungan dengan latensi. Anda umumnya akan melihat waktu-ke-token-pertama yang ditingkatkan untuk dokumen panjang.

    Mengoptimalkan untuk berbagai kasus penggunaan

    Sesuaikan strategi prompt caching Anda dengan skenario Anda:

    • Agen percakapan: Kurangi biaya dan latensi untuk percakapan yang diperpanjang, terutama yang memiliki instruksi panjang atau dokumen yang diunggah.
    • Asisten pengkodean: Tingkatkan autocomplete dan Q&A basis kode dengan menjaga bagian yang relevan atau versi ringkasan basis kode dalam prompt.
    • Pemrosesan dokumen besar: Gabungkan materi bentuk panjang lengkap termasuk gambar dalam prompt Anda tanpa meningkatkan latensi respons.
    • Set instruksi terperinci: Bagikan daftar instruksi, prosedur, dan contoh yang luas untuk menyempurnakan respons Claude. Pengembang sering menyertakan satu atau dua contoh dalam prompt, tetapi dengan prompt caching Anda dapat mencapai kinerja yang lebih baik dengan menyertakan 20+ contoh beragam jawaban berkualitas tinggi.
    • Penggunaan alat agentic: Tingkatkan kinerja untuk skenario yang melibatkan beberapa panggilan alat dan perubahan kode iteratif, di mana setiap langkah biasanya memerlukan panggilan API baru.
    • Berbicara dengan buku, makalah, dokumentasi, transkrip podcast, dan konten bentuk panjang lainnya: Hidupkan basis pengetahuan apa pun dengan menyematkan seluruh dokumen ke dalam prompt, dan biarkan pengguna mengajukan pertanyaan kepadanya.

    Pemecahan masalah umum

    Jika mengalami perilaku yang tidak terduga:

    • Pastikan bagian yang di-cache identik dan ditandai dengan cache_control di lokasi yang sama di seluruh panggilan
    • Periksa bahwa panggilan dilakukan dalam masa pakai cache (5 menit secara default)
    • Verifikasi bahwa tool_choice dan penggunaan gambar tetap konsisten antara panggilan
    • Validasi bahwa Anda melakukan cache setidaknya jumlah minimum token
    • Sistem secara otomatis memeriksa cache hits di batas blok konten sebelumnya (hingga ~20 blok sebelum breakpoint Anda). Untuk prompt dengan lebih dari 20 blok konten, Anda mungkin perlu parameter cache_control tambahan lebih awal dalam prompt untuk memastikan semua konten dapat di-cache
    • Verifikasi bahwa kunci dalam blok konten tool_use Anda memiliki urutan yang stabil karena beberapa bahasa (misalnya Swift, Go) mengacakkan urutan kunci selama konversi JSON, merusak cache

    Perubahan pada tool_choice atau kehadiran/ketiadaan gambar di mana pun dalam prompt akan membatalkan cache, memerlukan entri cache baru untuk dibuat. Untuk detail lebih lanjut tentang invalidasi cache, lihat Apa yang membatalkan cache.

    Caching dengan blok pemikiran

    Saat menggunakan extended thinking dengan prompt caching, blok pemikiran memiliki perilaku khusus:

    Caching otomatis bersama konten lain: Meskipun blok pemikiran tidak dapat secara eksplisit ditandai dengan cache_control, mereka di-cache sebagai bagian dari konten permintaan ketika Anda membuat panggilan API berikutnya dengan hasil alat. Ini biasanya terjadi selama penggunaan alat ketika Anda meneruskan blok pemikiran kembali untuk melanjutkan percakapan.

    Penghitungan token input: Ketika blok pemikiran dibaca dari cache, mereka dihitung sebagai token input dalam metrik penggunaan Anda. Ini penting untuk perhitungan biaya dan anggaran token.

    Pola invalidasi cache:

    • Cache tetap valid ketika hanya hasil alat yang disediakan sebagai pesan pengguna
    • Cache menjadi tidak valid ketika konten pengguna non-hasil-alat ditambahkan, menyebabkan semua blok pemikiran sebelumnya dihapus
    • Perilaku caching ini terjadi bahkan tanpa penanda cache_control eksplisit

    Untuk detail lebih lanjut tentang invalidasi cache, lihat Apa yang membatalkan cache.

    Contoh dengan penggunaan alat:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Ketika blok pengguna non-hasil-alat disertakan, itu menunjuk loop asisten baru dan semua blok pemikiran sebelumnya dihapus dari konteks.

    Untuk informasi lebih terperinci, lihat dokumentasi extended thinking.


    Penyimpanan dan berbagi cache

    • Isolasi Organisasi: Cache terisolasi antara organisasi. Organisasi yang berbeda tidak pernah berbagi cache, bahkan jika mereka menggunakan prompt yang identik.

    • Pencocokan Tepat: Cache hits memerlukan segmen prompt yang 100% identik, termasuk semua teks dan gambar hingga dan termasuk blok yang ditandai dengan kontrol cache.

    • Pembuatan Token Output: Prompt caching tidak berpengaruh pada pembuatan token output. Respons yang Anda terima akan identik dengan apa yang Anda dapatkan jika prompt caching tidak digunakan.


    Durasi cache 1 jam

    Jika Anda menemukan bahwa 5 menit terlalu singkat, Anthropic juga menawarkan durasi cache 1 jam dengan biaya tambahan.

    Untuk menggunakan cache yang diperpanjang, sertakan ttl dalam definisi cache_control seperti ini:

    "cache_control": {
        "type": "ephemeral",
        "ttl": "5m" | "1h"
    }

    Respons akan mencakup informasi cache terperinci seperti berikut:

    {
        "usage": {
            "input_tokens": ...,
            "cache_read_input_tokens": ...,
            "cache_creation_input_tokens": ...,
            "output_tokens": ...,
    
            "cache_creation": {
                "ephemeral_5m_input_tokens": 456,
                "ephemeral_1h_input_tokens": 100,
            }
        }
    }

    Perhatikan bahwa bidang cache_creation_input_tokens saat ini sama dengan jumlah nilai dalam objek cache_creation.

    Kapan menggunakan cache 1 jam

    Jika Anda memiliki prompt yang digunakan dengan ritme teratur (yaitu, prompt sistem yang digunakan lebih sering daripada setiap 5 menit), terus gunakan cache 5 menit, karena ini akan terus disegarkan tanpa biaya tambahan.

    Cache 1 jam paling baik digunakan dalam skenario berikut:

    • Ketika Anda memiliki prompt yang kemungkinan digunakan kurang sering daripada 5 menit, tetapi lebih sering daripada setiap jam. Misalnya, ketika agen samping agentic akan memakan waktu lebih lama dari 5 menit, atau ketika menyimpan percakapan obrolan panjang dengan pengguna dan Anda umumnya mengharapkan bahwa pengguna mungkin tidak merespons dalam 5 menit berikutnya.
    • Ketika latensi penting dan prompt tindak lanjut Anda mungkin dikirim di luar 5 menit.
    • Ketika Anda ingin meningkatkan pemanfaatan batas laju Anda, karena cache hits tidak dikurangkan dari batas laju Anda.

    Cache 5 menit dan 1 jam berperilaku sama sehubungan dengan latensi. Anda umumnya akan melihat waktu-ke-token-pertama yang ditingkatkan untuk dokumen panjang.

    Mencampur TTL yang berbeda

    Anda dapat menggunakan kontrol cache 1 jam dan 5 menit dalam permintaan yang sama, tetapi dengan batasan penting: Entri cache dengan TTL lebih lama harus muncul sebelum TTL lebih pendek (yaitu, entri cache 1 jam harus muncul sebelum entri cache 5 menit apa pun).

    Saat mencampur TTL, kami menentukan tiga lokasi penagihan dalam prompt Anda:

    1. Posisi A: Jumlah token pada cache hit tertinggi (atau 0 jika tidak ada hits).
    2. Posisi B: Jumlah token pada blok cache_control 1 jam tertinggi setelah A (atau sama dengan A jika tidak ada).
    3. Posisi C: Jumlah token pada blok cache_control terakhir.

    Jika B dan/atau C lebih besar dari A, mereka harus menjadi cache misses, karena A adalah cache hit tertinggi.

    Anda akan dikenakan biaya untuk:

    1. Token baca cache untuk A.
    2. Token penulisan cache 1 jam untuk (B - A).
    3. Token penulisan cache 5 menit untuk (C - B).

    Berikut adalah 3 contoh. Ini menggambarkan token input dari 3 permintaan, masing-masing memiliki cache hits dan cache misses yang berbeda. Masing-masing memiliki penagihan yang dihitung berbeda, ditampilkan dalam kotak berwarna, sebagai hasilnya. Mixing TTLs Diagram


    Contoh prompt caching

    Untuk membantu Anda memulai dengan prompt caching, kami telah menyiapkan prompt caching cookbook dengan contoh terperinci dan praktik terbaik.

    Di bawah ini, kami telah menyertakan beberapa cuplikan kode yang menampilkan berbagai pola prompt caching. Contoh-contoh ini menunjukkan cara mengimplementasikan caching dalam skenario berbeda, membantu Anda memahami aplikasi praktis dari fitur ini:


    FAQ