Jika Anda memindahkan pemandu agen ke Claude Fable 5.1 lalu menerima error 400 yang menyatakan bahwa blok pemikiran “terikat pada percakapan yang berbeda”, kode Anda kemungkinan mengubah riwayat percakapan antarpermintaan. Fable 5.1 adalah model Claude pertama yang menolak pola tersebut. Panduan ini menjelaskan penyebabnya, siapa yang terdampak, solusi cepat, dan pola riwayat hanya-tambah yang menjaga penalaran serta cache prompt tetap utuh.
Pemeriksaan ini dijelaskan dalam dokumentasi pemikiran yang disimpan dan Apa yang baru di Claude Fable 5.1. Ini merupakan perubahan merusak ketiga dari tiga perubahan pada Fable 5.1. Untuk dua perubahan lainnya, baca panduan migrasi.
messages.5.content.0: `signature` tidak valid di blok `thinking`.
Blok terikat pada percakapan yang berbeda.
Hapus blok, atau atur `thinking.block_binding.prefix_mismatch_behavior`
ke "drop_block".
Pengaturan tersebut memerlukan nilai
`thinking-binding-controls-2026-08-01` di header `anthropic-beta`.
Ini adalah invalid_request_error
400 yang terjadi sebelum model menghasilkan output. Mengirim ulang badan permintaan yang sama akan gagal dengan cara yang sama.
Path seperti messages.5.content.0
menunjukkan blok pemikiran pertama yang tidak lagi cocok. Pesan error juga dapat menyebut pesan pertama yang berubah—itulah petunjuk diagnosis utama.
Kegagalan yang tampak serupa tetapi berbeda tidak menyebut “terikat pada percakapan yang berbeda”. Dalam kasus tersebut, tanda tangan mungkin rusak atau tidak dapat didekripsi, sehingga prefix_mismatch_behavior
tidak berlaku.
Setiap blok pemikiran Fable 5.1 memiliki tanda tangan yang mencatat:
Saat transkrip dikirim kembali, API membandingkan prefiks tersebut secara byte-per-byte dengan prefiks yang menghasilkan blok.
Anthropic menyebut dua alasan utama:
Pemeriksaan diberlakukan pada akun yang dibuat pada atau setelah 31 Agustus 2026, termasuk:
Akun yang dibuat sebelum tanggal tersebut mencatat ketidakcocokan, tetapi hanya menolaknya jika permintaan mengatur thinking.block_binding.prefix_mismatch_behavior
, termasuk nilai "error"
.
Anthropic menyatakan bahwa model mendatang akan memberlakukan pemeriksaan ini untuk semua akun.
Pemeriksaan ini tidak berlaku pada:
Layanan tersebut menjaga prefiks percakapan tetap utuh. Claude Mythos 5.1 juga tidak menjalankan pemeriksaan ini, meskipun pengeditan riwayat tetap memulai ulang cache prompt.
Kode apa pun yang membangun sendiri array messages
dapat terdampak, termasuk:
Jika Anda membuat alat yang menggunakan API key milik pengguna, akun mereka mungkin lebih baru dan sudah diberlakukan meskipun akun Anda belum. Uji dengan field binding yang diatur secara eksplisit.
Untuk memeriksa apakah akun Anda sudah diberlakukan, kirim permintaan yang mengedit riwayat tanpa header beta. Error 400 yang meminta header tersebut berarti pemeriksaan sudah aktif.
Blok berikutnya menjadi tidak valid jika Anda:
Pola berikut mempertahankan validitas blok:
role: "system"
tanpa mengubah pesan sebelumnya.system
, tools
, dan messages
, termasuk:
max_tokens
output_config
effort
tool_choice
metadata
cache_control
.Pemeriksaan membandingkan percakapan yang Anda kirim, bukan salinan yang diedit oleh server. Setelah pemadatan sisi server, prefiks pemeriksaan dimulai dari blok pemadatan.
drop_block
Kirim header beta berikut dan atur perilakunya secara eksplisit:
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
thinking={
"type": "adaptive",
"block_binding": {
"prefix_mismatch_behavior": "drop_block"
}
},
betas=["thinking-binding-controls-2026-08-01"],
messages=history,
)
for t in response.input_transformations or []:
print(t.type, t.path, t.reason)
Dengan "drop_block"
, API akan menghapus blok pertama yang tidak cocok beserta blok pemikiran setelahnya. Permintaan tetap dilanjutkan, dan setiap penghapusan dilaporkan melalui input_transformations
tingkat atas:
{
"input_transformations": [
{
"type": "thinking_dropped",
"path": "messages.1.content.0",
"reason": "prefix_binding_mismatch"
}
]
}
Perhatikan tiga hal:
drop_block
—sehingga tetap lebih aman untuk mengatur field secara eksplisit.block_binding
tanpa header beta menghasilkan error:
block_binding: Extra inputs are not permitted
Field reason
membedakan dua kondisi:
prefix_binding_mismatch
: riwayat percakapan berubah.model_binding_mismatch
: percakapan berpindah model, misalnya karena router, retry, atau fallback. Ini bukan bug pada kode riwayat Anda.Dengan header tersebut, setiap respons memiliki array input_transformations
. Array kosong berarti tidak ada blok yang dihapus.
Gunakan drop_block
sebagai diagnostik dan jaring pengaman, bukan sebagai pola permanen. Jika riwayat dibatalkan pada setiap permintaan, penalaran model hilang di setiap giliran dan cache prompt dimulai ulang, sehingga biaya per tugas meningkat.
Pada platform yang belum menyediakan kontrol ini—Microsoft Foundry saat peluncuran, sementara Bedrock dan Google Cloud menambahkannya berdasarkan model—hapus semua blok berikut dari riwayat:
thinking
redacted_thinking
Pertahankan blok:
text
tool_use
Lalu coba permintaan sekali lagi. Model akan menjawab tanpa penalaran yang dibawa dari blok sebelumnya. Ini adalah prosedur pemulihan satu kali, bukan pola implementasi produksi.
Lakukan audit sebelum mengalihkan trafik ke Fable 5.1.
Ambil badan permintaan persis selama beberapa giliran normal, termasuk pemadatan atau perubahan tools. Untuk setiap dua permintaan berurutan, bandingkan:
messages
.Semua harus identik secara byte hingga giliran baru ditambahkan.
Jalankan sesi multi-giliran menggunakan:
model: claude-fable-5-1
thinking.block_binding.prefix_mismatch_behavior: drop_block
Catat input_transformations
pada setiap respons:
prefix_binding_mismatch
berarti sesuatu sebelum blok pada path tersebut berubah.Di CI, gunakan "error"
agar perubahan riwayat langsung menyebabkan kegagalan.
Atur field secara eksplisit di bawah header beta:
"error"
jika ketidakcocokan selalu berarti bug."drop_block"
jika Anda lebih memilih penurunan kualitas daripada kegagalan permintaan.Pantau error 400 dan entri input_transformations
, termasuk pada akun lama yang mungkin hanya mencatat ketidakcocokan tanpa menolaknya.
Di Apidog, buat tes dua permintaan:
drop_block
.input_transformations
berisi penghapusan.Simpan tes dalam koleksi agar setiap perubahan pada pemandu dapat diuji ulang. Anda juga dapat mengunduh Apidog.
| Pola yang bermasalah | Gunakan pola ini |
|---|---|
| Mengedit system prompt di tengah sesi, misalnya tanggal atau mode baru | Bekukan system prompt di awal. Saat instruksi berubah, tambahkan {"role": "system", "content": "The current date is 2026-09-14."} sebagai pesan system tengah-percakapan. Pesan tersebut menjadi bagian dari prefiks berikutnya. |
| Mengedit array tools di tengah sesi | Deklarasikan seluruh tool sejak awal dengan defer_: true untuk tool yang awalnya tersembunyi. Gunakan blok tool_addition dan tool_removal dalam pesan role: "system" dengan beta mid-conversation-tool-changes-2026-07-01 . |
| Menambahkan pengingat per giliran lalu menghapusnya | Gunakan pesan system cakupan giliran: {"role": "system", "clear_at": "next_user_message", "content": "..."} dengan beta mid-conversation-system-clear-at-2026-08-21 . Biarkan salinan sebelumnya tetap berada di riwayat. |
| Menghapus hasil tool lama di sisi klien | Gunakan pengeditan konteks sisi server dengan penghapusan hasil tool. |
| Melakukan pemadatan di sisi klien | Gunakan |
compact-2026-01-12 . Parameter instructions dapat berisi prompt ringkasan Anda sendiri. Jika tetap menggunakan sisi klien, ganti seluruh riwayat dengan satu ringkasan dan giliran pengguna baru—jangan memutar ulang bagian lama. |
file_id
, atau kirim data dalam base64.Dua pola pemadatan sisi klien berikut tetap rusak:
Keduanya mengubah prefiks yang digunakan untuk menghasilkan blok pemikiran. Memotong giliran dari tengah transkrip juga membatalkan semua blok setelahnya.
Gunakan pesan system tengah-percakapan untuk perubahan instruksi dan pengeditan konteks sisi server untuk penghapusan selektif.
Pembacaan cache Fable 5.1 kini hanya $0,25 per juta token. Karena itu, pemadatan terlalu dini untuk menghemat biaya mungkin tidak lagi optimal. Eksperimenkan titik pemadatan yang lebih akhir.
Semua perubahan yang membatalkan binding pada tabel sebelumnya juga memulai ulang cache prompt.
Fable 5.1 membuat cache hit empat kali lebih murah daripada Fable 5, sehingga cache miss menjadi relatif lebih mahal. Pemandu hanya-tambah mendapatkan dua keuntungan:
Lihat:
Blok pemikiran Claude Fable 5.1 diputar ulang setelah system prompt, array tools, atau pesan sebelumnya berubah. Pada akun yang diberlakukan, API menolak permintaan dengan error 400.
Akun yang dibuat pada atau setelah 31 Agustus 2026 di setiap platform. Akun lama hanya memberlakukannya jika thinking.block_binding.prefix_mismatch_behavior
diatur. Anthropic berencana menerapkannya pada semua akun untuk model mendatang.
Kirim header beta thinking-binding-controls-2026-08-01
dan atur:
prefix_mismatch_behavior: "drop_block"
API akan menghapus blok yang terdampak dan melanjutkan permintaan. Setelah itu, perbaiki kode yang mengedit riwayat agar penalaran dan cache tidak hilang pada setiap giliran.
effort
atau max_tokens
membatalkan blok pemikiran?
Tidak. Parameter di luar system
, tools
, dan messages
dapat berubah dengan bebas, begitu pula penanda cache_control
.
Tidak. Pemeriksaan membandingkan percakapan sebelum pemadatan dan pengeditan konteks sisi server dilakukan. Pemadatan sisi klien yang mempertahankan giliran terbaru tetap membatalkan binding.
Tidak. Mythos 5.1 tidak menjalankan pemeriksaan percakapan. Namun, blok pemikiran tetap terikat pada model yang memproduksinya, dan pengeditan riwayat tetap memulai ulang cache prompt.