GET /protocol, mencakup endpoint sign-in, inference, managed settings, model discovery, dan telemetry gateway tersebut. Ini adalah dokumen terpisah dari panduan ini.
- Untuk meluncurkan gateway yang ada atau pihak ketiga untuk organisasi Anda, lihat Meluncurkan gateway LLM
- Jika Anda adalah pengembang individual yang mengautentikasi Claude Code ke gateway dengan kredensial yang diberikan kepada Anda, lihat Hubungkan Claude Code ke gateway LLM
- Format API dan endpoint yang harus dilayani untuk masing-masing
- Perilaku klien berdasarkan metode koneksi: bagaimana ID model, nilai
anthropic-beta, field permintaan, dan default berbeda antara format dan sign-in gateway aplikasi Claude - Header permintaan: mana yang harus mencapai upstream dan mana yang dapat dikonsumsi gateway Anda
- Header respons: apa yang harus dikembalikan agar deteksi stall, retry, dan tampilan batas penggunaan berfungsi
- Blok atribusi prompt sistem dan bagaimana interaksinya dengan prompt caching
- Penerusan fitur: apa yang rusak saat header atau field body dihapus
- Penemuan model
- Teruskan tanpa perubahan: teruskan ke upstream byte-for-byte
- Konsumsi: gateway dapat membacanya untuk routing, atribusi, atau tracing dan tidak perlu meneruskannya
Format API
Gateway harus mengekspos setidaknya salah satu format API berikut kepada klien Claude Code. Klien memilih format dan menunjukkan Claude Code ke gateway Anda dengan variabel di kolom Selected by tabel di bawah. Google Cloud’s Agent Platform adalah endpoint Claude Google Cloud, sebelumnya Vertex AI; nama variabelnya tetap menggunakan ejaanVERTEX.
Foundry dan Claude Platform on AWS
Microsoft Foundry dan Claude Platform on AWS mengimplementasikan format Anthropic Messages. Claude Code merutekan ke mereka melalui variabel mereka sendiri,ANTHROPIC_FOUNDRY_BASE_URL dan ANTHROPIC_AWS_BASE_URL, tetapi gateway yang berada di depan salah satu dari mereka mengimplementasikan baris Anthropic Messages di atas. Gateway yang berada di depan Claude Platform on AWS juga harus meneruskan header anthropic-workspace-id, yang platform tersebut memerlukan pada setiap permintaan.
Endpoint opsional dan lalu lintas startup
Endpoint penghitungan token adalah satu-satunya yang opsional: ketika tidak ada, Claude Code kembali ke perkiraan berbasis karakter dari penggunaan konteks. Cocokkan pada path, bukan URL lengkap:- Permintaan inferensi posting ke
/v1/messages?beta=true - Metode Google Cloud’s Agent Platform menambahkan sufiks ke path model penerbit, seperti dalam
/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict
HEAD /api/hello, yang Claude Code lewati ketika proxy HTTP atau sertifikat klien dikonfigurasi. Gateway format Amazon Bedrock menerima permintaan GET /inference-profiles?type=SYSTEM_DEFINED dan, ketika model yang dikonfigurasi adalah profil inferensi, pencarian GET /inference-profiles/{profile}.
Sesi yang melewati gateway tidak memenuhi syarat untuk konfigurasi HIPAA. Periksa cara pengembang masuk dan terhubung mencantumkan metode masuk dan koneksi mana yang memenuhi syarat. Lihat Konfigurasi HIPAA di belakang gateway.
Pemeriksaan ketersediaan fast mode tidak pernah muncul dalam log gateway: ia memanggil api.anthropic.com secara langsung daripada mengikuti ANTHROPIC_BASE_URL, jadi pada jaringan yang memblokir egress langsung ke api.anthropic.com, fast mode dapat melaporkan kesalahan konektivitas sementara inferensi melalui gateway terus bekerja. Pemeriksaan keamanan domain WebFetch juga memanggil api.anthropic.com secara langsung. Gunakan fast mode di belakang proxy dan gateway LLM mencakup variabel yang memulihkannya.
Streaming
Claude Code membaca setiap respons inferensi streaming event demi event saat tiba, sehingga cara gateway Anda meneruskan stream memengaruhi apa yang dilihat pengguna:- Jika gateway Anda membuffer respons hingga selesai, Claude Code macet.
- Claude Code mengharapkan urutan event lengkap setiap respons, secara berurutan, hingga event
message_deltadanmessage_stopfinal. Jika body berakhir dengan bersih setelah blok konten dimulai tetapi sebelummessage_deltafinal tersebut, Claude Code memperlakukan respons sebagai koneksi yang terputus. Respons di atas mungkin tidak lengkap menjelaskan apa yang dilihat pengguna saat itu, dan Retry otomatis mengatakan kapan Claude Code mengeluarkan kembali permintaan sebagai gantinya. - Ketika guardrail Amazon Bedrock memblokir balasan, event yang dikirim Bedrock dapat mereferensikan blok konten yang
content_block_stop-nya sudah tiba, dan Claude Code bergantung pada penerimaan event tersebut sebagaimana dikirim. AWS Guardrails menjelaskan bagaimana balasan tersebut berakhir. - Claude Code membatalkan respons streaming setelah tidak ada byte yang mencapainya lebih lama dari idle timeout streaming-nya. Selama jeda thinking yang panjang, event SSE
pingdari upstream dapat menjadi satu-satunya byte pada stream, sehingga gateway yang menghapus atau membuffer event tersebut dapat memicu timeout itu di tengah respons. Gateway yang menerjemahkan dari upstream tanpa ping, seperti event stream biner Amazon Bedrock, memiliki celah yang sama kecuali gateway tersebut mengeluarkan eventpingsendiri. - Pada format Amazon Bedrock InvokeModel, Claude Code membaca respons
/model/{model}/invoke-with-response-streamsebagai body binerapplication/vnd.amazon.eventstreamyang dikembalikan Bedrock, dan tidak dapat mem-parsing-nya setelah gateway mengonversinya menjadi server-sent events atau menulis ulang headerContent-Typetersebut. Kesalahan streaming di belakang gateway atau proxy menjelaskan apa yang dilihat pengguna saat itu.
Format mismatch dengan upstream
Format mana yang digunakan klien menentukan apa yang diterima gateway Anda. Mode kegagalan umum adalah ketidaksesuaian antara format yang dikirim klien ke gateway Anda dan format yang diterima penyedia upstream di belakangnya.- Ketika klien berbicara format Amazon Bedrock atau Google Cloud’s Agent Platform, Claude Code mengirim hanya subset dari set kemampuan penuhnya yang diterima penyedia tersebut
- Ketika klien berbicara format Anthropic Messages, Claude Code mengirim set lengkap, bahkan jika gateway Anda meneruskan ke upstream Amazon Bedrock atau Google Cloud’s Agent Platform
Bagaimana metode koneksi mengubah perilaku klien
Cara pengembang terhubung ke gateway Anda menentukan ID model mana, nilaianthropic-beta mana, dan bidang permintaan mana yang dikirim Claude Code, serta default mana yang diterapkannya. Gateway Anda melihat salah satu dari tiga perilaku klien:
- Format Amazon Bedrock atau Agent Platform: pengembang menetapkan
CLAUDE_CODE_USE_BEDROCK=1denganANTHROPIC_BEDROCK_BASE_URL, atauCLAUDE_CODE_USE_VERTEX=1denganANTHROPIC_VERTEX_BASE_URL, menunjuk ke gateway Anda. Claude Code menggunakan ID model, bidang permintaan, dan default penyedia tersebut. - Format Anthropic Messages: pengembang menetapkan
ANTHROPIC_BASE_URLke gateway Anda. Claude Code memperlakukan gateway sebagai Claude API dan tidak dapat mengetahui upstream mana yang Anda teruskan. - Masuk ke gateway aplikasi Claude: pengembang masuk ke gateway aplikasi Claude. Gateway tersebut berbicara dalam format Anthropic Messages tetapi dapat merutekan ke upstream apa pun, jadi Claude Code hanya mengirimkan nilai
anthropic-betadan asumsi kemampuan model yang juga diterima Amazon Bedrock dan Agent Platform.
Permintaan dan default menurut metode koneksi
Tabel di bawah membandingkan tiga metode koneksi, satu perilaku per baris. Tabel ini menghilangkan Microsoft Foundry dan Claude Platform di AWS, yang juga menggunakan format Anthropic Messages tetapi yang Claude Code jangkau melalui variabel mereka sendiri. Untuk itu, lihat halaman Microsoft Foundry dan Claude Platform di AWS.
Untuk fitur yang didukung setiap koneksi dan telemetri yang dikirimnya ke Anthropic secara default, lihat Ketersediaan fitur dan Perilaku default menurut penyedia API.
Pengaturan untuk ID model yang tidak dikenali
Dua pengaturan sisi klien mengubah apa yang diasumsikan Claude Code untuk ID model yang tidak dikenalinya, terlepas dari metode koneksi mana yang digunakan pengembang:- Context window: Claude Code mengasumsikan 200K, atau 1M ketika ID membawa
[1m]. Untuk mendeklarasikan jendela sebenarnya, lihat Perbaiki jendela untuk gateway atau ID model kustom - Capabilities: untuk memberikan alias gateway kemampuan model di belakangnya, petakan ID Anthropic model tersebut ke alias Anda dengan entri
modelOverridesdalam pengaturan yang Anda distribusikan. Untuk tempat variabelANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIESberlaku, lihat penerusan fitur
Header permintaan
Claude Code menyertakan header ini pada permintaan API. Nama header tidak peka huruf besar-kecil di kawat. Teruskananthropic-version dan anthropic-beta tanpa perubahan, ditambah anthropic-workspace-id ketika upstream adalah Claude Platform on AWS; sisanya gateway dapat konsumsi untuk routing, atribusi, dan tracing, dan tidak perlu diteruskan.
ID subagent dihasilkan segar untuk setiap spawn. Agen rekan kerja, anggota bernama dari tim agen, menggunakan kembali ID berbasis nama yang stabil di seluruh reconnections. Dalam kedua kasus ID mengidentifikasi agen, bukan orang atau perangkat, jadi jangan perlakukan header ID agen sebagai pengidentifikasi pengguna.
Jika pengembang Anda menetapkan
ANTHROPIC_CUSTOM_HEADERS, header tersebut muncul pada permintaan juga.
Header petunjuk gateway
Claude Code juga dapat mengirim petunjuk routing: fakta per-permintaan yang dapat digunakan gateway atau router untuk menjadwalkan, cache, atau mengatribusikan permintaan. Memerlukan Claude Code v2.1.273 atau lebih baru. Apakah permintaan membawanya tergantung pada tempat Claude Code mengirimnya:- Koneksi langsung ke API Anthropic: dikirim secara default
- URL dasar kustom: nonaktif secara default, karena proxy yang menolak header yang tidak dikenal akan gagal permintaan. Untuk menerimanya, atur
CLAUDE_CODE_GATEWAY_HINT_HEADERS=1untuk pengembang Anda, misalnya di blokenvdari pengaturan terkelola - Backend lainnya, termasuk Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry, dan Claude Platform on AWS: dikirim hanya ketika
CLAUDE_CODE_GATEWAY_HINT_HEADERS=1diatur
CLAUDE_CODE_GATEWAY_HINT_HEADERS ke 0 menghentikan header pada setiap koneksi.
Header hanya membawa apa yang baris di bawah daftar: kosakata tetap, nama alat, durasi, dan pengidentifikasi prompt acak, tidak pernah teks prompt atau konten file. Setiap nilai adalah ASCII yang dapat dicetak.
Sebelum mengurai
x-claude-code-prev-tool-durations, periksa bagaimana Claude Code membangun nilai dan apa yang ditinggalkannya:
- Entri: satu per panggilan alat yang berjalan, dalam urutan hasilnya dikumpulkan, dalam milidetik utuh
- Cap: Claude Code mengirim paling banyak 32 entri dan 4 KB, menyimpan entri pertama
- Encoding: nama alat dikodekan persen, mencakup
%,;,=, koma, spasi, dan karakter apa pun di luar ASCII yang dapat dicetak - Parsing: pisahkan pada
;, kemudian pada=, dan dekode setiap nama - Ketiadaan: panggilan compaction, permintaan samping, dan permintaan pertama prompt baru tidak membawanya. Jangan baca header yang hilang sebagai giliran yang tidak menjalankan alat
- Waktu: masing-masing mengecualikan prompt izin dan hooks, dan panggilan alat paralel masing-masing melaporkan waktu mereka sendiri, jadi entri tidak menambah hingga celah antara permintaan
Teruskan sebagai daftar terbuka
Perlakukan header dan field body sebagai daftar terbuka, bukan daftar tertutup. Claude Code mendapatkan kemampuan di seluruh rilis, dan mereka tiba sebagai nilaianthropic-beta baru, field body permintaan baru, dan kadang-kadang header anthropic-* atau x-claude-code-* baru.
Ketika meneruskan ke upstream format Anthropic, teruskan header permintaan anthropic-* dan field body permintaan melalui tanpa perubahan daripada allowlist yang Anda lihat hari ini. Gateway yang disematkan ke daftar yang diamati menghapus header atau field kemampuan berikutnya dan merusaknya pada rilis yang memperkenalkannya.
Pengecualiannya adalah upstream non-Anthropic seperti Amazon Bedrock atau Google Cloud’s Agent Platform, di mana menjembatani perbedaan skema adalah pekerjaan gateway; lihat penerusan fitur.
Response headers
Claude Code membaca response headers ini untuk mendeteksi stalled streams, untuk memutuskan apakah dan kapan harus retry, dan untuk menampilkan usage limits. Tabel ini mencantumkan apa yang harus dikembalikan untuk masing-masing. Juga forward error response bodies tanpa modifikasi, sehingga capability-rejection recovery Claude Code dapat mencocokkan wording error upstream.Blok atribusi prompt sistem
Claude Code menambahkan blok atribusi pendek ke prompt sistem yang berisi versi klien dan sidik jari yang berasal dari percakapan. Endpointapi.anthropic.com menghapus blok sebelum memproses ketika tiba tidak berubah sebagai blok sistem pertama, jadi tidak mempengaruhi prompt caching pihak pertama. Upstream lain apa pun menerimanya sebagai bagian dari prompt.
Strip bersifat posisional, jadi hanya berfungsi ketika gateway meneruskan array system tanpa perubahan. Untuk menjaga blok keluar dari prompt tanpa kehilangan konten sistem lainnya:
- Teruskan array
systempersis seperti yang diterima, menjaga blok tetap pertama: menambahkan blok sistem lain, mengurutkan ulang array, atau mengonversinya menjadi string tunggal mengalahkan strip, dan blok kemudian mencapai model dan kunci cache prompt. - Jaga blok dalam entri array-nya sendiri: endpoint memperlakukan blok yang digabungkan yang dimulai dengan header atribusi sebagai atribusi sepenuhnya dan menghapus semua yang digabungkan ke dalamnya, termasuk sisa prompt sistem.
- Jika gateway Anda harus membentuk ulang konten sistem, atur
CLAUDE_CODE_ATTRIBUTION_HEADER=0sehingga Claude Code menghilangkan blok. Anthropic dan endpoint Claude penyedia cloud membacanya untuk atribusi, jadi hilangkan di klien daripada menghapusnya atau memindahkannya di gateway.
0:
- Permintaan pergi ke
api.anthropic.com, denganANTHROPIC_BASE_URLtidak diatur atau menamai host itu dan tidak ada penyedia pihak ketiga yang dipilih. - Kredensial aktif bukan profil Anthropic atau kredensial federasi.
0 menghapus blok dari permintaan pengklasifikasi juga. Sebelum v2.1.229, pengecualian ini tidak ada: menetapkan 0 menghapus blok dari permintaan pengklasifikasi tersebut, dan ketika API menolak permintaan yang tidak teridentifikasi, mode otomatis gagal pada setiap tindakan yang dikirimnya ke pengklasifikasi.
Dari Claude Code v2.1.181, blok stabil untuk seumur hidup percakapan ketika permintaan merutekan melalui URL dasar kustom, jadi cache prompt gateway-side yang dikunci pada body permintaan lengkap bekerja tanpa menonaktifkannya, dan penyedia apa pun yang gateway Anda teruskan menerima awalan prompt yang stabil. Sebelum v2.1.181 blok menyertakan token per-permintaan yang mengubah awal prompt sistem pada setiap permintaan. Pada versi tersebut, atur CLAUDE_CODE_ATTRIBUTION_HEADER=0 ketika gateway Anda melakukan salah satu dari ini:
- Mengimplementasikan cache prompt yang dikunci pada body permintaan.
- Meneruskan permintaan ke penyedia pihak ketiga seperti Amazon Bedrock, Microsoft Foundry, atau Agent Platform Google Cloud, dalam format Anthropic Messages atau format penyedia sendiri, di mana awalan yang berubah mengurangi reuse cache prompt pada penyedia itu.
Penerusan fitur
Claude Code memperlakukan gatewayANTHROPIC_BASE_URL sebagai endpoint format Anthropic dan mengirimkannya header beta dan field body permintaan yang dikirimkannya ke api.anthropic.com, kecuali set kecil diagnostik dan default yang disediakan untuk koneksi langsung, seperti default streaming alat berbutir halus yang tercakup di bawah. Set tersebut bervariasi menurut rilis, jadi jangan bergantung pada isinya.
Streaming alat berbutir halus adalah salah satu default koneksi langsung: itu dimatikan secara default setiap kali permintaan merutekan melalui URL dasar kustom, dan gateway menerimanya ketika pengembang menetapkan CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1.
Pasangan header beta dan field body
Kemampuan yang menambahkan field body memasangkannya dengan header beta, dan pasangan tersebut dikirim bersama. Gateway yang menghapus header sambil melewatkan body, atau meneruskan body format Anthropic ke upstream dengan skema berbeda, menghasilkan kesalahan400. Ketika kedua bagian tidak ada bersama-sama, fitur mati secara diam-diam.
Gateway yang menulis ulang atau menyunting body permintaan untuk inspeksi konten memecah pasangan dengan cara yang sama seperti penghapusan, jadi lakukan inspeksi tanpa memodifikasi. Tabel mencatat di mana fitur menyimpang dari pasangan.
Variabel
ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES mendeklarasikan kemampuan model hanya dalam konfigurasi penyedia: CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, CLAUDE_CODE_USE_FOUNDRY, dan CLAUDE_CODE_USE_MANTLE. Mereka tidak memiliki efek di belakang gateway ANTHROPIC_BASE_URL.
Retry otomatis dan penerusan kesalahan
Ketika upstream menolak salah satu kemampuan ini, Claude Code dapat mencoba ulang permintaan sendiri dengan bagian yang ditolak dihapus atau diubah:- Ketika
400menyatakan bahwa nilaithinking.typeenabledatauadaptivetidak didukung, Claude Code mencoba ulang sekali dengan tipe lainnya dan mempertahankan fieldthinking. Permintaan berikutnya ke model tersebut tetap menggunakan tipe yang telah diganti sampai Claude Code keluar. Sebelum v2.1.121, Claude Code tidak mencoba ulang, sehinggathinking.type.enabled is not supportedsampai ke pengembang - Ketika upstream menolak entri
role: "system"di dalammessages, Claude Code mencoba ulang sekali tanpa pesan sistem mid-conversation tersebut dan membawa teksnya dalam pesan pengguna sebagai gantinya. Permintaan berikutnya dalam percakapan tetap menggunakan bentuk tersebut sampai pengembang menjalankan/clearatau percakapan dipadatkan - Ketika upstream hanya menolak penanda
cache_controlpada pesan sistem mid-conversation, Claude Code mempertahankan pesan sistem dan mencoba ulang sekali dengan penanda dipindahkan. Penanda ditempatkan pada entri terakhir dalammessagesyang bukan pesan sistem, dalam retry tersebut dan dalam permintaan berikutnya sampai Claude Code keluar - Ketika upstream menolak tanda tangan pemikiran, termasuk dengan
400yang pesannya mengatakan blokbound to a different conversation, Claude Code menghapus blok pemikiran sebelumnya dari permintaan, mengulangi, dan menjaganya keluar dari setiap permintaan kemudian. Respons baru masih menyertakan pemikiran - Ketika gateway atau upstream-nya menolak entri tool advisor dalam
toolssebagai tipe tool yang tidak dikenali, Claude Code mencoba ulang sekali tanpa entri tersebut dan nilaianthropic-beta-nya. Permintaan berikutnya tidak menyertakan keduanya. Claude Code mengenali penolakan ini dengan respons400atau422yang pesannya menyebutkan tipe tool setelahInput tag, sepertiInput tag 'advisor_20260301'. Sebelum v2.1.280, Claude Code tidak mencoba ulang penolakan ini - Ketika upstream menolak
output_config.effortatau nilaianthropic-beta-nya, gateway melihat permintaan tersebut sekali lagi tanpa keduanya. Permintaan berikutnya tidak menyertakan keduanya. Gateway Anda tidak memerlukan perubahan jika meneruskan400dari upstream tanpa modifikasi dan pesannya:- Menyebutkan
output_config.effortbersama denganExtra inputs are not permitted - Menyatakan bahwa model tidak mendukung parameter effort
- Diawali dengan
Unexpected value(s)dan mencantumkaneffort-2025-11-24untuk headeranthropic-beta. Memerlukan v2.1.310 atau lebih baru. Pengembang yangANTHROPIC_BETAS-nya mencantumkan nilai tersebut tetap mengirimkannya dan mendapatkan400, jadi minta mereka menghapus entri tersebut
- Menyebutkan
- Ketika upstream menolak field
context_managementatau nilaianthropic-beta-nya, gateway melihat permintaan tersebut sekali lagi tanpa keduanya. Permintaan berikutnya tidak menyertakan keduanya. Claude Code mengenali penolakan ini dari pesannya, misalnya pesan yang berisicontext_management: Extra inputs are not permitted. Sebelum v2.1.304, Claude Code tidak mencoba ulang penolakan ini - Ketika
400menolak nilaianthropic-betalain dengan menyebutkan namanya, gateway melihat permintaan tersebut sekali lagi tanpa nilai itu jika retry mencakup nilai tersebut - Ketika upstream menolak field tool beta selain
defer_loading, sepertistrict, kesalahan400mencapai pengembang. Sebelum itu terjadi, gateway dapat melihat permintaan tersebut lagi tanpa field pencarian tool. Untuk berhenti mengirim field semacam itu, minta pengembang mengaturCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
bound to a different conversation berasal dari pemeriksaan preserved thinking API, yang gagal ketika konten system, tools, atau messages sebelumnya berbeda dari permintaan yang menghasilkan pemikiran. Gateway yang menulis ulang konten apa pun dari itu dapat menyebabkan penolakan itu sendiri; Libraries, proxies, and gateways mencakup apa yang harus dilewatkan tanpa perubahan.
Sebagian besar logika retry ini cocok dengan kata-kata kesalahan upstream, jadi teruskan body respons kesalahan tanpa modifikasi. Gateway yang membungkus kesalahan upstream dalam amplop miliknya sendiri memecah jalur pemulihan, bahkan ketika mempertahankan kode status, kecuali pesan amplop membawa token capability_rejected: yang stabil. Gateway aplikasi Claude mengganti kata-kata kesalahan penyedia cloud dengan token tersebut, misalnya capability_rejected: prompt_too_long.
Retry tanpa nilai beta yang ditolak
Ketika400 menolak, dengan menyebutkan namanya, nilai anthropic-beta yang dicakup retry ini, gateway melihat permintaan tersebut sekali lagi tanpa nilai itu. Permintaan berikutnya tidak menyertakan nilai tersebut. Sebagian besar nilai yang dicakupnya memerlukan v2.1.314 atau lebih baru.
Gateway Anda tidak memerlukan perubahan jika pesan 400 yang dikembalikannya membawa nilai tersebut dalam salah satu bentuk berikut:
- Kalimat API: kalimat
Unexpected value(s)yang mencantumkan nilai tersebut untuk headeranthropic-beta - Token
beta_header::capability_rejected: beta_header:diikuti oleh nilai tersebut, sebuah tokencapability_rejected:
- Nilai yang memiliki retry sendiri, seperti advisor atau pencarian tool: gateway melihat retry milik kemampuan tersebut sebagai gantinya
- Nilai yang tidak dikenali Claude Code: nilai yang diatur pengembang melalui
ANTHROPIC_BETAStetap ada pada setiap permintaan, sehingga permintaan pengembang terus gagal dengan400. Minta pengembang menghapus entri tersebut invalid beta flagtanpa keterangan lain: Claude Code menebak nilai mana yang ditolak upstream. Jika permintaan membawa nilai yang ditebaknya, gateway melihat permintaan tersebut lagi tanpa nilai itu. Jika400tetap mencapai pengembang, minta gateway Anda menyebutkan nilai yang ditolak dalam salah satu bentuk tersebut
Berapa lama nilai beta yang ditolak tetap dikecualikan
Retry tanpa pencarian tool
Pada v2.1.305 atau lebih baru, Claude Code mengirim ulang permintaan tanpa fielddefer_loading dan blok tool_reference setelah 400 atau 422 yang menyebutkan pencarian tool atau yang penyebabnya tidak dikenalinya. Setelah retry berhasil, permintaan berikutnya dalam percakapan tersebut juga tidak menyertakannya.
Permintaan pengembang tetap berfungsi tanpa perubahan apa pun pada gateway, dengan tool MCP mereka dimuat di awal. Ketika Claude Code mencoba tool search lagi, gateway dapat melihat permintaan lain yang ditolak diikuti oleh retry-nya. Untuk tool search itu sendiri, Claude Code mengharapkan gateway meneruskan field defer_loading dan blok tool_reference beserta nilai anthropic-beta-nya.
Nonaktifkan kemampuan pra-rilis
Ketika gateway Anda atau upstream-nya menolak nilaianthropic-beta pra-rilis atau field body yang berpasangan dengannya, dan Anda tidak dapat meneruskan kedua bagian tersebut, minta pengembang mengatur CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Dengan variabel tersebut diatur, Claude Code berhenti mengirim kemampuan pra-rilis dan nilai anthropic-beta yang berpasangan dengannya, termasuk:
- Manajemen konteks dan field body
context_management-nya - Field skema tool beta, seperti
strictdandefer_loading. Field tool standarname,description,input_schema, dancache_controltetap ada - Field output terstruktur
output_config.format. Memerlukan Claude Code v2.1.287 atau lebih baru - Field
output_config.task_budget - MCP Tool Search, sehingga setiap tool MCP dimuat di awal kecuali organisasi Anda tetap mengaktifkannya melalui pengaturan terkelola
anthropic-beta. Yang tetap dipertahankan meliputi:
- Nilai
anthropic-betauntuk konteks diperluas, interleaved thinking, dan upaya, yang juga diterima oleh penyedia cloud - Field tingkat atas
output_config.effort. Retry otomatis dan penerusan kesalahan membahas upstream yang menolaknya - Field
thinkingpenalaran adaptif, yang tidak memiliki header beta - Entri
role: "system"yang membawa pesan sistem mid-conversation - Nilai
anthropic-betaOAuth yang diperlukan autentikasi langganan - Nilai header dan field body yang ditambahkan sendiri oleh pengembang melalui
ANTHROPIC_BETASatauCLAUDE_CODE_EXTRA_BODY
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS tidak menghentikan sesi mode otomatis pada Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, atau gateway aplikasi Claude dari meminta server untuk tinjauan pengklasifikasi. Tinjauan tersebut menambahkan nilai anthropic-beta dan field permintaan safeguards. Atur CLAUDE_CODE_AUTO_MODE_SERVER=0 untuk menghentikannya di sana.
Pada Claude Code v2.1.227 atau lebih baru, organisasi Anda dapat menjaga pencarian alat MCP tetap aktif di bawah variabel ini melalui pengaturan terkelola. Apa yang Claude Code kirimkan dengan override tersebut berlaku tergantung pada cara Anda terhubung:
- Pada koneksi langsung tanpa konfigurasi HIPAA, atau melalui gateway yang diatur dengan
ANTHROPIC_BASE_URL, Claude Code terus mengirim header beta pencarian alat, field alatdefer_loading, dan bloktool_reference - Pada penyedia cloud, atau masuk melalui gateway aplikasi Claude, override tidak memiliki efek
- Dalam sesi yang mendapatkan konfigurasi HIPAA, override tidak memiliki efek dan pencarian alat tetap nonaktif
Penemuan model
KetikaANTHROPIC_BASE_URL mengarah ke gateway yang menyediakan format Anthropic Messages, Claude Code dapat melakukan kueri ke endpoint /v1/models milik gateway saat startup dan menambahkan model yang dikembalikan ke pemilih /model. Jika Anda atau administrator Anda menetapkan replaceBuiltInOptions dalam susunan modelPicker, Claude Code menyembunyikan model yang ditemukan dari pemilih.
Developer mengaktifkannya dengan menetapkan CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1, di lingkungan mereka sendiri atau melalui pengaturan terkelola. Penemuan dinonaktifkan secara default agar gateway yang didukung oleh kunci API bersama tidak menampilkan setiap model yang dapat diakses oleh kunci tersebut kepada setiap pengguna.
Kapan penemuan berjalan
Penemuan hanya berlaku untuk format Anthropic Messages. Penemuan tidak berjalan ketika:- Variabel penyedia
CLAUDE_CODE_USE_*mana pun ditetapkan, meskipunANTHROPIC_BASE_URLjuga ditetapkan ANTHROPIC_BASE_URLtidak ditetapkan atau mengarah keapi.anthropic.com
Permintaan dan respons
Permintaannya adalahGET /v1/models?limit=1000 dengan timeout 3 detik secara default, dan setiap pengalihan diperlakukan sebagai kegagalan sehingga kredensial tidak dapat bocor ke target pengalihan. Gateway yang merespons lebih lambat dari timeout, atau yang mengalihkan /v1/models, bahkan dari http ke https, akan menggagalkan penemuan secara diam-diam; sajikan endpoint secara langsung di base URL yang dikonfigurasi.
Untuk memberi waktu lebih lama kepada gateway yang lambat, tetapkan CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS. Variabel ini memerlukan Claude Code v2.1.269 atau yang lebih baru.
Claude Code mengirim permintaan penemuan dengan kedua header kredensial di bawah ini dan menghilangkan header yang nilainya tidak dapat di-resolve. Pengiriman kedua header memerlukan Claude Code v2.1.248 atau yang lebih baru. Versi sebelumnya hanya mengirim Authorization ketika ANTHROPIC_AUTH_TOKEN ditetapkan dan hanya x-api-key dalam kasus lainnya.
Authorization:ANTHROPIC_AUTH_TOKENsebagai bearer token, jika tidak ada maka nilaiapiKeyHelpersebagai bearer token.x-api-key: kunci API yang di-resolve oleh Claude Code, sepertiANTHROPIC_API_KEY. Ketika nilai helper adalah satu-satunya kredensial, header ini juga membawanya, sehingga nilai tersebut tiba di kedua header.
ANTHROPIC_CUSTOM_HEADERS. Ketika header kustom memiliki nilai yang tidak kosong, Claude Code mengirimkannya sebagai pengganti header bawaan dengan nama yang sama, dengan pencocokan nama yang tidak peka huruf besar/kecil.
Ketika nilai kedua header kredensial sama-sama tidak dapat di-resolve, Claude Code melewati penemuan dan menulis baris [gatewayDiscovery] skipped ke log debug sesi claude --debug. Jika Anda menyediakan kredensial hanya melalui ANTHROPIC_CUSTOM_HEADERS, Claude Code tetap melewati penemuan.
Claude Code membaca id, display_name opsional, dan description opsional dari setiap entri dalam array data pada respons:
id-nya mengandung claude atau anthropic di mana pun dalam string, dengan pencocokan yang tidak peka huruf besar/kecil, dan mengabaikan sisanya. ID dengan prefiks penyedia seperti vertex_ai/claude-sonnet-4-6 atau bedrock/anthropic.claude-sonnet-4-5 lolos filter; ID yang tidak mengandung kedua substring tersebut tidak lolos. Sebelum v2.1.223, Claude Code hanya mempertahankan entri ketika id-nya diawali dengan claude atau anthropic, yang menyembunyikan ID dengan prefiks penyedia.
Entri pemilih dan caching
Pemilih adalah daftar model interaktif yang terbuka ketika developer menjalankan/model di Claude Code. Setiap entri yang ditemukan menggunakan display_name sebagai namanya ketika gateway mengirimkan nilai yang berbeda dari id. Jika tidak, entri menampilkan nama model ketika Claude Code mengenali id, dan menampilkan id ketika tidak mengenalinya. Misalnya, entri dengan id my-gateway-claude-sonnet-4-6 tanpa display_name muncul sebagai Sonnet 4.6.
Penemuan hanya menambahkan model yang diizinkan oleh pengaturan terkelola availableModels.
Setiap entri juga menampilkan description model, diringkas menjadi satu baris. Entri tanpa description menampilkan “From gateway” sebagai gantinya. Sebelum v2.1.257, setiap entri yang ditemukan menampilkan “From gateway”.
ID yang ditemukan tidak mendapatkan barisnya sendiri ketika cocok dengan baris yang sudah ada di pemilih:
- ID yang sama: ID yang ditemukan sama persis dengan ID baris yang sudah ada, atau kedua ID merupakan ejaan dari versi Fable yang sama.
- Model yang sama dengan alias bawaan: ketika ID eksplisit yang ditemukan menyebut model yang saat ini di-resolve oleh alias bawaan, pemilih hanya menampilkan baris alias. Misalnya, selama
sonnetdi-resolve keclaude-sonnet-5-5,claude-sonnet-5-5yang ditemukan digabungkan ke dalam barissonnet, sedangkanclaude-sonnet-5yang ditemukan tetap mendapatkan barisnya sendiri.
~/.claude/cache/gateway-models.json, atau %USERPROFILE%\.claude\cache\gateway-models.json di Windows, dan diperbarui pada setiap startup. Jika Anda menetapkan CLAUDE_CONFIG_DIR, cache berada di bawah direktori tersebut. Jika permintaan gagal atau gateway tidak mengimplementasikan /v1/models, pemilih kembali menggunakan daftar dalam cache dari startup sebelumnya atau daftar model bawaan. Jika gateway Anda menyajikan model Claude dengan alias yang tidak cocok dengan filter penemuan, developer dapat menambahkan alias tersebut secara manual dengan variabel konfigurasi model.
Sumber daya terkait
Untuk sisa set dokumentasi gateway dan referensi API yang mendasarinya:- Ikhtisar gateway: apa itu gateway dan cara memilih antara gateway aplikasi Claude dan produk lainnya
- Gateway LLM lainnya: cara meluncurkan gateway yang dijalankan organisasi Anda dan cara berinteraksinya dengan langganan claude.ai
- Meluncurkan gateway LLM untuk organisasi Anda: daftar periksa admin yang menggunakan panduan ini
- Menghubungkan Claude Code ke gateway LLM: konfigurasi per-pengembang dan tabel pemecahan masalah
- Referensi header beta: set nilai
anthropic-betasaat ini - Messages API: format API yang diimplementasikan gateway format Anthropic