Claude Fable 5.1 Pemikiran Terpelihara: Memperbaiki The Block Is Bound to a Different Conversation

Perbaiki Claude Fable 5.1 400 "terikat pada percakapan yang berbeda": pemeriksaan pemikiran yang dipertahankan, siapa yang ditegakkan, drop_block, audit tersebut, dan pola hanya-tambah.

Ashley Goolam

Ashley Goolam

2 September 2026

Claude Fable 5.1 Pemikiran Terpelihara: Memperbaiki The Block Is Bound to a Different Conversation

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Jika Anda memindahkan pemandu agen ke Claude Fable 5.1 dan mulai melihat kesalahan 400 yang pesannya mengatakan blok pemikiran "terikat pada percakapan yang berbeda", berarti kode Anda mengedit riwayat percakapan antar permintaan, dan Fable 5.1 adalah model Claude pertama yang keberatan. Panduan ini menjelaskan apa itu pemeriksaan tersebut, kepada siapa ia berlaku, apa yang persis memicunya, jalan keluarnya, dan pola hanya-tambah yang menghilangkan kesalahan sekaligus menjaga cache prompt Anda tetap hangat.

Pemeriksaan ini didokumentasikan di bawah pemikiran yang disimpan dan di Apa yang baru di Claude Fable 5.1. Ini adalah yang ketiga dari tiga perubahan merusak Fable 5.1, dan satu-satunya yang dapat menurunkan kinerja pemandu secara diam-diam. Untuk dua lainnya, lihat panduan migrasi.

tombol

Kesalahan

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 diputuskan sebelum output apa pun. Mengulang badan permintaan yang sama akan gagal dengan cara yang sama. Jalur (messages.5.content.0) menunjuk ke blok pemikiran pertama yang tidak lagi cocok, dan pesannya dapat diakhiri dengan satu kalimat lagi yang menyebutkan pesan pertama yang berubah, yang merupakan diagnosis yang Anda inginkan. Titik akhir penghitung token menjalankan pemeriksaan yang sama.

Kegagalan yang berbeda terlihat serupa tetapi bukan ini: klausa awal yang sama tanpa kalimat "terikat pada percakapan yang berbeda" berarti tanda tangan itu sendiri dirusak atau tidak dapat didekripsi, dan prefix_mismatch_behavior tidak berlaku.

Apa yang dilakukan pemeriksaan ini

Setiap blok pemikiran Fable 5.1 membawa tanda tangan yang mencatat dua hal: model mana yang memproduksinya, dan prefiks percakapan persis yang mendahuluinya, yang berarti prompt system tingkat atas, array tools, dan setiap pesan sebelum blok. Setiap blok juga berantai ke blok pemikiran sebelumnya. Ketika Anda mengirim transkrip kembali, API memverifikasi bahwa prefiks tersebut sama persis secara byte dengan apa yang menghasilkan blok.

Anthropic memberikan dua alasan. Yang dinyatakan adalah anti-distilasi: posting peluncuran mengatakan akun API baru tidak dapat lagi mengedit konteks Claude sebelumnya secara manual dalam percakapan multi-giliran sambil mempertahankan transkrip pemikiran sebelumnya, yang menutup teknik distilasi yang didokumentasikan. Yang praktis adalah bahwa pengeditan yang sama yang merusak pemeriksaan juga memulai ulang cache prompt, jadi kode yang melewati pemeriksaan juga merupakan kode yang mendapatkan pembacaan cache $0,25 per juta pada setiap giliran.

Kepada siapa ini berlaku

Diberlakukan secara default: akun yang dibuat pada atau setelah 31 Agustus 2026. Ini mencakup organisasi API Claude, akun Amazon Bedrock, proyek Google Cloud, dan sumber daya Microsoft Foundry.

Direkam tetapi tidak diberlakukan: akun yang dibuat sebelumnya. API mencatat ketidakcocokan tetapi hanya bertindak atasnya ketika permintaan mengatur thinking.block_binding.prefix_mismatch_behavior ke nilai apa pun, termasuk "error". Anthropic mengatakan model di masa depan akan memberlakukannya untuk semua orang.

Tidak terpengaruh: Claude Code, claude.ai, Claude Managed Agents, dan Claude Agent SDK, yang menjaga prefiks tetap utuh untuk Anda. Claude Mythos 5.1 sama sekali tidak menjalankan pemeriksaan ini, meskipun pengeditan riwayat masih memulai ulang cachenya.

Terpengaruh: kode apa pun yang membangun array messages itu sendiri. Itu adalah setiap loop agen kustom, setiap backend obrolan, dan setiap kerangka kerja yang membungkus Messages API.

Perangkap bagi penulis alat: jika Anda mengirimkan sesuatu yang dijalankan orang dengan kunci API mereka sendiri, kunci Anda mungkin ada di akun yang lebih lama dan kunci mereka mungkin tidak. Uji dengan bidang yang diatur, sehingga Anda mencapai pemeriksaan sebelum pengguna Anda. Untuk mengetahui apakah akun Anda sendiri diberlakukan, kirim permintaan yang mengedit riwayat tanpa header beta; 400 yang menyebutkan header berarti itu diberlakukan.

Apa yang membuat setiap blok pemikiran berikutnya tidak valid

Apa yang membuatnya tetap valid

Jalan keluar: drop_block

Kirim header beta thinking-binding-controls-2026-08-01 dan atur bidang 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 dan setiap blok pemikiran setelahnya, melanjutkan permintaan, dan melaporkan setiap penghapusan dalam array input_transformations tingkat atas:

"input_transformations": [
  {"type": "thinking_dropped", "path": "messages.1.content.0", "reason": "prefix_binding_mismatch"}
]

Tiga hal yang perlu diketahui tentang bidang ini. Ini hanya berlaku untuk permintaan tersebut, jadi terus kirimkan untuk sisa sesi. Defaultnya berbeda berdasarkan antarmuka: tanpa header, akun yang diberlakukan akan mengalami kesalahan; mengirimkan header saja beralih ke default beta sendiri, yaitu drop_block; jadi aturlah secara eksplisit dan jangan pernah bergantung pada default mana pun. Dan mengirimkan block_binding tanpa header adalah 400 yang berakhir dengan block_binding: Extra inputs are not permitted.

Bidang reason membedakan dua kasus. prefix_binding_mismatch berarti riwayat Anda berubah. model_binding_mismatch berarti percakapan berpindah model (router, percobaan ulang, fallback penolakan) dan target tidak dapat membaca blok Fable 5.1. Yang kedua bukanlah bug dalam kode Anda. Dengan header, setiap respons membawa array, kosong jika tidak ada yang dihapus.

Menghapus blok sekali, pada batas pemadatan, biayanya sedikit. Pemandu yang membatalkan riwayatnya sendiri pada setiap permintaan akan kehilangan penalaran model setiap giliran dan memulai ulang cache prompt setiap giliran, dan Anthropic memperingatkan bahwa itu meningkatkan biaya per tugas. Perlakukan drop_block sebagai diagnostik dan jaring pengaman, bukan kondisi stabil.

Pemulihan tanpa beta

Pada platform tanpa kontrol (Microsoft Foundry tidak menawarkannya saat peluncuran; Bedrock dan Google Cloud menambahkannya per model), hapus setiap blok thinking dan redacted_thinking dari riwayat, simpan blok text dan tool_use dari setiap giliran, dan coba lagi sekali. Model menjawab giliran itu tanpa penalaran yang dibawa blok-blok tersebut. Ini adalah pemulihan satu kali, bukan pola.

Audit tiga langkah

Jalankan ini sebelum Anda mengalihkan lalu lintas, bukan sesudahnya.

  1. Ambil badan permintaan yang persis yang dikirim pemandu Anda selama beberapa giliran normal, termasuk pemadatan atau perubahan alat jika produk Anda memilikinya. Untuk setiap pasangan permintaan berturut-turut, bandingkan prompt system, array tools, dan prefiks bersama messages. Semuanya harus identik secara byte hingga giliran yang baru ditambahkan.
  2. Jalankan sesi multi-giliran normal terhadap claude-fable-5-1 dengan header beta dan prefix_mismatch_behavior: "drop_block", mencatat input_transformations pada setiap respons. Array kosong setiap giliran berarti riwayat utuh. Entri prefix_binding_mismatch berarti sesuatu sebelum blok pada path berubah. Ini berfungsi dari akun mana pun, karena mengatur bidang tersebut mengizinkan permintaan untuk diberlakukan. Di CI, atur "error" sebagai gantinya sehingga pengeditan akan menyebabkan kegagalan.
  3. Pilih pengaturan produksi dan atur secara eksplisit di bawah header: "error" jika ketidakcocokan hanya berarti bug, "drop_block" untuk menurunkan kinerja alih-alih gagal. Pantau 400-an atau entri input_transformations bagaimanapun juga. Jangan biarkan bidang tidak diatur pada akun yang lebih lama, karena kemudian pemeriksaan hanya merekam di sisi server dan Anda tidak mendapatkan apa pun untuk dipantau.

Di Apidog, langkah 2 adalah tes dua permintaan: kirim giliran, edit prompt sistem, kirim giliran berikutnya dengan header diatur, dan pastikan input_transformations. Simpan dalam koleksi sehingga setiap perubahan pemandu akan menjalankannya kembali. Unduh Apidog untuk membuatnya.

Membuat pemandu hanya-tambah

Setiap baris menggantikan pengeditan riwayat dengan sesuatu yang menjaga prefiks tetap utuh dan menjaga cache tetap hangat.

Yang Anda lakukan Lakukan ini sebagai gantinya
Mengedit prompt sistem di tengah sesi (tanggal baru, mode baru) Bekukan system di awal sesi. Tambahkan {"role": "system", "content": "The current date is 2026-09-14."} pada saat perubahan menjadi benar (pesan sistem tengah-percakapan). Tidak ada header beta; ia mendapatkan otoritas prompt sistem dan menjadi bagian dari prefiks yang terikat pada blok selanjutnya.
Mengedit array tools di tengah sesi Deklarasikan kumpulan lengkap di awal sesi (defer_loading: true pada yang awalnya tersembunyi). Kirim blok tool_addition dan tool_removal dalam pesan role: "system" (beta mid-conversation-tool-changes-2026-07-01).
Menyuntikkan pengingat per-giliran dan menghapusnya pada permintaan berikutnya Kirim sebagai pesan sistem cakupan-giliran: {"role": "system", "clear_at": "next_user_message", "content": "..."} (beta mid-conversation-system-clear-at-2026-08-21) setelah pesan hasil alat, dan biarkan setiap salinan sebelumnya tetap di tempat. Salinan yang dihapus tidak merender apa pun dan tidak memakan biaya. Tanpa beta, letakkan pengingat di blok teks setelah blok tool_result dalam pesan pengguna yang sama, salinan sebelumnya disimpan.
Menghapus hasil alat lama di sisi klien Pengeditan konteks sisi server dengan penghapusan hasil alat.
Pemadatan di klien Pilih pemadatan sisi server (beta compact-2026-01-12; parameter instructions-nya mengambil prompt ringkasan Anda sendiri). Jika Anda tetap di sisi klien, gunakan pemadatan sederhana: ganti seluruh riwayat dengan satu pesan ringkasan ditambah giliran pengguna baru dan jangan memutar ulang yang lain.
Mereferensikan gambar atau dokumen berdasarkan URL di seluruh giliran Unggah sekali ke Files API dan kirim file_id, atau kirim base64.

Dua bentuk pemadatan sisi klien rusak di bawah pemeriksaan dan memerlukan drop_block atau blok pemikiran yang dihapus pada giliran yang dipertahankan. Pemadatan jaga-ekor (meringkas giliran yang lebih lama, menjaga yang terbaru tetap sama persis) gagal pada giliran yang dipertahankan, karena pemikirannya dihasilkan terhadap riwayat lengkap. Pemadatan latar belakang (membangun ringkasan di luar jalur kritis dan menukarnya nanti) gagal pada setiap giliran yang dihasilkan antara awal ringkasan dan penukaran. Memotong giliran individu dari tengah transkrip membatalkan setiap blok berikutnya, dan tidak ada bentuk sisi klien yang menghindarinya. Gunakan pesan sistem tengah-percakapan untuk perubahan instruksi yang Anda buat, atau pengeditan konteks sisi server untuk penghapusan selektif.

Satu pertimbangan biaya lagi: karena pembacaan cache sekarang $0,25 per juta, pemadatan dini untuk menghemat uang mungkin tidak lagi menjadi pilihan yang tepat di Fable 5.1. Anthropic menyarankan untuk bereksperimen dengan titik pemadatan yang lebih akhir.

Mengapa ini juga merupakan kisah cache

Semua yang ada di tabel di atas juga merupakan daftar hal-hal yang memulai ulang cache prompt. Fable 5.1 membuat cache hit empat kali lebih murah daripada Fable 5 dan membuat cache miss secara proporsional lebih menyakitkan, sehingga pemandu hanya-tambah mendapatkan keuntungan ganda: pemikiran bertahan, dan setiap giliran membaca prefiks dengan biaya $0,25 alih-alih menuliskannya kembali dengan biaya $12,50. Perincian harga memiliki angkanya; panduan API menunjukkan bentuk permintaan cakupan-giliran dan upaya per-pesan dalam konteks, panduan prompt mencakup instruksi per-giliran mana yang layak dikirim dengan cara itu, dan panduan Claude Code menjelaskan mengapa pengguna Claude Code tidak pernah melihat kesalahan ini.

FAQ

Apa arti "Blok terikat pada percakapan yang berbeda"? Blok pemikiran Claude Fable 5.1 diputar ulang setelah sesuatu sebelumnya berubah: prompt sistem, array alat, atau pesan sebelumnya. API menolak permintaan dengan 400 pada akun yang diberlakukan.

Akun mana yang memberlakukan pemeriksaan riwayat Fable 5.1? Akun yang dibuat pada atau setelah 31 Agustus 2026, di setiap platform. Akun yang lebih lama memberlakukannya hanya ketika permintaan mengatur thinking.block_binding.prefix_mismatch_behavior. Anthropic berencana untuk memberlakukannya untuk semua orang pada model di masa depan.

Bagaimana cara menghilangkan kesalahan dengan cepat? Kirim header beta thinking-binding-controls-2026-08-01 dengan prefix_mismatch_behavior: "drop_block". API menghapus blok yang terpengaruh dan melanjutkan. Kemudian perbaiki pengeditan riwayat, karena menghapus blok setiap giliran menghilangkan penalaran dan memulai ulang cache Anda.

Apakah mengubah upaya atau max_tokens membatalkan blok pemikiran? Tidak. Parameter apa pun di luar system, tools, dan messages dapat berubah dengan bebas, begitu pula penanda cache_control.

Apakah pemadatan sisi server membatalkan pemeriksaan? Tidak. Pemadatan dan pengeditan konteks terjadi setelah pemeriksaan, yang membandingkan percakapan seperti yang Anda kirimkan. Pemadatan sisi klien yang menjaga giliran terbaru tetap sama persis memang membatalkannya.

Apakah Claude Mythos 5.1 memiliki pemeriksaan yang sama? Tidak. Mythos 5.1 tidak menjalankan pemeriksaan percakapan, meskipun ia masih mengikat blok pemikiran ke model yang memproduksi dan pengeditan riwayat masih memulai ulang cachenya.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.