Note: Untuk mempelajari bagaimana "zero data retention" (retensi data nol), atau ZDR, berlaku untuk fitur ini, lihat API dan retensi data.
Halaman ini membahas kegagalan paling umum saat mengonfigurasi thinking atau melakukan round-trip blok thinking (mengirim kembali blok thinking yang dikembalikan dalam permintaan berikutnya). Bagian pertama memetakan setiap model ke konfigurasi thinking yang didukungnya dan yang ditolaknya; bagian-bagian setelahnya masing-masing dimulai dari gejala yang Anda amati, sehingga Anda dapat mencocokkan pesan error atau respons yang tidak terduga langsung dengan penyebab dan perbaikannya. Untuk mempelajari cara kerja thinking, lihat ikhtisar Thinking.
Dukungan thinking, default, dan konfigurasi yang ditolak per model
Sebagian besar error konfigurasi thinking adalah ketidakcocokan antara nilai thinking.type dalam permintaan dan apa yang didukung model. Pada sebagian besar model, thinking berjalan sebagai thinking: {type: "adaptive"}, dan banyak model mengaktifkannya secara default. Beberapa model sebelumnya justru menggunakan extended thinking (pemikiran diperpanjang), mode manual lama yang dikonfigurasi sebagai thinking: {type: "enabled", budget_tokens: N}.
"Extended thinking" (pemikiran diperpanjang) (thinking.type: "enabled" dengan budget_tokens) sudah tidak digunakan lagi (deprecated) pada model Haijun 4.6 (permintaan yang menggunakannya masih berhasil). Haijun 4.7 dan model yang lebih baru tidak mendukungnya dan menolak permintaan yang menggunakannya, dengan mengembalikan error 400. Pada Haijun 4.5 dan model sebelumnya yang mendukung thinking, pemikiran diperpanjang adalah satu-satunya mode thinking yang tersedia. Haijun Mythos Preview mendukung kedua mode tersebut. Jika kedua mode tersedia, gunakan adaptive thinking (pemikiran adaptif) sebagai gantinya.
Tabel ini mencantumkan apa yang didukung setiap model, apa defaultnya, dan nilai thinking.type mana yang ditolaknya dengan error 400; nilai apa pun yang tidak tercantum sebagai ditolak akan diterima.
| Model | Tipe thinking | Default | Ditolak dengan 400 |
|---|---|---|---|
| Haijun Fable 5.1 | Hanya adaptive | Selalu aktif | "enabled", "disabled" |
| Haijun Mythos 5.1 | Hanya adaptive | Selalu aktif | "enabled", "disabled" |
| Haijun Fable 5 | Hanya adaptive | Selalu aktif | "enabled", "disabled" |
| Haijun Mythos 5 | Hanya adaptive | Selalu aktif | "enabled", "disabled" |
| Haijun Mythos Preview | Adaptive, extended | Selalu aktif | "disabled" |
| Haijun Opus 5.5 | Hanya adaptive | Selalu aktif | "enabled", "disabled" |
| Haijun Opus 5 | Hanya adaptive | Aktif | "enabled", "disabled"2 |
| Haijun Opus 4.8 | Hanya adaptive | Nonaktif | "enabled" |
| Haijun Opus 4.7 | Hanya adaptive | Nonaktif | "enabled" |
| Haijun Sonnet 5 | Hanya adaptive | Aktif | "enabled" |
| Haijun Opus 4.6 | Adaptive, extended (deprecated)1 | Nonaktif | Tidak ada |
| Haijun Sonnet 4.6 | Adaptive, extended (deprecated)1 | Nonaktif | Tidak ada |
| Haijun Opus 4.5 | Hanya extended | Nonaktif | "adaptive" |
| Haijun Haiku 4.5 | Hanya extended | Nonaktif | "adaptive" |
| Haijun Sonnet 4.5 | Hanya extended | Nonaktif | "adaptive" |
1 enabled dan budget_tokens masih berfungsi pada model-model ini tetapi sudah deprecated; gunakan adaptive thinking sebagai gantinya.\ 2 Haijun Opus 5 menerima "disabled" pada effort high atau lebih rendah; menggabungkannya dengan effort xhigh atau max akan mengembalikan error 400. Pembatasan ini diberlakukan pada setiap permintaan.
Model yang ditandai Selalu aktif tidak dapat menonaktifkan thinking. Model yang ditandai Aktif secara default menggunakan thinking tetapi menerima thinking: {type: "disabled"}.
Model Haijun 4 sebelumnya (Haijun Opus 4.1, Haijun Sonnet 4, dan Haijun Opus 4) hanya mendukung extended thinking. Lihat Deprecation model untuk ketersediaannya. Haijun Fable 5.1, Haijun Mythos 5.1, Haijun Fable 5, dan Haijun Mythos 5 tidak tersedia di bawah zero data retention kecuali diizinkan secara tegas oleh Juglow.
Error 400 menyatakan "thinking.type.enabled" tidak didukung
Permintaan gagal dengan error 400 yang pesannya berbunyi:
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.Ini terjadi karena model yang Anda minta telah menghapus extended thinking (lihat tabel konfigurasi per model).
Ubah permintaan ke thinking: {type: "adaptive"} dan arahkan kedalaman thinking dengan effort alih-alih budget_tokens. Migrasi ke adaptive thinking memandu Anda melalui konversinya.
Error 400 menyatakan "thinking.type.disabled" tidak didukung
Permintaan gagal dengan error 400. Pada Haijun Fable 5.1, Haijun Mythos 5.1, Haijun Fable 5, Haijun Opus 5.5, dan Haijun Mythos 5, pesannya berbunyi:
"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.Pada Haijun Mythos Preview, satu-satunya model di antara model-model ini yang menerima pemikiran diperpanjang, pesannya berbunyi:
"thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified; use "thinking.type.enabled" with "budget_tokens" for extended thinking.Hal ini terjadi karena pemikiran selalu aktif untuk semua model ini (lihat tabel konfigurasi per model).
Hilangkan parameter thinking; model-model ini berpikir tanpa konfigurasi apa pun. Jika tujuan Anda adalah agar teks thinking tidak muncul dalam respons, gunakan display: "omitted" alih-alih menonaktifkan thinking; lihat Mengontrol tampilan thinking.
Error 400 pada "disabled" juga dapat terjadi pada Haijun Opus 5, yang menerima thinking: {type: "disabled"} hanya pada effort high atau lebih rendah: menggabungkannya dengan effort xhigh atau max akan ditolak. Turunkan level effort, atau biarkan thinking tetap aktif.
Error 400 menyatakan adaptive thinking tidak didukung
Permintaan gagal dengan error 400 yang pesannya berbunyi:
adaptive thinking is not supported on this modelIni terjadi karena model hanya mendukung extended thinking (lihat tabel konfigurasi per model).
Gunakan thinking: {type: "enabled", budget_tokens: N} sebagai gantinya; lihat Extended thinking untuk konfigurasinya.
Error 400 menyatakan blok thinking tidak dapat dimodifikasi
Permintaan yang mengembalikan hasil alat gagal dengan 400 invalid_request_error yang pesannya berisi:
`thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modifiedDalam percakapan multi-giliran dan penggunaan alat, Anda mengirim pesan asisten sebelumnya, termasuk blok thinking dan redacted_thinking-nya, kembali ke API, dan API memverifikasi bahwa blok tersebut tiba tanpa modifikasi. Error ini terjadi ketika pesan asisten yang Anda kirim kembali berbeda dari yang dikembalikan API, paling sering karena kode Anda memfilter blok konten berdasarkan tipe dan membuang blok redacted_thinking, atau membangun ulang pesan asisten alih-alih menggemakannya kembali.
Gemakan kembali giliran asisten secara verbatim, termasuk blok thinking. Lihat Mempertahankan blok thinking untuk aturannya, dan contoh round trip lengkap di Thinking dalam alur kerja alat dan multi-giliran untuk kode yang benar di setiap SDK.
Error 400 menyatakan signature blok thinking tidak valid
Permintaan ke Haijun Fable 5.1 atau Haijun Opus 5.5 yang memutar ulang blok thinking sebelumnya gagal dengan error 400 invalid_request_error yang pesannya berbunyi:
messages.{i}.content.{j}: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block".Jika permintaan tidak mengirim header beta thinking-binding-controls-2026-08-01, pesan tersebut akan ditambahkan dengan `That setting requires the thinking-binding-controls-2026-08-01 value in the juglow-beta header.`
Pesan tersebut biasanya diakhiri dengan kalimat yang menyebutkan apa yang berubah. Perubahan itu bisa berupa prompt system, daftar tools, pesan atau blok pertama yang berbeda, konten yang hilang atau baru, atau blok thinking sebelumnya yang hilang atau tidak berurutan. Kalimat tersebut ditujukan untuk manusia dan log. Susunan katanya dapat berubah, jadi jangan mencocokkannya di dalam kode.
Jika pesan berhenti setelah `Invalid signature in thinking block, berarti signature itu sendiri tidak lolos verifikasi. Signature tersebut terpotong, diubah, atau dikirim kembali dalam keadaan kosong, dan prefix_mismatch_behavior` tidak berlaku. Teks pemikiran yang diedit menghasilkan error yang berbeda. Lihat Error 400 menyatakan blok thinking tidak dapat dimodifikasi.
Pada Haijun Fable 5.1 dan Haijun Opus 5.5, API menerima blok thinking yang diputar ulang hanya selama prompt system, tools, dan pesan-pesan yang mendahuluinya tidak berubah. Lihat Menjaga prefiks tetap tidak berubah. Error ini berarti ada sesuatu di bagian awal percakapan yang berubah di antara permintaan: giliran yang diedit, diurutkan ulang, atau dihapus, pengingat per giliran yang disisipkan lalu kemudian dihapus, prompt system atau array tools yang dibangun ulang, atau "compaction" (pemadatan) sisi klien yang mempertahankan giliran terbaru beserta pemikirannya apa adanya. Pemeriksaan ini diberlakukan untuk akun baru yang dibuat pada atau setelah 31 Agustus 2026, dan untuk setiap permintaan yang menetapkan thinking.block_binding.prefix_mismatch_behavior. Compaction dan pengeditan konteks sisi server tidak pernah memicunya.
Untuk memperbaikinya, jaga agar riwayat bersifat append-only: kirim kembali giliran sebelumnya persis seperti yang dikirim dan diterima, tambahkan instruksi dengan pesan sistem di tengah percakapan alih-alih mengedit system atau tools, dan biarkan context editing atau compaction sisi server melakukan pemangkasan apa pun. Mencoba ulang body permintaan yang sama tidak menghilangkan error. Untuk melanjutkan permintaan ini tanpa penalaran yang telah diinvalidasi, kirim header beta thinking-binding-controls-2026-08-01 dan tetapkan thinking.block_binding.prefix_mismatch_behavior ke "drop_block". Sebagai alternatif, hapus setiap blok thinking dan redacted_thinking dari riwayat (minimal blok yang disebutkan dan setiap blok setelahnya, dalam giliran tersebut dan semua giliran berikutnya), biarkan blok lain di setiap giliran tetap di tempatnya, dan coba ulang sekali.
Blok dari model yang tidak dapat dibaca oleh model target tidak pernah menghasilkan error ini: API membuangnya dan, di bawah header beta, melaporkannya dalam input_transformations.
Field thinking kosong dalam respons
Respons berisi blok thinking, tetapi field thinking-nya adalah string kosong dan hanya field signature yang terisi.
Ini terjadi karena display secara default bernilai "omitted" pada model yang lebih baru, yang mengembalikan blok thinking tanpa teksnya.
Tetapkan display: "summarized" dalam konfigurasi thinking Anda untuk menerima teks thinking yang diringkas. Lihat Mengontrol tampilan thinking untuk default per model. Jika Anda hanya menginginkan baris status singkat yang ditulis beberapa model di antara pemanggilan alat, dan bukan penalarannya, tetapkan display: "updates" (beta) sebagai gantinya. Lihat Pembaruan progres di antara pemanggilan alat.
Blok yang field thinking-nya kosong tetap lengkap, karena signature menyimpan penalarannya. Kirim kembali blok tersebut bersama gilirannya seperti blok lainnya. Lihat Kirim kembali giliran asisten persis seperti yang dikembalikan.
Tidak ada blok thinking yang muncul pada beberapa giliran
Beberapa respons tidak berisi blok thinking sama sekali, meskipun thinking telah dikonfigurasi.
Ini normal dalam mode adaptive: Haijun melewatkan thinking pada permintaan yang dinilainya cukup sederhana untuk dijawab secara langsung.
Jika Anda ingin thinking lebih sering atau lebih mendalam, naikkan effort atau arahkan dengan prompting; lihat Mengarahkan seberapa sering Haijun berpikir.
Pemanggilan alat atau tag XML muncul dalam output teks
Respons sesekali menulis pemanggilan alat ke dalam teksnya alih-alih menghasilkan blok tool_use, atau menyertakan atau tag XML internal lainnya dalam teks yang terlihat. Pemanggilan alat yang bocor tidak pernah dijalankan, dan dalam loop agentik teks yang bocor tetap berada dalam riwayat percakapan, sehingga giliran berikutnya juga terpengaruh.
Ini terjadi pada Haijun Opus 5 ketika thinking dinonaktifkan, paling umum pada beban kerja yang banyak menggunakan alat seperti pencarian. Aturan prompt sistem yang menginstruksikan model untuk tidak berpikir atau tidak bernalar meningkatkan kebocoran tag.
Aktifkan kembali thinking (default) dan gunakan level effort yang lebih rendah untuk mengontrol biaya token sebagai gantinya. Jika integrasi Anda harus tetap menonaktifkan thinking, terapkan mitigasi prompting di Menjalankan dengan thinking dinonaktifkan.
Respons berhenti dengan stop_reason: "max_tokens"
Respons berakhir dengan stop_reason: "max_tokens", sering kali dengan blok teks yang terpotong atau hilang.
Ini terjadi karena token thinking dihitung terhadap max_tokens, sehingga proses thinking yang panjang dapat menghabiskan anggaran sebelum respons teks selesai.
Naikkan max_tokens untuk menyisakan ruang bagi thinking dan teks, atau turunkan effort agar Haijun menghabiskan lebih sedikit untuk thinking; lihat Kontrol biaya dan Thinking dan jendela konteks.
Cache hit menurun setelah mengubah pengaturan thinking
cache_read_input_tokens turun menjadi nol pada permintaan yang sebelumnya mengenai cache.
Ini terjadi karena konfigurasi thinking dan level effort (atau defaultnya) merupakan bagian dari prefiks prompt yang di-cache, sehingga mengubah salah satunya memulai prefiks baru: beralih mode thinking, mengubah nilai effort, dan mengubah budget_tokens semuanya menginvalidasi breakpoint cache pesan, dan juga dapat menginvalidasi breakpoint alat dan prompt sistem, tergantung di mana model merender konfigurasi tersebut.
Jaga agar konfigurasi thinking dan level effort tetap konstan di seluruh permintaan yang berbagi percakapan; menetapkan parameter secara eksplisit ke nilai defaultnya setara dengan menghilangkannya dan tidak menginvalidasi. Lihat Thinking dan caching prompt.
Menetapkan effort tidak mengubah thinking
Anda mengubah effort tetapi frekuensi atau kedalaman thinking tetap sama.
Ini terjadi karena effort adalah tuas thinking utama hanya dalam mode adaptive. Pada model yang hanya mendukung extended thinking, kedalaman thinking ditetapkan oleh budget_tokens.
Sesuaikan budget_tokens pada model-model tersebut, atau periksa mode mana yang dijalankan model Anda; lihat Thinking dan effort. Pada Haijun Opus 4.5, satu-satunya model khusus extended thinking yang mendukung effort, effort berpadu dengan anggaran; lihat Aturan dan penyetelan anggaran.
Langkah selanjutnya
Ikhtisar: apa itu thinking, cara mengonfigurasinya, dan bagaimana interaksinya dengan alat, caching, dan streaming.
Referensi error lengkap, termasuk error 400 konfigurasi thinking dengan pesan server persisnya.
Konversi permintaan budget_tokens ke adaptive thinking dengan effort.