Loading...
  • Bangun
  • Admin
  • Model & harga
  • Client SDK
  • Referensi API
Search...
⌘K
Log in
Pemikiran diperluas
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
  • 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
  • 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
Bangun/Kemampuan model

Membangun dengan extended thinking

Pelajari cara menggunakan extended thinking untuk meningkatkan kemampuan penalaran Claude dalam tugas-tugas kompleks

Was this page helpful?

  • Model yang didukung
  • Cara kerja extended thinking
  • Cara menggunakan extended thinking
  • Summarized thinking
  • Mengontrol tampilan thinking
  • Streaming pemikiran
  • Pemikiran yang diperluas dengan penggunaan alat
  • Mengalihkan mode pemikiran dalam percakapan
  • Mempertahankan blok pemikiran
  • Pemikiran yang disisipi
  • Pemikiran yang diperluas dengan prompt caching
  • Memahami perilaku caching blok pemikiran
  • Token maksimal dan ukuran jendela konteks dengan pemikiran yang diperluas
  • Jendela konteks dengan pemikiran yang diperluas
  • Jendela konteks dengan pemikiran yang diperluas dan penggunaan alat
  • Mengelola token dengan pemikiran yang diperluas
  • Enkripsi pemikiran
  • Blok pemikiran yang diredaksi
  • Perbedaan pemikiran di seluruh versi model
  • Pelestarian blok pemikiran di Claude Opus 4.5 dan yang lebih baru
  • Harga
  • Praktik terbaik dan pertimbangan untuk pemikiran yang diperluas
  • Bekerja dengan anggaran pemikiran
  • Pertimbangan kinerja
  • Kompatibilitas fitur
  • Pedoman penggunaan
  • Langkah berikutnya

This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

Extended thinking memberikan Claude kemampuan penalaran yang ditingkatkan untuk tugas-tugas kompleks, sambil memberikan tingkat transparansi yang berbeda-beda ke dalam proses pemikiran langkah demi langkah sebelum memberikan jawaban akhirnya.

Untuk Claude Opus 4.7 dan model yang lebih baru, gunakan adaptive thinking (thinking: {type: "adaptive"}) dengan parameter effort. Extended thinking manual (thinking: {type: "enabled", budget_tokens: N}) tidak lagi didukung pada Claude Opus 4.7 atau model yang lebih baru dan mengembalikan error 400. Untuk Claude Opus 4.6 dan Claude Sonnet 4.6, adaptive thinking juga direkomendasikan; konfigurasi manual masih berfungsi pada model-model ini tetapi sudah usang dan akan dihapus dalam rilis model di masa depan.

Model yang didukung

Extended thinking manual (thinking: {type: "enabled", budget_tokens: N}) didukung pada semua model Claude saat ini kecuali Claude Opus 4.7 dan model yang lebih baru, di mana ini tidak lagi diterima dan mengembalikan error 400. Beberapa model memiliki perilaku khusus mode:

  • Claude Opus 4.7 (claude-opus-4-7) dan model yang lebih baru: extended thinking manual tidak lagi didukung. Gunakan adaptive thinking (thinking: {type: "adaptive"}) dengan parameter effort sebagai gantinya.
  • Claude Mythos Preview: adaptive thinking adalah default; thinking: {type: "enabled", budget_tokens: N} juga diterima. thinking: {type: "disabled"} tidak didukung, dan display default ke "omitted" daripada mengembalikan konten thinking. Lewatkan display: "summarized" untuk menerima ringkasan.
  • Claude Opus 4.6 (claude-opus-4-6): adaptive thinking direkomendasikan; mode manual (type: "enabled") sudah usang tetapi masih berfungsi.
  • Claude Sonnet 4.6 (claude-sonnet-4-6): adaptive thinking direkomendasikan; mode manual (type: "enabled") dengan mode interleaved sudah usang tetapi masih berfungsi.

Perilaku API berbeda di seluruh model Claude Sonnet 3.7 dan Claude 4, tetapi bentuk API tetap sama persis.

Untuk informasi lebih lanjut, lihat Perbedaan dalam thinking di seluruh versi model.

Cara kerja extended thinking

Ketika extended thinking diaktifkan, Claude membuat blok konten thinking di mana ia mengeluarkan penalaran internalnya. Claude menggabungkan wawasan dari penalaran ini sebelum menyusun respons akhir.

Respons API mencakup blok konten thinking, diikuti oleh blok konten text.

Berikut adalah contoh format respons default:

{
  "content": [
    {
      "type": "thinking",
      "thinking": "Let me analyze this step by step...",
      "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
    },
    {
      "type": "text",
      "text": "Based on my analysis..."
    }
  ]
}

Untuk informasi lebih lanjut tentang format respons extended thinking, lihat Referensi Messages API.

Cara menggunakan extended thinking

Berikut adalah contoh penggunaan extended thinking dalam Messages API:

Untuk mengaktifkan extended thinking, tambahkan objek thinking, dengan parameter type diatur ke enabled dan budget_tokens ke anggaran token yang ditentukan untuk extended thinking. Untuk Claude Opus 4.6 dan Claude Sonnet 4.6, gunakan type: "adaptive" sebagai gantinya. Lihat Adaptive thinking untuk detail. Meskipun type: "enabled" dengan budget_tokens masih berfungsi pada model-model ini, ini sudah usang dan akan dihapus dalam rilis di masa depan.

Parameter budget_tokens menentukan jumlah maksimum token yang diizinkan Claude gunakan untuk proses penalaran internalnya. Dalam model Claude 4 dan yang lebih baru, batas ini berlaku untuk token thinking penuh, dan bukan untuk output ringkasan. Anggaran yang lebih besar dapat meningkatkan kualitas respons dengan memungkinkan analisis yang lebih menyeluruh untuk masalah kompleks, meskipun Claude mungkin tidak menggunakan seluruh anggaran yang dialokasikan, terutama pada rentang di atas 32k.

budget_tokens adalah usang pada Claude Opus 4.6 dan Claude Sonnet 4.6 dan akan dihapus dalam rilis model di masa depan. Gunakan adaptive thinking dengan parameter effort untuk mengontrol kedalaman thinking sebagai gantinya.

Claude Mythos Preview, Claude Opus 4.7, dan Claude Opus 4.6 mendukung hingga 128k token output. Claude Sonnet 4.6 dan Claude Haiku 4.5 mendukung hingga 64k. Lihat gambaran umum model untuk batas pada model legacy. Pada Message Batches API, beta header output-300k-2026-03-24 menaikkan batas output ke 300k untuk Opus 4.7, Opus 4.6, dan Sonnet 4.6.

budget_tokens harus diatur ke nilai yang kurang dari max_tokens. Namun, ketika menggunakan interleaved thinking dengan tools, Anda dapat melampaui batas ini karena batas token menjadi seluruh jendela konteks Anda.

Summarized thinking

With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse. This is the default behavior on Claude 4 models when the display field on the thinking configuration is unset or set to "summarized". On Claude Opus 4.7 and Claude Mythos Preview, display defaults to "omitted" instead, so you must set display: "summarized" explicitly to receive summarized thinking.

Here are some important considerations for summarized thinking:

  • You're charged for the full thinking tokens generated by the original request, not the summary tokens.
  • The billed output token count will not match the count of tokens you see in the response.
  • On Claude 4 models, the first few lines of thinking output are more verbose, providing detailed reasoning that's particularly helpful for prompt engineering purposes. Claude Mythos Preview summarizes from the first token, so its thinking blocks do not show this verbose preamble.
  • As Anthropic seeks to improve the extended thinking feature, summarization behavior is subject to change.
  • Summarization preserves the key ideas of Claude's thinking process with minimal added latency, enabling a streamable user experience.
  • Summarization is processed by a different model than the one you target in your requests. The thinking model does not see the summarized output.

In rare cases where you need access to full thinking output for Claude 4 models, contact Anthropic sales.

Mengontrol tampilan thinking

The display field on the thinking configuration controls how thinking content is returned in API responses. It accepts two values:

  • "summarized": Thinking blocks contain summarized thinking text. See Summarized thinking for details. This is the default on Claude Opus 4.6, Claude Sonnet 4.6, and earlier Claude 4 models.
  • "omitted": Thinking blocks are returned with an empty thinking field. The signature field still carries the encrypted full thinking for multi-turn continuity (see Thinking encryption). This is the default on Claude Opus 4.7 and Claude Mythos Preview.

Setting display: "omitted" is useful when your application doesn't surface thinking content to users. The primary benefit is faster time-to-first-text-token when streaming: The server skips streaming thinking tokens entirely and delivers only the signature, so the final text response begins streaming sooner.

Here are some important considerations for omitted thinking:

  • You're still charged for the full thinking tokens. Omitting reduces latency, not cost.
  • If you pass thinking blocks back in multi-turn conversations, pass them unchanged. The server decrypts the signature to reconstruct the original thinking for prompt construction (see Preserving thinking blocks). Any text you place in the thinking field of a round-tripped omitted block is ignored.
  • display is invalid with thinking.type: "disabled" (there is nothing to display).
  • When using thinking.type: "adaptive" and the model skips thinking for a simple request, no thinking block is produced regardless of display.

The signature field is identical whether display is "summarized" or "omitted". Switching display values between turns in a conversation is supported.

Pada Claude Mythos Preview, display default ke "omitted". Contoh-contoh di bagian ini melewatkan display secara eksplisit sehingga mereka berlaku untuk semua model, tetapi pada Mythos Preview Anda dapat membiarkannya tidak diatur dan menerima perilaku yang sama. Untuk menerima summarized thinking pada Mythos Preview, atur display: "summarized" secara eksplisit.

Pipeline otomatis yang tidak pernah menampilkan konten thinking kepada pengguna akhir dapat melewati overhead menerima token thinking melalui wire. Aplikasi yang sensitif terhadap latensi mendapatkan kualitas penalaran yang sama tanpa menunggu teks thinking untuk streaming sebelum respons akhir dimulai.

Ketika display: "omitted" diatur, respons berisi blok thinking dengan field thinking kosong:

Output
{
  "content": [
    {
      "type": "thinking",
      "thinking": "",
      "signature": "EosnCkYICxIMMb3LzNrMu..."
    },
    {
      "type": "text",
      "text": "The answer is 12,231."
    }
  ]
}

Ketika streaming dengan display: "omitted", tidak ada event thinking_delta yang dipancarkan; lihat Streaming thinking di bawah untuk urutan event.

Streaming pemikiran

Anda dapat melakukan streaming respons pemikiran yang diperluas menggunakan server-sent events (SSE).

Ketika streaming diaktifkan untuk pemikiran yang diperluas, Anda menerima konten pemikiran melalui acara thinking_delta.

Ketika display: "omitted" diatur, tidak ada acara thinking_delta yang dipancarkan. Lihat Mengontrol tampilan pemikiran.

Untuk dokumentasi lebih lanjut tentang streaming melalui Messages API, lihat Streaming Messages.

Berikut adalah cara menangani streaming dengan pemikiran:

Contoh output streaming:

Output
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-6", "stop_reason": null, "stop_sequence": null}}

event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": "", "signature": ""}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21\n147 = 7 × 21 + 0\n\nSo GCD(1071, 462) = 21"}}

// Additional thinking deltas...

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}

event: content_block_stop
data: {"type": "content_block_stop", "index": 0}

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "The greatest common divisor of 1071 and 462 is **21**."}}

// Additional text deltas...

event: content_block_stop
data: {"type": "content_block_stop", "index": 1}

event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}

event: message_stop
data: {"type": "message_stop"}

Ketika display: "omitted" diatur, blok pemikiran terbuka, satu signature_delta tiba, dan blok ditutup tanpa acara thinking_delta apa pun. Streaming teks dimulai segera setelah:

Output
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EosnCkYICxIMMb3LzNrMu..."}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}

Saat menggunakan streaming dengan pemikiran yang diaktifkan, Anda mungkin memperhatikan bahwa teks kadang-kadang tiba dalam potongan yang lebih besar bergantian dengan pengiriman token demi token yang lebih kecil. Ini adalah perilaku yang diharapkan, terutama untuk konten pemikiran.

Sistem streaming perlu memproses konten dalam batch untuk kinerja optimal, yang dapat menghasilkan pola pengiriman "chunky" ini, dengan kemungkinan penundaan antara acara streaming. Anthropic terus bekerja untuk meningkatkan pengalaman ini, dengan pembaruan di masa depan berfokus pada membuat konten pemikiran melakukan streaming dengan lebih lancar.

Pemikiran yang diperluas dengan penggunaan alat

Pemikiran yang diperluas dapat digunakan bersama dengan penggunaan alat, memungkinkan Claude untuk bernalar melalui pemilihan alat dan pemrosesan hasil.

Saat menggunakan pemikiran yang diperluas dengan penggunaan alat, perhatikan batasan berikut:

  1. Batasan pilihan alat: Penggunaan alat dengan pemikiran hanya mendukung tool_choice: {"type": "auto"} (default) atau tool_choice: {"type": "none"}. Menggunakan tool_choice: {"type": "any"} atau tool_choice: {"type": "tool", "name": "..."} akan menghasilkan kesalahan karena opsi ini memaksa penggunaan alat, yang tidak kompatibel dengan pemikiran yang diperluas.

  2. Melestarikan blok pemikiran: Selama penggunaan alat, Anda harus melewatkan blok thinking kembali ke API untuk pesan asisten terakhir. Sertakan blok yang tidak dimodifikasi sepenuhnya kembali ke API untuk mempertahankan kontinuitas penalaran.

Mengalihkan mode pemikiran dalam percakapan

Anda tidak dapat mengalihkan pemikiran di tengah giliran asisten, termasuk selama loop penggunaan alat. Seluruh giliran asisten harus beroperasi dalam satu mode pemikiran:

  • Jika pemikiran diaktifkan, giliran asisten akhir harus dimulai dengan blok pemikiran.
  • Jika pemikiran dinonaktifkan, giliran asisten akhir tidak boleh berisi blok pemikiran apa pun

Dari perspektif model, loop penggunaan alat adalah bagian dari giliran asisten. Giliran asisten tidak selesai sampai Claude menyelesaikan respons penuhnya, yang mungkin mencakup beberapa panggilan alat dan hasil.

Sebagai contoh, urutan ini semuanya adalah bagian dari satu giliran asisten:

User: "What's the weather in Paris?"
Assistant: [thinking] + [tool_use: get_weather]
User: [tool_result: "20°C, sunny"]
Assistant: [text: "The weather in Paris is 20°C and sunny"]

Meskipun ada beberapa pesan API, loop penggunaan alat secara konseptual adalah bagian dari satu respons asisten yang berkelanjutan.

Degradasi pemikiran yang elegan

Ketika konflik pemikiran pertengahan giliran terjadi (seperti mengalihkan pemikiran aktif atau nonaktif selama loop penggunaan alat), API secara otomatis menonaktifkan pemikiran untuk permintaan tersebut. Untuk mempertahankan kualitas model dan tetap pada distribusi, API dapat:

  • Menghapus blok pemikiran dari percakapan ketika mereka akan membuat struktur giliran yang tidak valid
  • Menonaktifkan pemikiran untuk permintaan saat ini ketika riwayat percakapan tidak kompatibel dengan pemikiran yang diaktifkan

Ini berarti bahwa mencoba mengalihkan pemikiran pertengahan giliran tidak akan menyebabkan kesalahan, tetapi pemikiran akan diam-diam dinonaktifkan untuk permintaan tersebut. Untuk mengonfirmasi apakah pemikiran aktif, periksa kehadiran blok thinking dalam respons.

Panduan praktis

Praktik terbaik: Rencanakan strategi pemikiran Anda di awal setiap giliran daripada mencoba mengalihkan pertengahan giliran.

Contoh: Mengalihkan pemikiran setelah menyelesaikan giliran

User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?"
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)

Dengan menyelesaikan giliran asisten sebelum mengalihkan pemikiran, Anda memastikan bahwa pemikiran benar-benar diaktifkan untuk permintaan baru.

Mengalihkan mode pemikiran juga membatalkan penyimpanan cache prompt untuk riwayat pesan. Untuk detail lebih lanjut, lihat bagian Extended thinking dengan penyimpanan cache prompt.

Mempertahankan blok pemikiran

Selama penggunaan alat, Anda harus meneruskan blok thinking kembali ke API, dan Anda harus menyertakan blok lengkap yang tidak dimodifikasi kembali ke API. Ini sangat penting untuk mempertahankan aliran penalaran model dan integritas percakapan.

Meskipun Anda dapat menghilangkan blok thinking dari giliran assistant sebelumnya, selalu teruskan semua blok pemikiran ke API untuk percakapan multi-giliran apa pun. API:

  • Secara otomatis memfilter blok pemikiran yang disediakan
  • Menggunakan blok pemikiran yang relevan yang diperlukan untuk mempertahankan penalaran model
  • Hanya menagih token input untuk blok yang ditampilkan ke Claude

Ketika mengalihkan mode pemikiran selama percakapan, ingat bahwa seluruh giliran asisten (termasuk loop penggunaan alat) harus beroperasi dalam satu mode pemikiran. Untuk detail lebih lanjut, lihat Mengalihkan mode pemikiran dalam percakapan.

Ketika Claude memanggil alat, itu menghentikan konstruksi respons untuk menunggu informasi eksternal. Ketika hasil alat dikembalikan, Claude melanjutkan membangun respons yang ada. Ini memerlukan pemeliharaan blok pemikiran selama penggunaan alat, untuk beberapa alasan:

  1. Kontinuitas penalaran: Blok pemikiran menangkap penalaran langkah demi langkah Claude yang menyebabkan permintaan alat. Ketika Anda memposting hasil alat, menyertakan pemikiran asli memastikan Claude dapat melanjutkan penalarannya dari tempat ia berhenti.

  2. Pemeliharaan konteks: Meskipun hasil alat muncul sebagai pesan pengguna dalam struktur API, mereka adalah bagian dari aliran penalaran yang berkelanjutan. Mempertahankan blok pemikiran mempertahankan aliran konseptual ini di seluruh panggilan API yang berbeda. Untuk informasi lebih lanjut tentang manajemen konteks, lihat panduan tentang jendela konteks.

Penting: Ketika memberikan blok thinking, seluruh urutan blok thinking berturut-turut harus cocok dengan output yang dihasilkan oleh model selama permintaan asli; Anda tidak dapat mengatur ulang atau memodifikasi urutan blok ini.

Pemikiran yang disisipi

Extended thinking dengan penggunaan alat dalam model Claude 4 mendukung pemikiran yang disisipi, yang memungkinkan Claude untuk berpikir di antara panggilan alat dan membuat penalaran yang lebih canggih setelah menerima hasil alat.

Dengan pemikiran yang disisipi, Claude dapat:

  • Bernalar tentang hasil panggilan alat sebelum memutuskan apa yang harus dilakukan selanjutnya
  • Menghubungkan beberapa panggilan alat dengan langkah penalaran di antaranya
  • Membuat keputusan yang lebih bernuansa berdasarkan hasil perantara

Dukungan model:

  • Claude Mythos Preview: Pemikiran yang disisipi terjadi secara otomatis. Setiap langkah penalaran antar-alat bergerak ke blok pemikiran alih-alih teks biasa, dan blok pemikiran dipertahankan di seluruh giliran secara default. Tidak ada header beta yang diperlukan atau didukung.
  • Claude Opus 4.7: Pemikiran yang disisipi secara otomatis diaktifkan saat menggunakan adaptive thinking (satu-satunya mode pemikiran yang didukung di Opus 4.7). Tidak ada header beta yang diperlukan.
  • Claude Opus 4.6: Pemikiran yang disisipi secara otomatis diaktifkan saat menggunakan adaptive thinking. Tidak ada header beta yang diperlukan. Header beta interleaved-thinking-2025-05-14 sudah usang di Opus 4.6 dan dengan aman diabaikan jika disertakan.
  • Claude Sonnet 4.6: Pemikiran yang disisipi secara otomatis diaktifkan saat menggunakan adaptive thinking (direkomendasikan). Header beta interleaved-thinking-2025-05-14 dengan extended thinking manual (thinking: {type: "enabled"}) masih berfungsi tetapi sudah usang.
  • Model Claude 4 lainnya (Opus 4.5, Opus 4.1, Opus 4 (usang), Sonnet 4.5, Sonnet 4 (usang)): Tambahkan ke permintaan API Anda untuk mengaktifkan pemikiran yang disisipi.

Berikut adalah beberapa pertimbangan penting untuk pemikiran yang disisipi:

  • Dengan pemikiran yang disisipi, budget_tokens dapat melebihi parameter max_tokens, karena mewakili anggaran total di seluruh semua blok pemikiran dalam satu giliran asisten.
  • Pemikiran yang disisipi hanya didukung untuk alat yang digunakan melalui Messages API.
  • Panggilan langsung ke Claude API memungkinkan Anda meneruskan interleaved-thinking-2025-05-14 dalam permintaan ke model apa pun, tanpa efek (kecuali Opus 4.7 dan Opus 4.6, di mana sudah usang dan dengan aman diabaikan).
  • Di platform pihak ketiga (misalnya, Amazon Bedrock dan Vertex AI), jika Anda meneruskan interleaved-thinking-2025-05-14 ke model apa pun selain Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4 (usang), Sonnet 4.5, atau Sonnet 4 (usang), permintaan Anda akan gagal.

Pemikiran yang diperluas dengan prompt caching

Prompt caching dengan pemikiran memiliki beberapa pertimbangan penting:

Tugas pemikiran yang diperluas sering kali membutuhkan waktu lebih dari 5 menit untuk diselesaikan. Pertimbangkan untuk menggunakan durasi cache 1 jam untuk mempertahankan cache hits di seluruh sesi pemikiran yang lebih lama dan alur kerja multi-langkah.

Penghapusan konteks blok pemikiran

  • Blok pemikiran dari giliran sebelumnya dihapus dari konteks, yang dapat mempengaruhi titik putus cache
  • Saat melanjutkan percakapan dengan penggunaan alat, blok pemikiran di-cache dan dihitung sebagai token input saat dibaca dari cache
  • Ini menciptakan pertukaran: meskipun blok pemikiran tidak mengonsumsi ruang jendela konteks secara visual, mereka tetap dihitung terhadap penggunaan token input Anda saat di-cache
  • Jika pemikiran menjadi dinonaktifkan dan Anda meneruskan konten pemikiran dalam giliran penggunaan alat saat ini, konten pemikiran akan dihapus dan pemikiran akan tetap dinonaktifkan untuk permintaan tersebut

Pola invalidasi cache

  • Perubahan pada parameter pemikiran (diaktifkan/dinonaktifkan atau alokasi anggaran) membatalkan titik putus cache pesan
  • Pemikiran yang disisipi memperkuat invalidasi cache, karena blok pemikiran dapat terjadi di antara beberapa panggilan alat
  • Prompt sistem dan alat tetap di-cache meskipun ada perubahan parameter pemikiran atau penghapusan blok

Meskipun blok pemikiran dihapus untuk caching dan perhitungan konteks, mereka harus dipertahankan saat melanjutkan percakapan dengan penggunaan alat, terutama dengan pemikiran yang disisipi.

Memahami perilaku caching blok pemikiran

Saat menggunakan pemikiran yang diperluas dengan penggunaan alat, blok pemikiran menunjukkan perilaku caching tertentu yang mempengaruhi penghitungan token:

Cara kerjanya:

  1. Caching hanya terjadi ketika Anda membuat permintaan berikutnya yang mencakup hasil alat
  2. Ketika permintaan berikutnya dibuat, riwayat percakapan sebelumnya (termasuk blok pemikiran) dapat di-cache
  3. Blok pemikiran yang di-cache ini dihitung sebagai token input dalam metrik penggunaan Anda ketika dibaca dari cache
  4. Ketika blok pengguna non-hasil-alat disertakan, semua blok pemikiran sebelumnya diabaikan dan dihapus dari konteks

Alur contoh terperinci:

Permintaan 1:

User: "What's the weather in Paris?"

Respons 1:

[thinking_block_1] + [tool_use block 1]

Permintaan 2:

User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]

Respons 2:

[thinking_block_2] + [text block 2]

Permintaan 2 menulis cache dari konten permintaan (bukan respons). Cache mencakup pesan pengguna asli, blok pemikiran pertama, blok penggunaan alat, dan hasil alat.

Permintaan 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]

Untuk Claude Opus 4.5 dan yang lebih baru (termasuk Claude Opus 4.6), semua blok pemikiran sebelumnya disimpan secara default. Untuk model yang lebih lama, karena blok pengguna non-hasil-alat disertakan, semua blok pemikiran sebelumnya diabaikan. Permintaan ini akan diproses sama dengan:

User: ["What's the weather in Paris?"],
Assistant: [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [text block 2],
User: [Text response, cache=True]

Poin-poin kunci:

  • Perilaku caching ini terjadi secara otomatis, bahkan tanpa penanda cache_control eksplisit
  • Perilaku ini konsisten apakah menggunakan pemikiran reguler atau pemikiran yang disisipi

Token maksimal dan ukuran jendela konteks dengan pemikiran yang diperluas

Dalam model Claude yang lebih lama (sebelum Claude Sonnet 3.7), jika jumlah token prompt dan max_tokens melebihi jendela konteks model, sistem akan secara otomatis menyesuaikan max_tokens agar sesuai dengan batas konteks. Ini berarti Anda dapat mengatur nilai max_tokens yang besar dan sistem akan secara diam-diam menguranginya sesuai kebutuhan.

Dengan model Claude 3.7 dan 4, max_tokens (yang mencakup anggaran pemikiran Anda ketika pemikiran diaktifkan) diberlakukan sebagai batas yang ketat. Sistem sekarang akan mengembalikan kesalahan validasi jika token prompt + max_tokens melebihi ukuran jendela konteks.

Anda dapat membaca panduan tentang jendela konteks untuk penyelaman yang lebih mendalam.

Jendela konteks dengan pemikiran yang diperluas

Saat menghitung penggunaan jendela konteks dengan pemikiran diaktifkan, ada beberapa pertimbangan yang perlu diperhatikan:

  • Blok pemikiran dari putaran sebelumnya dihapus dan tidak dihitung terhadap jendela konteks Anda
  • Pemikiran putaran saat ini dihitung terhadap batas max_tokens untuk putaran tersebut

Diagram di bawah menunjukkan manajemen token khusus ketika pemikiran yang diperluas diaktifkan:

Diagram jendela konteks dengan pemikiran yang diperluas

Jendela konteks yang efektif dihitung sebagai:

context window =
  (current input tokens - previous thinking tokens) +
  (thinking tokens + encrypted thinking tokens + text output tokens)

Gunakan API penghitungan token untuk mendapatkan penghitungan token yang akurat untuk kasus penggunaan spesifik Anda, terutama saat bekerja dengan percakapan multi-putaran yang mencakup pemikiran.

Jendela konteks dengan pemikiran yang diperluas dan penggunaan alat

Saat menggunakan pemikiran yang diperluas dengan penggunaan alat, blok pemikiran harus secara eksplisit dipertahankan dan dikembalikan dengan hasil alat.

Perhitungan jendela konteks yang efektif untuk pemikiran yang diperluas dengan penggunaan alat menjadi:

context window =
  (current input tokens + previous thinking tokens + tool use tokens) +
  (thinking tokens + encrypted thinking tokens + text output tokens)

Diagram di bawah mengilustrasikan manajemen token untuk pemikiran yang diperluas dengan penggunaan alat:

Diagram jendela konteks dengan pemikiran yang diperluas dan penggunaan alat

Mengelola token dengan pemikiran yang diperluas

Mengingat perilaku jendela konteks dan max_tokens dengan pemikiran yang diperluas pada model Claude 3.7 dan 4, Anda mungkin perlu:

  • Memantau dan mengelola penggunaan token Anda dengan lebih aktif
  • Menyesuaikan nilai max_tokens saat panjang prompt Anda berubah
  • Berpotensi menggunakan endpoint penghitungan token lebih sering
  • Menyadari bahwa blok pemikiran sebelumnya tidak terakumulasi dalam jendela konteks Anda

Perubahan ini telah dilakukan untuk memberikan perilaku yang lebih dapat diprediksi dan transparan, terutama karena batas token maksimal telah meningkat secara signifikan.

Enkripsi pemikiran

Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.

It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns. If you pass them back, whether the API keeps or strips them depends on the model: Opus 4.5+ and Sonnet 4.6+ keep them in context by default; earlier Opus/Sonnet models and all Haiku models strip them. See context editing to configure this.

If sending back thinking blocks, pass everything back as you received it for consistency and to avoid potential issues.

Here are some important considerations on thinking encryption:

  • When streaming responses, the signature is added via a signature_delta inside a content_block_delta event just before the content_block_stop event.
  • signature values are significantly longer in Claude 4 models than in previous models.
  • The signature field is an opaque field and should not be interpreted or parsed.
  • signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.

Blok pemikiran yang diredaksi

Selain blok thinking biasa, API dapat mengembalikan blok redacted_thinking. Blok redacted_thinking berisi konten pemikiran terenkripsi dalam bidang data, tanpa ringkasan yang dapat dibaca:

{
  "type": "redacted_thinking",
  "data": "..."
}

Bidang data bersifat opak dan terenkripsi. Seperti bidang signature pada blok pemikiran biasa, Anda harus mengirimkan blok redacted_thinking kembali ke API tanpa perubahan saat melanjutkan percakapan multi-putaran dengan alat.

Jika kode Anda memfilter blok konten berdasarkan tipe (misalnya, block.type == "thinking") saat mengembalikan respons dengan penggunaan alat, juga sertakan blok redacted_thinking. Pemfilteran hanya pada block.type == "thinking" secara diam-diam menghapus blok redacted_thinking dan merusak protokol multi-putaran yang dijelaskan di atas.

Blok redacted_thinking adalah tipe blok konten yang berbeda yang dikembalikan oleh API ketika bagian dari pemikiran diredaksi untuk keamanan. Ini terpisah dari opsi display: "omitted", yang mengembalikan blok thinking biasa dengan bidang thinking kosong.

Perbedaan pemikiran di seluruh versi model

Messages API menangani pemikiran secara berbeda di seluruh model Claude Sonnet 3.7 dan Claude 4, terutama dalam perilaku peringkasan.

Lihat tabel di bawah untuk perbandingan yang diringkas:

FiturClaude Sonnet 3.7Model Claude 4 (pra-Opus 4.5)Claude Opus 4.5Claude Sonnet 4.6Claude Opus 4.6 (adaptive thinking)Claude Mythos Preview (adaptive thinking)
Output PemikiranMengembalikan output pemikiran lengkapMengembalikan pemikiran yang diringkasMengembalikan pemikiran yang diringkasMengembalikan pemikiran yang diringkasMengembalikan pemikiran yang diringkasDihilangkan secara default; atur display: "summarized" untuk menerima pemikiran yang diringkas. Token pemikiran mentah tidak pernah dikembalikan.
Pemikiran yang DisisipiTidak didukungDidukung dengan header beta interleaved-thinking-2025-05-14Didukung dengan header beta interleaved-thinking-2025-05-14

Pelestarian blok pemikiran di Claude Opus 4.5 dan yang lebih baru

Dimulai dengan Claude Opus 4.5 (dan berlanjut di Claude Opus 4.6), blok pemikiran dari putaran asisten sebelumnya dipertahankan dalam konteks model secara default. Ini berbeda dari model yang lebih awal, yang menghapus blok pemikiran dari putaran sebelumnya.

Manfaat pelestarian blok pemikiran:

  • Optimasi cache: Saat menggunakan penggunaan alat, blok pemikiran yang dipertahankan memungkinkan cache hits karena mereka dilewatkan kembali dengan hasil alat dan di-cache secara bertahap di seluruh putaran asisten, menghasilkan penghematan token dalam alur kerja multi-langkah
  • Tidak ada dampak kecerdasan: Mempertahankan blok pemikiran tidak memiliki efek negatif pada kinerja model

Pertimbangan penting:

  • Penggunaan konteks: Percakapan panjang akan mengonsumsi lebih banyak ruang konteks karena blok pemikiran dipertahankan dalam konteks
  • Perilaku otomatis: Ini adalah perilaku default untuk model Claude Opus 4.5 dan yang lebih baru (termasuk Claude Mythos Preview dan Claude Opus 4.6). Tidak ada perubahan kode atau header beta yang diperlukan
  • Kompatibilitas mundur: Untuk memanfaatkan fitur ini, terus lewatkan blok pemikiran lengkap yang tidak dimodifikasi kembali ke API seperti yang Anda lakukan untuk penggunaan alat

Untuk model yang lebih awal (Claude Sonnet 4.5, Opus 4.1, dll.), blok pemikiran dari putaran sebelumnya terus dihapus dari konteks. Perilaku yang ada yang dijelaskan dalam bagian Extended thinking with prompt caching berlaku untuk model tersebut.

Harga

For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.

The thinking process incurs charges for:

  • Tokens used during thinking (output tokens)
  • Thinking blocks from prior assistant turns kept in context: only the last turn on earlier Opus/Sonnet models and all Haiku models; all turns by default on Opus 4.5+ and Sonnet 4.6+ (input tokens)
  • Standard text output tokens

When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.

When using summarized thinking:

  • Input tokens: Tokens in your original request (excludes thinking tokens from previous turns)
  • Output tokens (billed): The original thinking tokens that Claude generated internally
  • Output tokens (visible): The summarized thinking tokens you see in the response
  • No charge: Tokens used to generate the summary

When using display: "omitted":

  • Input tokens: Tokens in your original request (same as summarized)
  • Output tokens (billed): The original thinking tokens that Claude generated internally (same as summarized)
  • Output tokens (visible): Zero thinking tokens (the thinking field is empty)

The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the thinking content visible in the response.

Praktik terbaik dan pertimbangan untuk pemikiran yang diperluas

Bekerja dengan anggaran pemikiran

  • Optimasi anggaran: Anggaran minimum adalah 1.024 token. Mulai dengan minimum dan tingkatkan anggaran pemikiran secara bertahap untuk menemukan rentang optimal untuk kasus penggunaan Anda. Jumlah token yang lebih tinggi memungkinkan penalaran yang lebih komprehensif tetapi dengan hasil yang semakin berkurang tergantung pada tugas. Meningkatkan anggaran dapat meningkatkan kualitas respons dengan pertukaran peningkatan latensi. Untuk tugas-tugas penting, uji pengaturan yang berbeda untuk menemukan keseimbangan optimal. Perhatikan bahwa anggaran pemikiran adalah target daripada batas yang ketat. Penggunaan token aktual dapat bervariasi berdasarkan tugas.
  • Titik awal: Mulai dengan anggaran pemikiran yang lebih besar (16k+ token) untuk tugas-tugas kompleks dan sesuaikan berdasarkan kebutuhan Anda.
  • Anggaran besar: Untuk anggaran pemikiran di atas 32k, gunakan batch processing untuk menghindari masalah jaringan. Permintaan yang mendorong model untuk berpikir di atas 32k token menyebabkan permintaan yang berjalan lama yang mungkin berjalan melawan batas waktu sistem dan batas koneksi terbuka.
  • Pelacakan penggunaan token: Pantau penggunaan token pemikiran untuk mengoptimalkan biaya dan kinerja.

Pertimbangan kinerja

  • Waktu respons: Bersiaplah untuk waktu respons yang lebih lama karena pemrosesan tambahan. Menghasilkan blok pemikiran meningkatkan waktu respons keseluruhan.
  • Persyaratan streaming: SDK memerlukan streaming ketika max_tokens lebih besar dari 21.333 untuk menghindari timeout HTTP pada permintaan yang berjalan lama. Ini adalah validasi sisi klien, bukan pembatasan API. Jika Anda tidak perlu memproses acara secara bertahap, gunakan .stream() dengan .get_final_message() (Python) atau .finalMessage() (TypeScript) untuk mendapatkan objek Message lengkap tanpa menangani acara individual. Lihat Streaming Messages untuk detail. Saat streaming, bersiaplah untuk menangani blok konten pemikiran dan teks saat mereka tiba.
  • Menghilangkan pemikiran untuk latensi: Jika aplikasi Anda tidak menampilkan konten pemikiran, atur display: "omitted" pada konfigurasi pemikiran untuk mengurangi waktu-ke-token-teks-pertama. Lihat Controlling thinking display.

Kompatibilitas fitur

  • Pemikiran tidak kompatibel dengan modifikasi temperature atau top_k serta forced tool use.
  • Ketika pemikiran diaktifkan, Anda dapat mengatur top_p ke nilai antara 1 dan 0,95.
  • Anda tidak dapat mengisi respons sebelumnya ketika pemikiran diaktifkan.
  • Perubahan pada anggaran pemikiran membatalkan awalan prompt yang di-cache yang mencakup pesan. Namun, prompt sistem yang di-cache dan definisi alat akan terus berfungsi ketika parameter pemikiran berubah.

Pedoman penggunaan

  • Pemilihan tugas: Gunakan pemikiran yang diperluas untuk tugas-tugas yang sangat kompleks yang mendapat manfaat dari penalaran langkah demi langkah, seperti matematika, pengkodean, dan analisis.
  • Penanganan konteks: Anda tidak perlu menghapus blok pemikiran sebelumnya sendiri. Claude API secara otomatis mengabaikan blok pemikiran dari putaran sebelumnya dan mereka tidak disertakan saat menghitung penggunaan konteks.
  • Rekayasa prompt: Tinjau tips prompting pemikiran yang diperluas jika Anda ingin memaksimalkan kemampuan pemikiran Claude.

Langkah berikutnya

Coba buku masak pemikiran yang diperluas

Jelajahi contoh praktis pemikiran dalam buku masak.

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 10000},
    messages=[
        {
            "role": "user",
            "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?",
        }
    ],
)

# The response contains summarized thinking blocks and text blocks
for block in response.content:
    if block.type == "thinking":
        print(f"\nThinking summary: {block.thinking}")
    elif block.type == "text":
        print(f"\nResponse: {block.text}")
Try in Console
client = anthropic.Anthropic()

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 10000},
    messages=[
        {
            "role": "user",
            "content": "What is the greatest common divisor of 1071 and 462?",
        }
    ],
) as stream:
    thinking_started = False
    response_started = False

    for event in stream:
        if event.type == "content_block_start":
            print(f"\nStarting {event.content_block.type} block...")
            # Reset flags for each new block
            thinking_started = False
            response_started = False
        elif event.type == "content_block_delta":
            if event.delta.type == "thinking_delta":
                if not thinking_started:
                    print("Thinking: ", end="", flush=True)
                    thinking_started = True
                print(event.delta.thinking, end="", flush=True)
            elif event.delta.type == "text_delta":
                if not response_started:
                    print("Response: ", end="", flush=True)
                    response_started = True
                print(event.delta.text, end="", flush=True)
        elif event.type == "content_block_stop":
            print("\nBlock complete.")
header beta
interleaved-thinking-2025-05-14

Didukung dengan header beta interleaved-thinking-2025-05-14 atau otomatis dengan adaptive thinking
Otomatis dengan adaptive thinking (header beta tidak didukung)
Otomatis dengan adaptive thinking (header beta tidak didukung). Penalaran antar-alat berpindah ke blok pemikiran pada model ini.
Pelestarian Blok PemikiranTidak dipertahankan di seluruh putaranTidak dipertahankan di seluruh putaranDipertahankan secara defaultDipertahankan secara defaultDipertahankan secara defaultDipertahankan secara default. Blok dihapus saat melanjutkan percakapan pada model yang tidak mendukung format pemikiran Mythos.
Tips prompting pemikiran yang diperluas

Pelajari praktik terbaik rekayasa prompt untuk pemikiran yang diperluas.