WaveSpeedAI

Penjelasan Fallback Claude Fable 5 ke Opus 4.8

Pelajari bagaimana mekanisme pengamanan Claude Fable 5 berinteraksi dengan perilaku fallback Opus 4.8 dalam sistem API produksi.

By Dora9 min read

Ini Dora. Saya sudah merutekan traffic produksi ke Claude Fable 5 selama sekitar seminggu. Cukup lama untuk melihat perilaku fallback bekerja, cukup singkat sehingga saya masih ingat apa yang mengejutkan saya. Tulisan ini ditujukan bagi siapa saja yang baru saja mengintegrasikan Fable 5 dan melihat stop_reason: "refusal" dikembalikan pada prompt yang sepenuhnya tidak berbahaya — atau yang akan segera mengalaminya, dan lebih baik tidak mengetahuinya pada pukul 2 pagi.

Versi singkatnya: fallback Claude Fable 5 bukan sebuah error. Ini adalah bagian yang terdokumentasi dari cara model dikirimkan. Ketika classifier keamanan menolak sebuah permintaan, API mengembalikan HTTP 200 dengan stop reason refusal, dan Anthropic memberikan tiga cara untuk mencoba ulang permintaan tersebut di Claude Opus 4.8 tanpa kehilangan pengguna. Jika Anda memperlakukannya sebagai exception yang harus ditangkap, Anda akan salah menanganinya. Jika Anda memperlakukannya sebagai keputusan routing, semuanya akan masuk dengan rapi.

Saya akan membahas apa yang memicu fallback, apa yang sebenarnya dikembalikan oleh API, cara mengimplementasikan retry, dan apa artinya bagi tagihan.

Mengapa Opus 4.8 penting dalam routing Fable 5

Pengaman Fable 5 dan perilaku fallback

Fable 5 adalah model paling mampu yang dirilis secara luas oleh Anthropic, dan dikirimkan dengan classifier keamanan yang berada di depan model. Ketika sebuah classifier menandai permintaan, Fable 5 tidak menjawab. Permintaan tersebut dapat dijalankan ulang di Claude Opus 4.8, dan pengguna diberitahu bahwa hal itu terjadi. Ini terdokumentasi dalam pengumuman Anthropic tentang Claude Fable 5 dan Mythos 5.

Anthropic menyatakan bahwa classifier aktif pada kurang dari 5% sesi rata-rata. Angka tersebut sesuai dengan yang telah saya lihat sejauh ini. Sebagian besar waktu Anda tidak menyadari mekanisme fallback ada di sana.

Konteks akses terbatas Mythos 5

Mythos 5 adalah model dasar yang sama dengan Fable 5, minus classifier-nya. Tidak tersedia secara umum. Akses diberikan melalui Project Glasswing, yang saat ini terbatas pada mitra keamanan siber dan sekelompok kecil peneliti biologi di bawah program akses tepercaya yang terpisah. Jika Anda belum memiliki akses, Anda membangun di atas Fable 5. Branding anthropic mythos bisa membingungkan di sini — Mythos adalah kelas model, dan Fable 5 adalah anggota kelas tersebut yang tersedia untuk publik.

Untuk sisa tulisan ini, asumsikan kode Anda memanggil Fable 5.

Mengapa fallback adalah fitur produk, bukan sekadar jalur error

Inilah bagian yang membutuhkan waktu untuk saya internalisasi. Opus 4.8 bukan pengalaman yang terdegradasi. Ini adalah tingkat Opus generasi sebelumnya, masih mampu, dan tidak menjalankan classifier yang sama. Jadi logika routing-nya adalah: coba model terkuat terlebih dahulu, dan jika classifier menolak, jatuhkan ke model yang dua bulan lalu masih menjadi flagship. Pengguna tetap mendapatkan jawaban. Itulah seluruh desainnya.

Fallback bukan laporan bug. Ini adalah keputusan routing yang dibuat kode Anda atas nama pengguna.

Apa yang memicu fallback atau refusal

Kategori keamanan siber, biologi/kimia, dan distilasi

Field stop_details.category memberi tahu Anda classifier mana yang aktif. Kategori yang dipublikasikan di Fable 5 meliputi cyber, bio, dan reasoning_extraction — yang terakhir adalah untuk permintaan yang terlihat seperti upaya merekayasa balik atau mendistilasi output model di bawah Ketentuan Layanan Anthropic. Daftar saat ini dan perilaku pastinya ada di dokumentasi refusals dan fallback pada dokumen Claude API.

Saya tidak pernah melihat bio aktif pada apapun yang saya lakukan. Saya melihat cyber aktif dua kali. Kedua kali prompt tersebut berkaitan dengan keamanan tetapi tidak berbahaya — satu adalah pertanyaan tentang bagaimana format log tertentu disusun, yang lain tentang CVE yang sudah bertahun-tahun lalu dan sudah sepenuhnya dipatch. Tidak ada satupun yang merupakan upaya untuk melakukan apapun. Classifier melihat pola permukaan dan menolak.

False positive dan pengaman konservatif

Anthropic telah secara eksplisit menyatakan bahwa classifier disetel secara konservatif — lebih ketat dari yang ideal, dalam framing mereka sendiri. Itulah trade-off-nya. Mereka lebih suka menolak pertanyaan cyber yang tidak berbahaya dan merutekan Anda ke Opus 4.8 daripada melewatkan kasus penyalahgunaan yang nyata. Fallback ada justru karena tingkat false positive tidak nol secara desain.

Jika Anda membangun dengan asumsi itu, kejutan-kejutan akan hilang. Jika Anda membangun dengan asumsi bahwa refusal adalah keadaan darurat yang jarang terjadi, yang pertama akan merusak sesuatu.

Apa yang dikembalikan API ketika permintaan ditolak

Responsnya adalah HTTP 200 yang normal. Bentuknya kira-kira:

{
  "role": "assistant",
  "content": [],
  "stop_reason": "refusal",
  "stop_details": {
    "type": "refusal",
    "category": "cyber",
    "explanation": "..."
  },
  "usage": { "input_tokens": 106, "output_tokens": 1 }
}

Anda tidak ditagih untuk permintaan yang ditolak sebelum ada output yang dihasilkan. Jika Anda melanjutkan percakapan yang sama tanpa mereset giliran yang ditolak, Anda akan terus mendapatkan refusal — dokumentasi streaming refusals Anthropic membahas ini secara khusus. Hapus atau tulis ulang giliran tersebut sebelum mencoba ulang.

Field category bersifat informatif. Jangan membuat cabang pada copy yang menghadap pengguna berdasarkan field ini. Field ini juga bisa null pada beberapa surface, termasuk hasil batch, jadi deteksi refusal dengan memeriksa stop_reason secara langsung.

Cara builder mengimplementasikan fallback

Tiga cara. Pilih satu. Jangan menumpuk keduanya.

Parameter fallback sisi server

Jalur paling bersih pada Claude API langsung atau Claude Platform di AWS adalah parameter fallbacks yang opt-in. Saat ini masih dalam beta. Anda menambahkan daftar model fallback ke permintaan, dan jika Fable 5 menolak, Anthropic menjalankan ulang permintaan pada model berikutnya dalam daftar — Opus 4.8 saat peluncuran — dan mengembalikan respons tersebut kepada Anda. Satu round trip dari sisi Anda.

Tidak didukung di Message Batches API, dan saat ini tidak tersedia di Amazon Bedrock, Vertex AI, atau Microsoft Foundry. Untuk yang itu, gunakan SDK middleware.

SDK middleware sisi klien

SDK Anthropic dilengkapi refusal-fallback middleware. Anda mengonfigurasi klien sekali dengan daftar model fallback, dan middleware menangani retry, beta header untuk fallback credit, dan bookkeeping riwayat percakapan. Model yang menerima dipinned untuk giliran lanjutan sehingga percakapan tetap konsisten.

Saya menggunakan middleware. Konfigurasinya adalah satu blok saat konstruksi klien, dan setelah itu client.beta.messages.create berperilaku persis seperti klien biasa — kecuali refusal dirutekan secara otomatis. Itulah jalur yang akan saya rekomendasikan jika Anda menggunakan Bedrock, Vertex, atau Foundry, atau jika Anda hanya ingin jalur kode yang sama di mana saja.

Mencatat hasil classifier tanpa mengekspos konten sensitif

Ketika refusal terjadi, catat cukup untuk debugging — model, timestamp, kategori — tetapi jangan catat prompt lengkap ke log aplikasi Anda jika mungkin sensitif. Classifier sudah menandainya. Perlakukan prompt sebagai sesuatu yang ingin Anda tangani, bukan sesuatu yang ingin Anda indeks dalam stack observabilitas Anda.

Saya menyimpan counter pada stop_details.category dan sample rate payload penuh hanya untuk lingkungan development. Itu memberi Anda pola false positive tanpa membocorkan kontennya.

Tagihan dan pengalaman pengguna

Menghindari biaya prompt-cache ganda di mana didukung

Jika permintaan Fable 5 asli menggunakan prefix cache yang panjang, Anda tidak ingin membayar pembacaan cache itu dua kali saat mencoba ulang di Opus 4.8. Fallback credit menangani ini. Ketika refusal menghasilkan credit, Anda mendapatkan fallback_credit_token yang tidak transparan dalam respons, dan meneruskannya pada permintaan retry akan menghindari biaya cache ganda. Mekanisme dan beta header terdokumentasi dalam panduan fallback credit AWS Bedrock, dan SDK middleware mengirimkan header untuk Anda. Token berlaku selama lima menit.

Jika Anda menggunakan parameter fallbacks sisi server atau middleware, ini sudah ditangani. Jika Anda melakukan retry manual, Anda harus memasangnya sendiri.

Menjelaskan fallback kepada pengguna akhir

Fallback bukan kegagalan. Tetapi pengguna perlu mengetahui bahwa respons berasal dari model yang berbeda, baik untuk transparansi maupun karena Opus 4.8 mungkin menjawab secara berbeda. Saya menampilkan catatan kecil sebaris — sesuatu seperti “Dijawab dengan model fallback” — dan menautkan ke halaman bantuan yang menjelaskan artinya. Bukan permintaan maaf. Sebuah label.

Yang tidak saya lakukan adalah mengekspos kategori kepada pengguna. “cyber” atau “bio” tanpa konteks terdengar seperti tuduhan, dan biasanya bukan.

Menjaga perilaku keamanan tetap terlihat

Lacak tingkat refusal sebagai SLI normal. Jika naik dari minggu ke minggu, Anda ingin mengetahuinya — baik penggunaan Anda bergeser ke arah kategori yang ditandai, atau classifier telah disetel ulang. Keduanya menarik secara operasional. Keduanya tidak terlihat jika Anda tidak mengukurnya.

FAQ

Mengapa Fable 5 jatuh kembali ke Opus 4.8?

Karena Fable 5 dikirimkan dengan classifier keamanan yang dapat menolak permintaan dalam kategori tertentu (cyber, biologi, kimia, distilasi). Ketika itu terjadi, Fable 5 tidak menjawab, dan permintaan dapat dijalankan ulang di Opus 4.8 — yang tidak menjalankan classifier yang sama — sehingga pengguna tetap mendapatkan respons.

Bagaimana tim API harus menangani respons refusal?

Perlakukan sebagai hasil API yang normal, bukan exception. Periksa stop_reason == "refusal". Gunakan parameter fallbacks sisi server, SDK middleware, atau implementasikan retry manual dengan fallback credit token. Reset giliran yang ditolak sebelum melanjutkan percakapan, atau Anda akan terus mendapatkan refusal.

Apakah fallback berarti permintaan tidak aman?

Tidak. Classifier disetel secara konservatif, sehingga permintaan yang tidak berbahaya dalam kategori yang berdekatan terkadang akan memicunya. Anthropic menyatakan kurang dari 5% sesi mengalami fallback. Perlakukan refusal sebagai sinyal routing, bukan vonis terhadap pengguna.

Kapan Opus 4.8 harus menjadi model default?

Ketika Anda tidak membutuhkan batas kemampuan penalaran Fable 5 dan ingin menghindari logika routing sepenuhnya. Opus 4.8 sekitar setengah biaya per token dan tidak menjalankan classifier yang sama. Untuk pekerjaan rutin, Opus 4.8 seringkali menjadi default yang lebih masuk akal. Untuk jalankan agentic jangka panjang, Fable 5 dengan fallback yang dikonfigurasi adalah pilihan yang tepat.

Kesimpulan

Fallback Claude Fable 5 adalah event routing, bukan error. Classifier aktif secara konservatif, API mengembalikan 200 yang bersih, dan Anthropic memberikan parameter sisi server dan SDK middleware yang menangani retry, tagihan cache, dan riwayat percakapan tanpa Anda harus menulis banyak kode.

Pekerjaan implementasinya kecil. Pergeseran framing adalah bagian yang lebih sulit. Begitu Anda berhenti memperlakukan refusal sebagai exception, sisanya akan mengikuti.

Saya masih memantau seberapa sering classifier cyber aktif pada pertanyaan yang sah. Satu minggu lagi data seharusnya memberi tahu saya apakah saya perlu menyetel sesuatu dari sisi saya. Dilanjutkan minggu depan.

Posting sebelumnya:

Bagikan