Pemikiran yang diperluas 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 yang diperluas bekerja

Ketika pemikiran yang diperluas 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 yang diperluas

Tambahkan parameter thinking dan anggaran token yang ditentukan untuk digunakan dalam pemikiran yang diperluas 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.

curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 20000,
    "thinking": {
        "type": "enabled",
        "budget_tokens": 16000
    },
    "messages": [
        {
            "role": "user",
            "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
        }
    ]
}'

Memahami blok pemikiran

Blok pemikiran merepresentasikan proses berpikir internal Claude. Untuk memungkinkan Claude bekerja melalui masalah dengan batasan internal minimal sambil mempertahankan standar keamanan kami dan API tanpa status kami, kami telah mengimplementasikan hal berikut:

  • Blok pemikiran berisi bidang signature. Bidang ini menyimpan token kriptografis yang memverifikasi bahwa blok pemikiran dihasilkan oleh Claude, dan diverifikasi ketika blok pemikiran dikembalikan ke API. Saat streaming respons, tanda tangan ditambahkan melalui signature_delta di dalam event content_block_delta tepat sebelum event content_block_stop. Hanya diperlukan secara ketat untuk mengirimkan kembali blok pemikiran saat menggunakan penggunaan alat dengan pemikiran yang diperluas. Jika tidak, Anda dapat menghilangkan blok pemikiran 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 sebagian atau seluruh blok thinking dan mengembalikannya kepada Anda sebagai blok redacted_thinking. Blok pemikiran yang diredaksi ini didekripsi ketika dikembalikan ke API, memungkinkan Claude untuk melanjutkan responsnya tanpa kehilangan konteks.
  • Blok thinking dan redacted_thinking dikembalikan sebelum blok text dalam respons.

Berikut contoh yang menunjukkan blok pemikiran 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 pemikiran 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 pemikiran 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 pemikiran ke API. Untuk detail lebih lanjut, lihat bagian Mempertahankan blok pemikiran di bawah.

Saran untuk menangani pemikiran yang diredaksi dalam produksi

Saat membangun aplikasi yang menghadap pelanggan yang menggunakan pemikiran yang diperluas:

  • Ketahui bahwa blok pemikiran yang diredaksi 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 pemikiran kepada pengguna, Anda dapat memfilter blok yang diredaksi sambil mempertahankan blok pemikiran normal
  • Bersikap transparan bahwa menggunakan fitur pemikiran yang diperluas terkadang dapat mengakibatkan beberapa penalaran dienkripsi
  • Implementasikan penanganan kesalahan yang sesuai untuk mengelola pemikiran yang diredaksi tanpa merusak UI Anda

Streaming pemikiran yang diperluas

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

curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 20000,
    "stream": true,
    "thinking": {
        "type": "enabled",
        "budget_tokens": 16000
    },
    "messages": [
        {
            "role": "user",
            "content": "What is 27 * 453?"
        }
    ]
}'

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 pemikiran

Ketika menggunakan streaming dengan pemikiran yang diaktifkan, Anda mungkin memperhatikan bahwa teks terkadang tiba dalam potongan yang lebih besar yang bergantian dengan pengiriman token-per-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 yang “bongkah” ini. Kami terus bekerja untuk meningkatkan pengalaman ini, dengan pembaruan di masa depan yang berfokus pada membuat konten pemikiran mengalir lebih lancar.

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

Pertimbangan penting saat menggunakan pemikiran yang diperluas

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

  • Anggaran pemikiran adalah target daripada batas ketat - penggunaan token sebenarnya 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 pemikiran di atas 32K: Kami merekomendasikan menggunakan pemrosesan batch untuk beban kerja di mana anggaran pemikiran 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 pemikiran dengan fitur lain:

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

Harga dan penggunaan token untuk pemikiran yang diperluas

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

ModelBase Input TokensCache WritesCache HitsOutput Tokens
Claude Opus 3.8$15 / MTok$18.75 / MTok$1.50 / MTok$75 / MTok
Claude Sonnet 3.8$3 / MTok$3.75 / MTok$0.30 / MTok$15 / MTok
Claude 3.7 Sonnet$3 / MTok$3.75 / MTok$0.30 / MTok$15 / MTok

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

Semua token pemikiran yang diperluas (termasuk token pemikiran yang diredaksi) ditagih sebagai token output dan dihitung terhadap batas tarif Anda.

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

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

Kemampuan output yang diperluas (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 yang diperluas yang melibatkan penalaran kompleks, pembuatan kode yang kaya, dan pembuatan konten yang komprehensif.

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

curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "anthropic-beta: output-128k-2025-02-19" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 128000,
    "thinking": {
        "type": "enabled",
        "budget_tokens": 32000
    },
    "messages": [
        {
            "role": "user",
            "content": "Generate a comprehensive analysis of..."
        }
    ],
    "stream": true
}'

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

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

Menggunakan pemikiran yang diperluas dengan caching prompt

Caching prompt dengan pemikiran memiliki beberapa pertimbangan penting:

Penyertaan blok pemikiran dalam prompt yang di-cache

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

Aturan pembatalan cache

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

Contoh caching prompt dengan pemikiran yang diperluas