Was this page helpful?
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.
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) dan model yang lebih baru: extended thinking manual tidak lagi didukung. Gunakan adaptive thinking (thinking: {type: "adaptive"}) dengan parameter effort sebagai gantinya.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): adaptive thinking direkomendasikan; mode manual (type: "enabled") sudah usang tetapi masih berfungsi.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.
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.
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.
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:
In rare cases where you need access to full thinking output for Claude 4 models, contact Anthropic sales.
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:
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).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:
{
"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.
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:
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:
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 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:
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.
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.
Anda tidak dapat mengalihkan pemikiran di tengah giliran asisten, termasuk selama loop penggunaan alat. Seluruh giliran asisten harus beroperasi dalam satu mode pemikiran:
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.
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:
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.
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.
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:
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:
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.
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.
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:
Dukungan model:
interleaved-thinking-2025-05-14 sudah usang di Opus 4.6 dan dengan aman diabaikan jika disertakan.interleaved-thinking-2025-05-14 dengan extended thinking manual (thinking: {type: "enabled"}) masih berfungsi tetapi sudah usang.Berikut adalah beberapa pertimbangan penting untuk pemikiran yang disisipi:
budget_tokens dapat melebihi parameter max_tokens, karena mewakili anggaran total di seluruh semua blok pemikiran dalam satu giliran asisten.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).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.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
Pola invalidasi cache
Meskipun blok pemikiran dihapus untuk caching dan perhitungan konteks, mereka harus dipertahankan saat melanjutkan percakapan dengan penggunaan alat, terutama dengan pemikiran yang disisipi.
Saat menggunakan pemikiran yang diperluas dengan penggunaan alat, blok pemikiran menunjukkan perilaku caching tertentu yang mempengaruhi penghitungan token:
Cara kerjanya:
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:
cache_control eksplisitDalam 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.
Saat menghitung penggunaan jendela konteks dengan pemikiran diaktifkan, ada beberapa pertimbangan yang perlu diperhatikan:
max_tokens untuk putaran tersebutDiagram di bawah menunjukkan manajemen token khusus ketika pemikiran yang diperluas diaktifkan:
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.
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:
Mengingat perilaku jendela konteks dan max_tokens dengan pemikiran yang diperluas pada model Claude 3.7 dan 4, Anda mungkin perlu:
max_tokens saat panjang prompt Anda berubahPerubahan ini telah dilakukan untuk memberikan perilaku yang lebih dapat diprediksi dan transparan, terutama karena batas token maksimal telah meningkat secara signifikan.
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:
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.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.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.
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:
| Fitur | Claude Sonnet 3.7 | Model Claude 4 (pra-Opus 4.5) | Claude Opus 4.5 | Claude Sonnet 4.6 | Claude Opus 4.6 (adaptive thinking) | Claude Mythos Preview (adaptive thinking) |
|---|---|---|---|---|---|---|
| Output Pemikiran | Mengembalikan output pemikiran lengkap | Mengembalikan pemikiran yang diringkas | Mengembalikan pemikiran yang diringkas | Mengembalikan pemikiran yang diringkas | Mengembalikan pemikiran yang diringkas | Dihilangkan secara default; atur display: "summarized" untuk menerima pemikiran yang diringkas. Token pemikiran mentah tidak pernah dikembalikan. |
| Pemikiran yang Disisipi | Tidak didukung | Didukung dengan header beta interleaved-thinking-2025-05-14 | Didukung dengan header beta interleaved-thinking-2025-05-14 |
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:
Pertimbangan penting:
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.
For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.
The thinking process incurs charges for:
When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.
When using summarized thinking:
When using display: "omitted":
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.
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.display: "omitted" pada konfigurasi pemikiran untuk mengurangi waktu-ke-token-teks-pertama. Lihat Controlling thinking display.temperature atau top_k serta forced tool use.top_p ke nilai antara 1 dan 0,95.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}")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.")interleaved-thinking-2025-05-14Didukung 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 Pemikiran | Tidak dipertahankan di seluruh putaran | Tidak dipertahankan di seluruh putaran | Dipertahankan secara default | Dipertahankan secara default | Dipertahankan secara default | Dipertahankan secara default. Blok dihapus saat melanjutkan percakapan pada model yang tidak mendukung format pemikiran Mythos. |
Pelajari praktik terbaik rekayasa prompt untuk pemikiran yang diperluas.