Pemikiran diperpanjang memberikan Claude 3.7 Sonnet kemampuan penalaran yang ditingkatkan untuk tugas-tugas kompleks, sambil juga memberikan transparansi ke dalam proses pemikiran langkah demi langkah sebelum memberikan jawaban akhirnya.

Bagaimana pemikiran diperpanjang bekerja

Ketika pemikiran diperpanjang 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 menyertakan blok konten thinking dan text.

Dalam percakapan multi-giliran, hanya blok pemikiran yang terkait dengan sesi penggunaan alat atau giliran assistant di posisi pesan terakhir yang terlihat oleh Claude dan ditagih sebagai token input; blok pemikiran yang terkait dengan pesan assistant sebelumnya tidak terlihat oleh Claude selama sampling dan tidak ditagih sebagai token input.

Mengimplementasikan pemikiran diperpanjang

Tambahkan parameter thinking dan anggaran token yang ditentukan untuk digunakan dalam pemikiran diperpanjang ke permintaan API Anda.

Parameter budget_tokens menentukan jumlah maksimum token yang diizinkan Claude gunakan untuk proses penalaran internalnya. 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 Anda harus selalu kurang dari max_tokens yang ditentukan.

Respons API akan menyertakan blok konten thinking dan text:

{
    "content": [
        {
            "type": "thinking",
            "thinking": "To approach this, let's think about what we know about prime numbers...",
            "signature": "zbbJhbGciOiJFU8zI1NiIsImtakcjsu38219c0.eyJoYXNoIjoiYWJjMTIzIiwiaWFxxxjoxNjE0NTM0NTY3fQ...."
        },
        {
            "type": "text",
            "text": "Yes, there are infinitely many prime numbers such that..."
        }
    ]
}

Memahami blok thinking

Blok thinking mewakili proses pemikiran internal Claude. Untuk memungkinkan Claude bekerja melalui masalah dengan batasan internal minimal sambil mempertahankan standar keamanan kami dan API stateless kami, kami telah mengimplementasikan hal berikut:

  • Blok thinking berisi bidang signature. Bidang ini menyimpan token kriptografis yang memverifikasi bahwa blok thinking dihasilkan oleh Claude, dan diverifikasi ketika blok thinking dikembalikan ke API. Saat streaming respons, tanda tangan ditambahkan melalui signature_delta di dalam event content_block_delta tepat sebelum event content_block_stop. Ini hanya diperlukan secara ketat untuk mengirimkan kembali blok thinking saat menggunakan penggunaan alat dengan pemikiran diperpanjang. Jika tidak, Anda dapat menghilangkan blok thinking dari giliran sebelumnya, atau biarkan API menghapusnya untuk Anda jika Anda mengirimkannya kembali.
  • Terkadang penalaran internal Claude akan ditandai oleh sistem keamanan kami. Ketika ini terjadi, kami mengenkripsi beberapa atau semua blok thinking dan mengembalikannya kepada Anda sebagai blok redacted_thinking. Blok thinking yang diredaksi ini didekripsi ketika dikembalikan ke API, memungkinkan Claude untuk melanjutkan responsnya tanpa kehilangan konteks.

Berikut contoh yang menunjukkan blok thinking normal dan yang diredaksi:

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

Melihat blok thinking yang diredaksi 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 thinking yang diredaksi dalam aplikasi Anda, Anda dapat menggunakan string uji 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-giliran, Anda harus menyertakan blok lengkap yang tidak dimodifikasi kembali ke API untuk giliran assistant terakhir.

Ini 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 bawah.

Saran untuk menangani redacted thinking dalam produksi

Saat membangun aplikasi yang menghadap pelanggan yang menggunakan pemikiran diperpanjang:

  • Ketahui bahwa blok redacted thinking berisi konten terenkripsi yang tidak dapat dibaca manusia
  • Pertimbangkan untuk 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 pemikiran diperpanjang terkadang dapat mengakibatkan beberapa penalaran dienkripsi
  • Implementasikan penanganan kesalahan yang sesuai untuk mengelola redacted thinking dengan baik tanpa merusak UI Anda

Streaming pemikiran diperpanjang

Ketika streaming diaktifkan, Anda akan menerima konten thinking melalui event thinking_delta. Berikut cara menangani streaming dengan thinking:

Contoh output streaming:

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

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

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}

// 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": "27 * 453 = 12,231"}}

// 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"}

Tentang perilaku streaming dengan thinking

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

Sistem streaming perlu memproses konten dalam batch untuk kinerja optimal, yang dapat menghasilkan pola pengiriman yang “chunky” ini. Kami terus bekerja untuk meningkatkan pengalaman ini, dengan pembaruan di masa depan yang berfokus pada membuat konten thinking mengalir lebih lancar.

Blok redacted_thinking tidak akan memiliki delta yang terkait dan akan dikirim sebagai satu event.

Pertimbangan penting saat menggunakan pemikiran diperpanjang

Bekerja dengan anggaran thinking: Anggaran minimum adalah 1.024 token. Kami menyarankan untuk memulai dari minimum dan meningkatkan anggaran thinking secara bertahap untuk menemukan rentang optimal agar Claude dapat berkinerja baik untuk kasus penggunaan Anda. Jumlah token yang lebih tinggi mungkin memungkinkan Anda mencapai penalaran yang lebih komprehensif dan bernuansa, tetapi mungkin juga ada hasil yang berkurang tergantung pada tugas.

  • Anggaran thinking adalah target daripada batas ketat - penggunaan token aktual dapat bervariasi berdasarkan tugas.
  • Bersiaplah untuk waktu respons yang berpotensi lebih lama karena pemrosesan tambahan yang diperlukan untuk proses penalaran.
  • Streaming diperlukan ketika max_tokens lebih besar dari 21.333.

Untuk anggaran thinking di atas 32K: Kami merekomendasikan menggunakan pemrosesan batch untuk beban kerja di mana anggaran thinking diatur di atas 32K untuk menghindari masalah jaringan. Permintaan yang mendorong model untuk berpikir di atas 32K token menyebabkan permintaan berjalan lama yang mungkin bertabrakan dengan batas waktu sistem dan batas koneksi terbuka.

Kompatibilitas thinking dengan fitur lain:

  • Thinking tidak kompatibel dengan modifikasi temperature, top_p, atau top_k serta penggunaan alat yang dipaksakan.
  • Anda tidak dapat mengisi respons sebelumnya ketika thinking diaktifkan.
  • Perubahan pada anggaran thinking membatalkan prefiks prompt yang di-cache yang menyertakan pesan. Namun, prompt sistem yang di-cache dan definisi alat akan terus bekerja ketika parameter thinking berubah.

Harga dan penggunaan token untuk pemikiran diperpanjang

Token pemikiran diperpanjang dihitung terhadap jendela konteks dan ditagih sebagai token output. Karena token thinking diperlakukan sebagai token output normal, mereka juga dihitung terhadap batas rate Anda. Pastikan untuk memperhitungkan peningkatan penggunaan token ini saat merencanakan penggunaan API Anda.

Untuk Claude 3.7 Sonnet, harganya adalah:

Penggunaan tokenBiaya
Token input$3 / MTok
Token output (termasuk token thinking)$15 / MTok
Penulisan cache prompt$3.75 / MTok
Pembacaan cache prompt$0.30 / MTok

Pemrosesan batch untuk pemikiran diperpanjang tersedia dengan diskon 50% dari harga ini dan sering selesai dalam waktu kurang dari 1 jam.

Semua token pemikiran diperpanjang (termasuk token redacted thinking) ditagih sebagai token output dan dihitung terhadap batas rate Anda.

Dalam percakapan multi-giliran, blok thinking yang terkait dengan pesan assistant sebelumnya tidak ditagih sebagai token input.

Ketika pemikiran diperpanjang diaktifkan, prompt sistem khusus 28 atau 29 token secara otomatis disertakan untuk mendukung fitur ini.

Kemampuan output diperpanjang (beta)

Claude 3.7 Sonnet dapat menghasilkan respons yang jauh lebih panjang daripada model sebelumnya dengan dukungan hingga 128K token output (beta)—lebih dari 15x lebih panjang daripada model Claude lainnya. Kemampuan yang diperluas ini sangat efektif untuk kasus penggunaan pemikiran diperpanjang yang melibatkan penalaran kompleks, pembuatan kode yang kaya, dan pembuatan konten yang komprehensif.

Fitur ini dapat diaktifkan dengan mengirimkan header anthropic-beta dari output-128k-2025-02-19.

Saat menggunakan pemikiran diperpanjang dengan output yang lebih panjang, Anda dapat mengalokasikan anggaran thinking yang lebih besar untuk mendukung penalaran yang lebih menyeluruh, sambil tetap memiliki token yang cukup tersedia untuk respons akhir.

Kami menyarankan menggunakan mode streaming atau batch dengan kemampuan output diperpanjang ini; untuk detail lebih lanjut lihat panduan kami tentang pertimbangan keandalan jaringan untuk permintaan panjang.

Menggunakan pemikiran diperpanjang dengan prompt caching

Prompt caching dengan thinking memiliki beberapa pertimbangan penting:

Penyertaan blok thinking dalam prompt yang di-cache

  • Thinking hanya disertakan saat menghasilkan giliran assistant dan tidak dimaksudkan untuk di-cache.
  • Blok thinking giliran sebelumnya diabaikan.
  • Jika thinking dinonaktifkan, konten thinking apa pun yang dikirim ke API hanya diabaikan.

Aturan pembatalan cache

  • Perubahan pada parameter thinking (mengaktifkan/menonaktifkan atau perubahan anggaran) membatalkan titik putus cache yang diatur dalam pesan.
  • Prompt sistem dan alat mempertahankan caching bahkan ketika parameter thinking berubah.

Contoh prompt caching dengan pemikiran diperpanjang

Max tokens dan ukuran jendela konteks dengan pemikiran diperpanjang

Dalam model Claude yang lebih lama (sebelum Claude 3.7 Sonnet), 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 menguranginya secara diam-diam sesuai kebutuhan.

Dengan Claude 3.7 Sonnet, max_tokens (yang mencakup anggaran thinking Anda ketika thinking diaktifkan) diterapkan sebagai batas ketat. Sistem sekarang akan mengembalikan kesalahan validasi jika token prompt + max_tokens melebihi ukuran jendela konteks.

Bagaimana jendela konteks dihitung dengan pemikiran diperpanjang

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

  • 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 pemikiran diperpanjang diaktifkan:

Jendela konteks efektif dihitung sebagai:

jendela konteks =
  (token input saat ini - token thinking sebelumnya) +
  (token thinking + token redacted thinking + token output teks)

Kami merekomendasikan menggunakan API penghitungan token untuk mendapatkan hitungan token yang akurat untuk kasus penggunaan spesifik Anda, terutama saat bekerja dengan percakapan multi-giliran yang menyertakan thinking.

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

Mengelola token dengan pemikiran diperpanjang

Mengingat perilaku jendela konteks dan max_tokens baru dengan model pemikiran diperpanjang seperti Claude 3.7 Sonnet, Anda mungkin perlu:

  • Lebih aktif memantau dan mengelola penggunaan token Anda
  • Menyesuaikan nilai max_tokens seiring perubahan panjang prompt Anda
  • 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.

Pemikiran diperpanjang dengan penggunaan alat

Saat menggunakan pemikiran diperpanjang dengan penggunaan alat, perhatikan pola perilaku berikut:

  1. Giliran assistant pertama: Ketika Anda mengirim pesan pengguna awal, respons assistant akan menyertakan blok thinking diikuti oleh permintaan penggunaan alat.

  2. Giliran hasil alat: Ketika Anda mengirimkan pesan pengguna dengan blok hasil alat, pesan assistant berikutnya tidak akan berisi blok thinking tambahan.

Untuk memperluas di sini, urutan normal percakapan penggunaan alat dengan thinking mengikuti langkah-langkah ini:

  1. Pengguna mengirim pesan awal
  2. Assistant merespons dengan blok thinking dan permintaan alat
  3. Pengguna mengirim pesan dengan hasil alat
  4. Assistant merespons dengan panggilan alat lain atau hanya teks (tidak ada blok thinking dalam respons ini)
  5. Jika lebih banyak alat diminta, ulangi langkah 3-4 sampai percakapan selesai

Desain ini memungkinkan Claude untuk menunjukkan proses penalarannya sebelum membuat permintaan alat, tetapi tidak mengulangi proses thinking setelah menerima hasil alat. Claude tidak akan mengeluarkan blok thinking lain sampai setelah giliran user non-tool_result berikutnya.

Diagram di bawah ini mengilustrasikan manajemen token jendela konteks saat menggabungkan pemikiran diperpanjang dengan penggunaan alat:

Mempertahankan blok thinking

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

Meskipun Anda dapat menghilangkan blok thinking dan redacted_thinking dari giliran peran assistant sebelumnya, kami menyarankan untuk selalu mengirimkan kembali semua blok thinking ke API untuk setiap percakapan multi-giliran. 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

Mengapa blok thinking harus dipertahankan

Ketika Claude memanggil alat, ia menghentikan konstruksi respons untuk menunggu informasi eksternal. Ketika hasil alat dikembalikan, Claude akan melanjutkan membangun respons yang ada. Ini memerlukan mempertahankan blok thinking selama penggunaan alat, karena beberapa alasan:

  1. Kontinuitas penalaran: Blok thinking menangkap penalaran langkah demi langkah Claude yang mengarah ke permintaan alat. Ketika Anda mengirimkan hasil alat, menyertakan thinking asli memastikan Claude dapat melanjutkan penalarannya dari tempat ia berhenti.

  2. Pemeliharaan konteks: Sementara hasil alat muncul sebagai pesan pengguna dalam struktur API, mereka adalah bagian dari alur penalaran yang berkelanjutan. Mempertahankan blok thinking mempertahankan alur konseptual ini di seluruh panggilan API.

Penting: Saat menyediakan blok thinking atau redacted_thinking, seluruh urutan blok thinking atau redacted_thinking yang berurutan harus cocok dengan output yang dihasilkan oleh model selama permintaan asli; Anda tidak dapat mengatur ulang atau memodifikasi urutan blok ini.

Tips untuk memanfaatkan mode pemikiran diperpanjang dengan baik

Untuk mendapatkan hasil maksimal dari pemikiran diperpanjang:

  1. Tetapkan anggaran yang sesuai: Mulai dengan anggaran thinking yang lebih besar (16.000+ token) untuk tugas kompleks dan sesuaikan berdasarkan kebutuhan Anda.

  2. Bereksperimen dengan anggaran token thinking: Model mungkin berkinerja berbeda pada pengaturan anggaran thinking maksimum yang berbeda. Meningkatkan anggaran thinking maksimum dapat membuat model berpikir lebih baik/keras, dengan trade-off latensi yang meningkat. Untuk tugas penting, pertimbangkan untuk menguji pengaturan anggaran yang berbeda untuk menemukan keseimbangan optimal antara kualitas dan kinerja.

  3. Anda tidak perlu menghapus blok thinking sebelumnya sendiri: API Anthropic secara otomatis mengabaikan blok thinking dari giliran sebelumnya dan mereka tidak disertakan saat menghitung penggunaan konteks.

  4. Pantau penggunaan token: Pantau penggunaan token thinking untuk mengoptimalkan biaya dan kinerja.

  5. Gunakan pemikiran diperpanjang untuk tugas yang sangat kompleks: Aktifkan thinking untuk tugas yang mendapat manfaat dari penalaran langkah demi langkah seperti matematika, pengkodean, dan analisis.

  6. Perhitungkan waktu respons yang diperpanjang: Pertimbangkan bahwa menghasilkan blok thinking dapat meningkatkan waktu respons keseluruhan.

  7. Tangani streaming dengan tepat: Saat streaming, bersiaplah untuk menangani blok konten thinking dan teks saat mereka tiba.

  8. Rekayasa prompt: Tinjau tips prompting pemikiran diperpanjang kami jika Anda ingin memaksimalkan kemampuan thinking Claude.

Langkah selanjutnya