Membangun dengan extended thinking
Extended thinking memberikan Claude kemampuan penalaran yang ditingkatkan untuk tugas-tugas kompleks, sambil menyediakan berbagai tingkat transparansi ke dalam proses pemikiran langkah demi langkah sebelum memberikan jawaban akhir.
Model yang didukung
Extended thinking didukung dalam model-model berikut:
- Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Sonnet 3.7 (
claude-3-7-sonnet-20250219
)
Perilaku API berbeda di antara model Claude 3.7 dan Claude 4, tetapi bentuk API tetap sama persis.
Untuk informasi lebih lanjut, lihat Perbedaan dalam thinking di berbagai 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 akan mencakup blok konten thinking
, diikuti oleh blok konten text
.
Berikut adalah contoh format respons default:
Untuk informasi lebih lanjut tentang format respons extended thinking, lihat Referensi API Messages.
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.
Parameter budget_tokens
menentukan jumlah maksimum token yang diizinkan Claude gunakan untuk proses penalaran internalnya. Dalam model Claude 4, batas ini berlaku untuk token thinking penuh, dan bukan untuk output yang dirangkum. 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
harus diatur ke nilai yang kurang dari max_tokens
. Namun, ketika menggunakan interleaved thinking dengan tools, Anda dapat melebihi batas ini karena batas token menjadi seluruh jendela konteks Anda (200k token).
Summarized thinking
Dengan extended thinking diaktifkan, Messages API untuk model Claude 4 mengembalikan ringkasan dari proses thinking penuh Claude. Summarized thinking memberikan manfaat kecerdasan penuh dari extended thinking, sambil mencegah penyalahgunaan.
Berikut adalah beberapa pertimbangan penting untuk summarized thinking:
- Anda ditagih untuk token thinking penuh yang dihasilkan oleh permintaan asli, bukan token ringkasan.
- Jumlah token output yang ditagih tidak akan cocok dengan jumlah token yang Anda lihat dalam respons.
- Beberapa baris pertama output thinking lebih verbose, memberikan penalaran detail yang sangat membantu untuk tujuan prompt engineering.
- Karena Anthropic berusaha meningkatkan fitur extended thinking, perilaku peringkasan dapat berubah.
- Peringkasan mempertahankan ide-ide kunci dari proses thinking Claude dengan latensi tambahan minimal, memungkinkan pengalaman pengguna yang dapat di-stream dan migrasi mudah dari model Claude 3.7 ke model Claude 4.
- Peringkasan diproses oleh model yang berbeda dari yang Anda targetkan dalam permintaan Anda. Model thinking tidak melihat output yang dirangkum.
Claude Sonnet 3.7 terus mengembalikan output thinking penuh.
Dalam kasus langka di mana Anda memerlukan akses ke output thinking penuh untuk model Claude 4, hubungi tim penjualan kami.
Streaming thinking
Anda dapat melakukan stream respons extended thinking menggunakan server-sent events (SSE).
Ketika streaming diaktifkan untuk extended thinking, Anda menerima konten thinking melalui event thinking_delta
.
Untuk dokumentasi lebih lanjut tentang streaming melalui Messages API, lihat Streaming Messages.
Berikut cara menangani streaming dengan thinking:
Contoh output streaming:
Ketika menggunakan streaming dengan thinking diaktifkan, Anda mungkin memperhatikan bahwa teks terkadang tiba dalam potongan yang lebih besar bergantian dengan pengiriman yang lebih kecil, token demi token. Ini adalah perilaku yang diharapkan, terutama untuk konten thinking.
Sistem streaming perlu memproses konten dalam batch untuk kinerja optimal, yang dapat menghasilkan pola pengiriman “chunky” ini, dengan kemungkinan penundaan antara event streaming. Kami terus bekerja untuk meningkatkan pengalaman ini, dengan pembaruan masa depan yang berfokus pada membuat konten thinking streaming lebih lancar.
Extended thinking dengan penggunaan tool
Extended thinking dapat digunakan bersama dengan penggunaan tool, memungkinkan Claude untuk bernalar melalui pemilihan tool dan pemrosesan hasil.
Ketika menggunakan extended thinking dengan penggunaan tool, waspadai keterbatasan berikut:
-
Keterbatasan pilihan tool: Penggunaan tool dengan thinking hanya mendukung
tool_choice: {"type": "auto"}
(default) atautool_choice: {"type": "none"}
. Menggunakantool_choice: {"type": "any"}
atautool_choice: {"type": "tool", "name": "..."}
akan menghasilkan error karena opsi ini memaksa penggunaan tool, yang tidak kompatibel dengan extended thinking. -
Mempertahankan blok thinking: Selama penggunaan tool, Anda harus mengirimkan blok
thinking
kembali ke API untuk pesan assistant terakhir. Sertakan blok yang lengkap dan tidak dimodifikasi kembali ke API untuk mempertahankan kontinuitas penalaran.
Mempertahankan blok thinking
Selama penggunaan tool, Anda harus mengirimkan blok thinking
kembali ke API, dan Anda harus menyertakan blok yang lengkap dan tidak dimodifikasi kembali ke API. Ini sangat penting untuk mempertahankan alur penalaran model dan integritas percakapan.
Meskipun Anda dapat menghilangkan blok thinking
dari giliran assistant
sebelumnya, kami menyarankan untuk selalu mengirimkan kembali semua blok thinking ke API untuk percakapan multi-turn apa pun. API akan:
- Secara otomatis memfilter blok thinking yang disediakan
- Menggunakan blok thinking yang relevan yang diperlukan untuk mempertahankan penalaran model
- Hanya menagih token input untuk blok yang ditunjukkan kepada Claude
Ketika Claude memanggil tools, ia menghentikan konstruksi respons untuk menunggu informasi eksternal. Ketika hasil tool dikembalikan, Claude akan melanjutkan membangun respons yang ada. Ini mengharuskan mempertahankan blok thinking selama penggunaan tool, untuk beberapa alasan:
-
Kontinuitas penalaran: Blok thinking menangkap penalaran langkah demi langkah Claude yang mengarah ke permintaan tool. Ketika Anda mengirimkan hasil tool, menyertakan thinking asli memastikan Claude dapat melanjutkan penalarannya dari tempat ia berhenti.
-
Pemeliharaan konteks: Meskipun hasil tool muncul sebagai pesan pengguna dalam struktur API, mereka adalah bagian dari alur penalaran yang berkelanjutan. Mempertahankan blok thinking mempertahankan alur konseptual ini di seluruh beberapa panggilan API. Untuk informasi lebih lanjut tentang manajemen konteks, lihat panduan kami tentang jendela konteks.
Penting: Ketika menyediakan 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.
Interleaved thinking
Extended thinking dengan penggunaan tool dalam model Claude 4 mendukung interleaved thinking, yang memungkinkan Claude untuk berpikir di antara panggilan tool dan membuat penalaran yang lebih canggih setelah menerima hasil tool.
Dengan interleaved thinking, Claude dapat:
- Bernalar tentang hasil panggilan tool sebelum memutuskan apa yang harus dilakukan selanjutnya
- Menghubungkan beberapa panggilan tool dengan langkah penalaran di antaranya
- Membuat keputusan yang lebih bernuansa berdasarkan hasil perantara
Untuk mengaktifkan interleaved thinking, tambahkan header beta interleaved-thinking-2025-05-14
ke permintaan API Anda.
Berikut adalah beberapa pertimbangan penting untuk interleaved thinking:
- Dengan interleaved thinking,
budget_tokens
dapat melebihi parametermax_tokens
, karena ini mewakili total anggaran di semua blok thinking dalam satu giliran assistant. - Interleaved thinking hanya didukung untuk tools yang digunakan melalui Messages API.
- Interleaved thinking didukung untuk model Claude 4 saja, dengan header beta
interleaved-thinking-2025-05-14
. - Panggilan langsung ke API Anthropic memungkinkan Anda mengirimkan
interleaved-thinking-2025-05-14
dalam permintaan ke model apa pun, tanpa efek. - Pada platform pihak ketiga (misalnya, Amazon Bedrock dan Vertex AI), jika Anda mengirimkan
interleaved-thinking-2025-05-14
ke model apa pun selain Claude Opus 4 atau Sonnet 4, permintaan Anda akan gagal.
Extended thinking dengan prompt caching
Prompt caching dengan thinking memiliki beberapa pertimbangan penting:
Tugas extended thinking sering memakan waktu lebih dari 5 menit untuk diselesaikan. Pertimbangkan menggunakan durasi cache 1 jam untuk mempertahankan cache hit di seluruh sesi thinking yang lebih lama dan alur kerja multi-langkah.
Penghapusan konteks blok thinking
- Blok thinking dari giliran sebelumnya dihapus dari konteks, yang dapat mempengaruhi breakpoint cache
- Ketika melanjutkan percakapan dengan penggunaan tool, blok thinking di-cache dan dihitung sebagai token input ketika dibaca dari cache
- Ini menciptakan trade-off: meskipun blok thinking tidak mengonsumsi ruang jendela konteks secara visual, mereka masih dihitung terhadap penggun aan token input Anda ketika di-cache
- Jika thinking menjadi dinonaktifkan, permintaan akan gagal jika Anda mengirimkan konten thinking dalam giliran penggunaan tool saat ini. Dalam konteks lain, konten thinking yang dikirimkan ke API hanya diabaikan
Pola invalidasi cache
- Perubahan pada parameter thinking (diaktifkan/dinonaktifkan atau alokasi anggaran) membatalkan breakpoint cache pesan
- Interleaved thinking memperkuat invalidasi cache, karena blok thinking dapat terjadi di antara beberapa panggilan tool
- Prompt sistem dan tools tetap di-cache meskipun parameter thinking berubah atau blok dihapus
Meskipun blok thinking dihapus untuk caching dan perhitungan konteks, mereka harus dipertahankan ketika melanjutkan percakapan dengan penggunaan tool, terutama dengan interleaved thinking.
Memahami perilaku caching blok thinking
Ketika menggunakan extended thinking dengan penggunaan tool, blok thinking menunjukkan perilaku caching spesifik yang mempengaruhi penghitungan token:
Cara kerjanya:
- Caching hanya terjadi ketika Anda membuat permintaan berikutnya yang mencakup hasil tool
- Ketika permintaan berikutnya dibuat, riwayat percakapan sebelumnya (termasuk blok thinking) dapat di-cache
- Blok thinking yang di-cache ini dihitung sebagai token input dalam metrik penggunaan Anda ketika dibaca dari cache
- Ketika blok pengguna non-tool-result disertakan, semua blok thinking sebelumnya diabaikan dan dihapus dari konteks
Contoh alur detail:
Permintaan 1:
Respons 1:
Permintaan 2:
Respons 2:
Permintaan 2 menulis cache dari konten permintaan (bukan respons). Cache mencakup pesan pengguna asli, blok thinking pertama, blok penggunaan tool, dan hasil tool.
Permintaan 3:
Karena blok pengguna non-tool-result disertakan, semua blok thinking sebelumnya diabaikan. Permintaan ini akan diproses sama seperti:
Poin kunci:
- Perilaku caching ini terjadi secara otomatis, bahkan tanpa penanda
cache_control
eksplisit - Perilaku ini konsisten baik menggunakan thinking reguler atau interleaved thinking
Max tokens dan ukuran jendela konteks dengan extended thinking
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 thinking Anda ketika thinking diaktifkan) diberlakukan sebagai batas yang ketat. Sistem sekarang akan mengembalikan error validasi jika token prompt + max_tokens
melebihi ukuran jendela konteks.
Anda dapat membaca panduan kami tentang jendela konteks untuk pendalaman yang lebih menyeluruh.
Jendela konteks dengan extended thinking
Ketika menghitung penggunaan jendela konteks dengan thinking diaktifkan, ada beberapa pertimbangan yang perlu diketahui:
- Blok thinking dari giliran sebelumnya dihapus dan tidak dihitung terhadap jendela konteks Anda
- Thinking giliran saat ini dihitung terhadap batas
max_tokens
Anda untuk giliran tersebut
Diagram di bawah ini menunjukkan manajemen token khusus ketika extended thinking diaktifkan:
Jendela konteks efektif dihitung sebagai:
Kami merekomendasikan menggunakan API penghitungan token untuk mendapatkan jumlah token yang akurat untuk kasus penggunaan spesifik Anda, terutama ketika bekerja dengan percakapan multi-turn yang mencakup thinking.
Jendela konteks dengan extended thinking dan penggunaan tool
Ketika menggunakan extended thinking dengan penggunaan tool, blok thinking harus secara eksplisit dipertahankan dan dikembalikan dengan hasil tool.
Perhitungan jendela konteks efektif untuk extended thinking dengan penggunaan tool menjadi:
Diagram di bawah ini mengilustrasikan manajemen token untuk extended thinking dengan penggunaan tool:
Mengelola token dengan extended thinking
Mengingat perilaku jendela konteks dan max_tokens
dengan model extended thinking Claude 3.7 dan 4, Anda mungkin perlu:
- Lebih aktif memantau dan mengelola penggunaan token Anda
- Menyesuaikan nilai
max_tokens
saat panjang prompt Anda berubah - Berpotensi menggunakan endpoint penghitungan token lebih sering
- Menyadari bahwa blok thinking sebelumnya tidak terakumulasi dalam jendela konteks Anda
Perubahan ini telah dibuat untuk memberikan perilaku yang lebih dapat diprediksi dan transparan, terutama karena batas token maksimum telah meningkat secara signifikan.
Enkripsi thinking
Konten thinking penuh dienkripsi dan dikembalikan dalam field signature
. Field ini digunakan untuk memverifikasi bahwa blok thinking dihasilkan oleh Claude ketika dikirimkan kembali ke API.
Hanya benar-benar diperlukan untuk mengirimkan kembali blok thinking ketika menggunakan tools dengan extended thinking. Jika tidak, Anda dapat menghilangkan blok thinking dari giliran sebelumnya, atau membiarkan API menghapusnya untuk Anda jika Anda mengirimkannya kembali.
Jika mengirimkan kembali blok thinking, kami merekomendasikan mengirimkan semuanya kembali seperti yang Anda terima untuk konsistensi dan untuk menghindari masalah potensial.
Berikut adalah beberapa pertimbangan penting tentang enkripsi thinking:
- Ketika streaming respons, signature ditambahkan melalui
signature_delta
di dalam eventcontent_block_delta
tepat sebelum eventcontent_block_stop
. - Nilai
signature
secara signifikan lebih panjang di Claude 4 daripada di model sebelumnya. - Field
signature
adalah field opaque dan tidak boleh diinterpretasikan atau di-parse - ia ada semata-mata untuk tujuan verifikasi. - Nilai
signature
kompatibel di seluruh platform (API Anthropic, Amazon Bedrock, dan Vertex AI). Nilai yang dihasilkan di satu platform akan kompatibel dengan platform lain.
Redaksi thinking
Kadang-kadang penalaran internal Claude akan ditandai oleh sistem keamanan kami. Ketika ini terjadi, kami mengenkripsi sebagian atau semua blok thinking
dan mengembalikannya kepada Anda sebagai blok redacted_thinking
. Blok redacted_thinking
didekripsi ketika dikirimkan kembali ke API, memungkinkan Claude untuk melanjutkan responsnya tanpa kehilangan konteks.
Ketika membangun aplikasi yang menghadap pelanggan yang menggunakan extended thinking:
- Waspadai bahwa blok redacted thinking berisi konten terenkripsi yang tidak dapat dibaca manusia
- Pertimbangkan memberikan penjelasan sederhana seperti: “Beberapa penalaran internal Claude telah dienkripsi secara otomatis untuk alasan keamanan. Ini tidak mempengaruhi kualitas respons.”
- Jika menampilkan blok thinking kepada pengguna, Anda dapat memfilter blok yang diredaksi sambil mempertahankan blok thinking normal
- Bersikap transparan bahwa menggunakan fitur extended thinking mungkin kadang-kadang menghasilkan beberapa penalaran yang dienkripsi
- Implementasikan penanganan error yang tepat untuk mengelola redacted thinking dengan baik tanpa merusak UI Anda
Berikut adalah contoh yang menunjukkan blok thinking normal dan yang diredaksi:
Melihat blok redacted thinking dalam output Anda adalah perilaku yang diharapkan. Model masih dapat menggunakan penalaran yang diredaksi ini untuk menginformasikan responsnya sambil mempertahankan pagar keamanan.
Jika Anda perlu menguji penanganan redacted thinking dalam aplikasi Anda, Anda dapat menggunakan string tes khusus ini sebagai prompt Anda: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
Ketika mengirimkan blok thinking
dan redacted_thinking
kembali ke API dalam percakapan multi-turn, Anda harus menyertakan blok yang lengkap dan tidak dimodifikasi kembali ke API untuk giliran assistant terakhir. Ini sangat penting untuk mempertahankan alur penalaran model. Kami menyarankan untuk selalu mengirimkan kembali semua blok thinking ke API. Untuk detail lebih lanjut, lihat bagian Mempertahankan blok thinking di atas.
Perbedaan dalam thinking di berbagai versi model
Messages API menangani thinking secara berbeda di antara model Claude Sonnet 3.7 dan Claude 4, terutama dalam perilaku redaksi dan peringkasan.
Lihat tabel di bawah ini untuk perbandingan yang diringkas:
Fitur | Claude Sonnet 3.7 | Model Claude 4 |
---|---|---|
Output Thinking | Mengembalikan output thinking penuh | Mengembalikan thinking yang dirangkum |
Interleaved Thinking | Tidak didukung | Didukung dengan header beta interleaved-thinking-2025-05-14 |
Harga
Extended thinking menggunakan skema harga token standar:
Model | Token Input Dasar | Cache Writes | Cache Hits | Token Output |
---|---|---|---|---|
Claude Opus 4 | $15 / MTok | $18.75 / MTok | $1.50 / MTok | $75 / MTok |
Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.7 | $3 / MTok | $3.75 / MTok | $0.30 / MTok | $15 / MTok |
Proses thinking menimbulkan biaya untuk:
- Token yang digunakan selama thinking (token output)
- Blok thinking dari giliran assistant terakhir yang disertakan dalam permintaan berikutnya (token input)
- Token output teks standar
Ketika extended thinking diaktifkan, prompt sistem khusus secara otomatis disertakan untuk mendukung fitur ini.
Ketika menggunakan summarized thinking:
- Token input: Token dalam permintaan asli Anda (tidak termasuk token thinking dari giliran sebelumnya)
- Token output (ditagih): Token thinking asli yang dihasilkan Claude secara internal
- Token output (terlihat): Token thinking yang dirangkum yang Anda lihat dalam respons
- Tidak ada biaya: Token yang digunakan untuk menghasilkan ringkasan
Jumlah token output yang ditagih tidak akan cocok dengan jumlah token yang terlihat dalam respons. Anda ditagih untuk proses thinking penuh, bukan ringkasan yang Anda lihat.
Praktik terbaik dan pertimbangan untuk extended thinking
Bekerja dengan anggaran thinking
- Optimisasi anggaran: Anggaran minimum adalah 1.024 token. Kami menyarankan untuk memulai dengan minimum dan meningkatkan anggaran thinking 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 trade-off peningkatan latensi. Untuk tugas kritis, uji pengaturan yang berbeda untuk menemukan keseimbangan optimal. Perhatikan bahwa anggaran thinking adalah target daripada batas yang ketat—penggunaan token aktual dapat bervariasi berdasarkan tugas.
- Titik awal: Mulai dengan anggaran thinking yang lebih besar (16k+ token) untuk tugas kompleks dan sesuaikan berdasarkan kebutuhan Anda.
- Anggaran besar: Untuk anggaran thinking di atas 32k, kami merekomendasikan menggunakan batch processing untuk menghindari masalah jaringan. Permintaan yang mendorong model untuk berpikir di atas 32k token menyebabkan permintaan yang berjalan lama yang mungkin bertabrakan dengan timeout sistem dan batas koneksi terbuka.
- Pelacakan penggunaan token: Pantau penggunaan token thinking untuk mengoptimalkan biaya dan kinerja.
Pertimbangan kinerja
- Waktu respons: Bersiaplah untuk waktu respons yang berpotensi lebih lama karena pemrosesan tambahan yang diperlukan untuk proses penalaran. Faktor bahwa menghasilkan blok thinking dapat meningkatkan waktu respons keseluruhan.
- Persyaratan streaming: Streaming diperlukan ketika
max_tokens
lebih besar dari 21.333. Ketika streaming, bersiaplah untuk menangani blok konten thinking dan teks saat mereka tiba.
Kompatibilitas fitur
- Thinking tidak kompatibel dengan modifikasi
temperature
atautop_k
serta penggunaan tool paksa. - Ketika thinking diaktifkan, Anda dapat mengatur
top_p
ke nilai antara 1 dan 0,95. - Anda tidak dapat melakukan pre-fill respons ketika thinking diaktifkan.
- Perubahan pada anggaran thinking membatalkan prefiks prompt yang di-cache yang mencakup pesan. Namun, prompt sistem dan definisi tool yang di-cache akan terus bekerja ketika parameter thinking berubah.
Panduan penggunaan
- Pemilihan tugas: Gunakan extended thinking untuk tugas yang sangat kompleks yang mendapat manfaat dari penalaran langkah demi langkah seperti matematika, coding, dan analisis.
- Penanganan konteks: Anda tidak perlu menghapus blok thinking sebelumnya sendiri. API Anthropic secara otomatis mengabaikan blok thinking dari giliran sebelumnya dan mereka tidak disertakan ketika menghitung penggunaan konteks.
- Prompt engineering: Tinjau tips prompting extended thinking kami jika Anda ingin memaksimalkan kemampuan thinking Claude.