Claude API Bisa Ganti Level Penalaran di Tengah Percakapan

AI coding illustration: a robotic arm fitting a red block into a structure

Anthropic menambahkan fitur Beta baru di dokumentasi developer Claude: penyesuaian effort per pesan. Developer dapat menyisipkan pesan system khusus di tengah percakapan multi-giliran untuk menurunkan level penalaran jawaban berikutnya dari high ke low, atau sebaliknya. Pengaturan effort tingkat atas pada permintaan tidak perlu disentuh, dan prefiks percakapan yang sudah di-cache tetap bisa terkena cache hit.

Cara penulisan di dokumentasi sangat singkat. Tambahkan satu pesan ke array messages dengan role bernilai system dan content berupa array kosong, letakkan nilai baru output_config.effort di dalamnya, lalu sertakan header mid-conversation-output-config-2026-07-01 pada permintaan. Dalam contohnya, effort tingkat atas diatur ke high, lalu model terlebih dahulu menyusun rencana tiga langkah migrasi dari SQLite ke PostgreSQL dengan level tinggi. Setelah itu disisipkan pesan system level low, pengguna hanya meminta rencana tersebut diringkas menjadi satu kalimat, dan giliran ini dijawab dengan level rendah.

Level baru berlaku mulai giliran yang mana

Waktu berlakunya bergantung pada posisi pesan ini, dan aturannya ditulis cukup rinci:

  • Jika diletakkan tepat setelah pesan user yang membawa input baru, Claude menjawab giliran itu dengan level baru.
  • Jika diletakkan di posisi lain, misalnya di antara balasan assistant dan pesan user berikutnya, level baru berlaku mulai pesan user berikutnya yang membawa input baru.
  • Pesan user yang hanya berisi tool_result tidak dihitung sebagai input baru, sehingga beberapa kali bolak-balik pemanggilan alat tidak memicu pergantian.

Level baru tetap berlaku sampai ada pesan lain di belakangnya yang mengubahnya lagi. Dokumentasi secara khusus mengingatkan bahwa pesan ini harus ditaruh di ujung konten yang sudah dikirim dan dipertahankan apa adanya di setiap permintaan berikutnya. Pesan ini tidak boleh disisipkan di depan giliran yang sudah terkirim, dan tidak boleh dipindahkan atau dihapus belakangan. Pada model yang mendukung preserved thinking (pemikiran yang dipertahankan), perubahan semacam ini membuat blok pemikiran pada giliran assistant setelah pesan tersebut menjadi tidak berlaku.

Kondisi galat juga dicantumkan dengan jelas. Menulis output_config di pesan system tanpa header beta akan menghasilkan respons 400 dengan pesan "Extra inputs are not permitted". Jika header disertakan tetapi modelnya tidak didukung, misalnya Claude Fable 5, hasilnya juga 400. Sonnet 5.5 dengan mode berpikir between_tools aktif dan Haiku 5.5 dengan pemikiran dimatikan juga tidak bisa mengubah level di tengah jalan; dokumentasi menyarankan memakai adaptive thinking untuk kedua kasus itu.

Cara lama dan apa yang kini terpangkas

Effort semula adalah parameter tingkat permintaan yang ditulis di bagian atas permintaan. Developer yang ingin satu percakapan berpikir serius di awal lalu menjawab cepat di bagian akhir hanya bisa mengubah nilai tingkat atas di antara dua permintaan. Penilaian dokumentasi terhadap cara itu cukup lugas: begitu nilai tingkat atas berubah, cache prompt dihitung ulang dari awal, dan konteks panjang yang sudah menumpuk ditagih ulang sebagai cache miss.

"A per-message change leaves everything before it unchanged, so the cached prefix still matches." (Perubahan per pesan tidak mengubah apa pun sebelumnya, sehingga prefiks yang di-cache tetap cocok.)

Dokumentasi juga menyebut satu detail yang mudah terlewat. Pada Claude Fable 5.1, mengubah nilai tingkat atas memang kurang andal untuk mengarahkan model, karena beberapa balasan sebelumnya ditulis dengan level lama dan model cenderung menjaga konsistensi dengan gaya sebelumnya. Pergantian per pesan menuliskan "mulai dari sini ganti gigi" ke dalam percakapan itu sendiri, sehingga model dapat melihat titik pergantiannya.

Ini paling berguna untuk loop agent yang berjalan lama. Agent pemrograman bisa memakai level tinggi untuk membaca basis kode dan menetapkan rencana perubahan, lalu menjalankan puluhan giliran eksekusi dan konfirmasi berikutnya dengan level rendah. Prefiks konteks tetap sama, sehingga tingkat cache hit tidak terpengaruh. Dulu developer harus memilih antara fleksibilitas level dan hemat cache; sekarang keduanya bisa didapat.

Aplikasi layanan pelanggan dan tanya jawab juga bisa memanfaatkannya. Di awal percakapan pengguna menjelaskan gangguan yang rumit dan model mendiagnosis dengan level tinggi. Setelah masalah terlokalisasi, pengguna hanya bertanya lanjutan seperti "langkah kedua itu tepatnya klik di mana", dan saat itu level diturunkan ke rendah sehingga respons jauh lebih cepat. Sebaliknya, jika di tengah obrolan santai pengguna tiba-tiba melempar sebuah kontrak untuk ditinjau pasal demi pasal, aplikasi bisa menaikkan level untuk sementara. Pergantian semacam ini dulu berarti mengorbankan cache atau tidak mengganti sama sekali.

Cakupan dukungan

Dari sisi model, Fable 5.2, Mythos 5.2, Fable 5.1, Mythos 5.1, Opus 5.5, Opus 5, Sonnet 5.5, dan Haiku 5.5 semuanya masuk daftar Beta, dengan platform cloud yang tercakup tidak sepenuhnya sama untuk tiap model. Dari sisi platform, Claude API, Amazon Bedrock, Claude Platform on AWS, dua cara hosting di Google Cloud, dan Microsoft Foundry semuanya ditandai Beta. Developer yang memakai antarmuka Bedrock InvokeModel harus menulis nilai beta ke array anthropic_beta di badan permintaan, bukan di header permintaan.

Managed Agents belum mendukung fitur ini; solusi pengganti dalam dokumentasi adalah menimpa pengaturan model agent pada tingkat sesi. Fitur ini masih berstatus Beta, dan tanggal pada nama header beta merupakan penanda versi antarmuka. Apakah penulisannya akan berubah setelah versi resmi dirilis, dokumentasi tidak menjelaskan.

Sumber: Dokumentasi developer Claude, halaman Per-message effort (untuk memverifikasi nama header beta, daftar model dan platform, aturan posisi berlaku, dan pesan galat), CocoLoop, dokumentasi developer Claude, penjelasan parameter effort.