Konfigurasi Model Claude Code: Alias, Fallback, Effort

Tidak. Di Anthropic API dan Claude Platform on AWS ia menjadi Opus 5, di Amazon Bedrock dan Google Cloud Agent Platform menjadi Opus 5, dan di Microsoft Foundry menjadi Opus 4.6. Alias sonnet lebih beragam lagi. Kalau Anda butuh versi tertentu, pin nama model lengkapnya alih-alih mengandalkan alias.
Keduanya menyelesaikan masalah berbeda. Rantai fallbackModel menangani ketersediaan — model utama kelebihan beban atau mengembalikan error server yang tak bisa diulang, sehingga Claude Code mencoba entri berikutnya. Automatic model fallback berbasis konten: Fable 5 dan Opus 5 menjalankan safety classifier, dan request yang ditandai dijalankan ulang di model lain.
Karena ia mungkin turun diam-diam. Kalau Anda menyetel level yang tidak didukung model aktif, Claude Code turun ke level tertinggi yang didukung pada atau di bawahnya — xhigh berjalan sebagai high di Opus 4.6, tanpa pemberitahuan. Opus 4.6 dan Sonnet 4.6 mendukung low, medium, high, dan max tetapi tidak xhigh.
Setiap masuk dan keluar plan mode adalah pergantian model, dan setiap model punya prompt cache sendiri. Jadi sesi yang mengubah plan mode empat kali sudah membayar empat kali pembacaan ulang penuh tanpa cache atas percakapan sejauh itu. Pada sesi pendek ini tidak berarti; pada sesi panjang ia terasa.
Tidak. Claude Code tidak mengonfirmasi rantainya saat startup dan command status tidak menampilkannya. Notifikasi yang muncul ketika pergantian benar-benar terjadi adalah tanda pertama yang terlihat bahwa fallback memang dikonfigurasi, dan karena itu rantainya layak dicatat di tempat yang akan Anda baca.

Ringkasan Utama
Alias model Claude Code diterjemahkan ke versi berbeda tergantung provider Anda, sehingga setting yang sama bisa berarti Opus 5 di Anthropic API dan Opus 4.6 di Microsoft Foundry. Fallback chain dibatasi tiga model, hanya berlaku untuk giliran saat itu, dan tidak ditampilkan di output status. Effort level diturunkan diam-diam ke level tertinggi yang didukung model aktif.
Saya dan seorang kolega membandingkan catatan pada konfigurasi alias yang sama dan mendapat jawaban berbeda untuk pertanyaan yang sama. File setting sama, prompt sama, penalaran yang jelas berbeda. Dia di Bedrock, saya di Anthropic API, dan kata opus di konfigurasi kami berdua diterjemahkan ke model yang berbeda. Tidak ada satu pun sesi yang mengatakannya.
Konfigurasi model di Claude Code termasuk area yang defaultnya cukup baik sehingga kebanyakan orang tidak pernah melihatnya, sampai suatu hari abstraksinya jadi penting. Tulisan ini membahas apa yang sebenarnya ditunjuk sebuah alias, dua mekanisme fallback yang sama sekali berbeda dan kenapa salah satunya tak terlihat, bagaimana effort level menurun, dan kendali level organisasi yang menentukan apa yang bisa dipilih anggota tim.
Alias ada supaya Anda tidak perlu mengingat nomor versi, dan ia diperbarui seiring rilis baru. Ongkos kenyamanan itu adalah alias yang sama bukanlah model yang sama di mana-mana. Ini tabel yang layak dibuka saat membandingkan perilaku dengan seseorang di provider berbeda.
Ke mana dua alias umum itu mendarat, per provider:
| Provider | opus menjadi | sonnet menjadi |
|---|---|---|
| Anthropic API | Opus 5 | Sonnet 5 |
| Claude Platform on AWS | Opus 5 | Sonnet 4.6 |
| Amazon Bedrock, Google Cloud Agent Platform | Opus 5 | Sonnet 4.5 |
| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |
Kalau sebuah alias mendarat pada model lama, versi yang lebih baru tetap bisa dijangkau dengan menyebut namanya lengkap atau menyetel environment variable default opus maupun default sonnet. Kalau Anda butuh versi tertentu dan bukan yang direkomendasikan, pin nama model lengkapnya — alias memang sasaran bergerak secara desain, dan itu biasanya yang Anda inginkan sampai suatu saat tidak lagi.
Alias opusplan bersifat hibrida: Opus selama Anda di plan mode untuk penalarannya, Sonnet untuk eksekusi sesudahnya. Ia memasangkan model yang lebih baik dalam arsitektur dengan yang lebih murah dalam mengetik, dan untuk banyak workflow itu default yang tepat tanpa perlu dipikirkan lagi.
Kehalusannya ada pada efeknya terhadap caching. Setiap masuk dan keluar plan mode adalah pergantian model, dan tiap model punya cache sendiri — jadi sesi yang mengubah plan mode empat kali sudah membayar empat kali pembacaan ulang penuh tanpa cache atas percakapan sejauh itu. Pada sesi pendek itu tidak berarti apa-apa. Pada sesi panjang, itulah alasan pergantian kelima terasa lambat.
Ketika allowlist organisasi mengecualikan Opus terbaru tetapi mengizinkan versi lama, opusplan memakai Opus terbaru yang diizinkan untuk perencanaan alih-alih menyerah dan bertahan di Sonnet. Sesi Haiku yang biasanya naik ke Sonnet di plan mode berperilaku sama. Substitusi itu hanya berlaku di Anthropic API dan Claude Platform on AWS — di Bedrock, Agent Platform, Foundry, dan Mantle, yang deployment-nya memakai ID spesifik provider, plan mode cukup bertahan di model sesi itu.
Mekanisme ini menangani ketersediaan: model utama kelebihan beban, tidak tersedia, atau mengembalikan error server lain yang tidak bisa diulang, dan Claude Code turun menyusuri rantai alih-alih menggagalkan request. Ia layak dikonfigurasi dan mudah dilupakan bahwa Anda pernah mengonfigurasinya.
# Availability-based fallback: the primary model is overloaded
# or returns a non-retryable server error, so Claude Code moves
# down the chain instead of failing the request.
claude --fallback-model sonnet,haiku # one session
# Or persist it. Capped at three models after deduplication;
# extra entries are ignored.
{
"fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}
# Two things worth knowing:
# - the switch lasts for the CURRENT TURN only. Your next
# message tries the primary again.
# - /status does not display the chain and Claude Code does
# not confirm it at startup. The notice shown when a switch
# happens is the first visible sign it is configured at all.
#
# Auth, billing, rate-limit, request-size and transport errors
# never trigger a switch — those follow normal retry handling.Dua jenis entri dibuang bahkan sebelum penelusurannya dimulai. Apa pun di luar allowlist organisasi dihapus saat Claude Code membaca rantainya. Dan karena rantai ini juga mencakup compaction, Claude Code menolak jatuh ke model dengan context window lebih kecil daripada model utama — meringkas di sana akan memotong sebagian percakapan sebelum meringkasnya. Kalau semua fallback lebih kecil, compaction menampilkan error aslinya dan Anda mencoba lagi.
Fable 5 dan Opus 5 menjalankan safety classifier untuk konten cybersecurity dan biologi, dan request yang ditandai bisa dijalankan ulang pada model berbeda. Ini mekanisme yang sama sekali terpisah dari rantai di atas, dan ia mengejutkan orang karena bisa menyala di request pertama sebuah sesi:
Fallback bisa menyala sebelum Anda mengirim apa pun yang tidak biasa, karena request pertama membawa konteks workspace — isi CLAUDE.md dan git status Anda. Repository yang memuat materi keamanan atau biologi bisa memicu classifier hanya dari itu. Untuk memeriksa apakah kustomisasi Anda pemicunya, mulai dengan flag safe-mode, yang mematikan CLAUDE.md, skill, MCP server, dan hook. Git status dan nama direktori bukan kustomisasi dan tetap disertakan, dan itu sendiri petunjuk yang berguna.
Effort mengendalikan penalaran adaptif: seberapa banyak model berpikir per langkah berdasarkan kompleksitas tugas. Level yang tersedia bergantung pada modelnya, dan mode gagalnya senyap alih-alih berisik.
# Effort levels are per model, and the default is high
# everywhere that supports them.
Fable 5, Opus 5, Sonnet 5, Opus 4.8, Opus 4.7
low medium high xhigh max
Opus 4.6, Sonnet 4.6
low medium high max (no xhigh)
# Set a level the active model does not support and Claude Code
# falls back to the highest supported level at or below it —
# xhigh runs as high on Opus 4.6, silently.
/effort xhigh
/effort ultracode # xhigh + automatic workflow orchestration
claude --effort ultracodeKalau Anda menyetel level yang tidak didukung model aktif, Claude Code turun ke level tertinggi yang didukung pada atau di bawahnya. Jadi konfigurasi bertuliskan xhigh berjalan sebagai high di Opus 4.6 dan tak ada yang memberi tahu Anda. Gabungkan itu dengan alias yang mendarat di model berbeda pada provider Anda, dan dua orang dengan file setting identik bisa berjalan pada kedalaman penalaran yang sungguh berbeda sambil sama-sama yakin sedang di xhigh.
Tiga setting membentuk apa yang bisa dipilih anggota tim, dan ketiganya menyelesaikan masalah berbeda. Allowlist membatasi model mana yang boleh dipakai sama sekali. Picker mengkurasi apa yang benar-benar ditawarkan command model, dengan urutan dan label pilihan Anda. Dan setting pricing membuat output biaya mencerminkan tarif kontrak organisasi Anda alih-alih harga daftar, dan itu penting begitu seseorang memakai output tersebut untuk mengambil keputusan.
// Restrict which models a session may run on, then curate
// what the picker actually shows.
{
"availableModels": ["sonnet", "claude-opus-4-6"],
// Ordered, labelled list for the /model picker. Accepts any
// ID spelling, including Vertex and Bedrock IDs.
"modelPicker": [
{ "id": "claude-sonnet-5", "label": "Sonnet 5 — daily driver" },
{ "id": "claude-opus-5", "label": "Opus 5 — hard problems" }
],
// Price /cost, the statusline and telemetry at your
// organisation's contracted rates instead of list price.
"modelPricing": { }
}
# Substitution when the allowlist blocks a request: a family
# alias such as "opus" runs on the newest permitted version of
# that family on the Anthropic API and Claude Platform on AWS.
# On providers with provider-specific IDs there is no such
# substitution, and a blocked value falls back to the lead's model.Khusus untuk subagent, environment variable model subagent menimpa baik model sesi maupun apa pun yang diminta script workflow, jadi itulah satu tuas untuk menjaga fan-out tetap di model yang lebih murah tanpa mengedit script. Setel sebelum run besar alih-alih mencoba mengarahkan tiap tahap satu per satu — dan ingat bahwa di dalam workflow, agent yang model permintaannya diblokir allowlist akan berjalan di model pengganti, dan tampilan progresnya menyebut keduanya.
Sebagian besar isi tulisan ini tidak akan pernah Anda sentuh. Tiga ini langsung membayar dirinya:
Model mental yang berguna: hampir setiap setting model di Claude Code adalah permintaan, bukan perintah. Alias diterjemahkan per provider, effort level dijepit ke apa yang didukung model, entri rantai dibuang bila allowlist melarangnya, dan request yang ditandai dialihkan oleh classifier yang tidak pernah Anda lihat. Tidak ada yang salah dengan itu, tetapi artinya jawaban atas pertanyaan model apa yang sebenarnya saya jalankan adalah sebuah perintah yang Anda jalankan, bukan sebaris teks yang Anda baca di file setting.
Sumber & bacaan lanjutan