SpyBara
Go Premium

llm-gateway-protocol.md 2026-09-11 23:01 UTC to 2026-09-12 03:02 UTC

This page contains 12 additions and 3 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Sun 13 21:00 Fri 18 23:58 Tue 22 23:59

Guida di compatibilità del gateway Claude Code

Mantenere un gateway LLM compatibile con Claude Code: gli endpoint che chiama, le intestazioni e i campi del corpo da inoltrare, e cosa si interrompe quando vengono rimossi.

Questa pagina documenta le richieste che Claude Code invia a un gateway, inclusi gli endpoint che chiama, le intestazioni e i campi del corpo che il gateway deve inoltrare, e quali funzionalità smettono di funzionare quando non lo fa. È scritta per gli operatori che configurano un prodotto gateway per funzionare con Claude Code.

Il gateway delle app Claude, il gateway self-hosted di Anthropic, serve il proprio riferimento degli endpoint su GET /protocol, coprendo gli endpoint di accesso, inferenza, impostazioni gestite, scoperta dei modelli e telemetria di quel gateway. È un documento separato da questa guida.

Questa pagina copre:

Questa pagina utilizza due termini per quello che il vostro gateway fa con ogni intestazione e campo del corpo:

  • Inoltrare invariato: passarlo all'upstream byte per byte
  • Consumare: il gateway può leggerlo per il routing, l'attribuzione o il tracciamento e non è necessario inoltrarlo

Qualsiasi cosa non contrassegnata come inoltrare invariato è vostro da consumare o ignorare.

Formati API

Un gateway deve esporre almeno uno dei seguenti formati API ai client Claude Code. Un client sceglie un formato e punta Claude Code al vostro gateway con le variabili nella colonna Selezionato da della tabella sottostante.

Google Cloud's Agent Platform è l'endpoint Claude di Google Cloud, precedentemente Vertex AI; i nomi delle sue variabili mantengono l'ortografia VERTEX.

Formato Selezionato da Endpoint Inoltrare invariato
Anthropic Messages ANTHROPIC_BASE_URL /v1/messages, /v1/messages/count_tokens (opzionale) intestazioni di richiesta anthropic-beta e anthropic-version
Amazon Bedrock InvokeModel ANTHROPIC_BEDROCK_BASE_URL con CLAUDE_CODE_USE_BEDROCK=1 /model/{model}/invoke, /model/{model}/invoke-with-response-stream, /model/{model}/count-tokens (opzionale) campi del corpo della richiesta anthropic_beta e anthropic_version
Google Cloud's Agent Platform rawPredict ANTHROPIC_VERTEX_BASE_URL con CLAUDE_CODE_USE_VERTEX=1 :rawPredict, :streamRawPredict, count-tokens:rawPredict (opzionale) intestazioni di richiesta anthropic-beta e anthropic-version, e il campo del corpo della richiesta anthropic_version

Foundry e Claude Platform on AWS

Microsoft Foundry e Claude Platform on AWS implementano il formato Anthropic Messages. Claude Code instrada verso di loro attraverso le loro variabili, ANTHROPIC_FOUNDRY_BASE_URL e ANTHROPIC_AWS_BASE_URL, ma un gateway che le fronteggia implementa la riga Anthropic Messages sopra. Un gateway che fronteggia Claude Platform on AWS deve anche inoltrare l'intestazione anthropic-workspace-id, che quella piattaforma richiede su ogni richiesta.

Endpoint opzionali e traffico di avvio

Gli endpoint di conteggio dei token sono gli unici opzionali: quando sono assenti, Claude Code ricorre a una stima basata su caratteri dell'utilizzo del contesto.

Abbinate sul percorso, non sull'URL completo:

  • Le richieste di inferenza vengono inviate a /v1/messages?beta=true
  • Il metodo Google Cloud's Agent Platform allega i suffissi al percorso del modello dell'editore, come in /projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict

Un gateway vede anche il traffico di avvio best-effort che può rifiutare senza rompere nulla. Un gateway in formato Anthropic Messages riceve una sonda di riscaldamento della connessione HEAD /api/hello, che Claude Code salta quando è configurato un proxy HTTP o un certificato client. Un gateway in formato Amazon Bedrock riceve una richiesta GET /inference-profiles?type=SYSTEM_DEFINED e, quando il modello configurato è un profilo di inferenza, ricerche GET /inference-profiles/{profile}.

La verifica della disponibilità della modalità veloce non appare mai nei log del gateway: chiama api.anthropic.com direttamente piuttosto che seguire ANTHROPIC_BASE_URL, quindi su una rete che blocca l'uscita diretta verso api.anthropic.com, la modalità veloce può segnalare un errore di connettività mentre l'inferenza attraverso il gateway continua a funzionare. La verifica della sicurezza del dominio WebFetch chiama anche api.anthropic.com direttamente. Utilizzare la modalità veloce dietro proxy e gateway LLM copre le variabili che la ripristinano.

Streaming

Le risposte di inferenza in streaming. Claude Code legge il flusso mentre arriva, quindi se il vostro gateway memorizza nel buffer le risposte complete prima di inoltrarle, Claude Code si blocca.

Quando il client parla il formato Amazon Bedrock, inoltrate il corpo della risposta InvokeModelWithResponseStream e la sua intestazione Content-Type: application/vnd.amazon.eventstream senza modifiche, e non convertite il flusso in server-sent events. Vedere Errori di streaming dietro un gateway o proxy.

Inoltrate anche i ping keep-alive. Sulle connessioni attraverso ANTHROPIC_BASE_URL o ANTHROPIC_AWS_BASE_URL, Claude Code conta ogni byte che il vostro gateway inoltra, inclusi gli eventi SSE ping e le righe di commento, e interrompe un flusso che rimane silenzioso per 300 secondi per impostazione predefinita. I ping dell'upstream sono l'unico traffico durante le pause di pensiero prolungato, quindi se il vostro gateway li elimina o li memorizza nel buffer, Claude Code interrompe il flusso durante quelle pause; Tentativi automatici copre cosa un flusso interrotto segnala in base a quanto la risposta era progredita. Un upstream che non invia alcun ping, come l'event-stream binario di Amazon Bedrock, lascia quelle pause senza nulla da inoltrare. Quando si traduce da un tale upstream, emettete i vostri stessi eventi ping durante i gap silenziosi. I gateway raggiunti attraverso ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_VERTEX_BASE_URL, o ANTHROPIC_FOUNDRY_BASE_URL non sono avvolti da questo watchdog a livello di byte, anche quando inoltrano il formato Anthropic Messages; lì, un timeout di inattività di 5 minuti interrompe un flusso silenzioso, e sulle connessioni ANTHROPIC_BEDROCK_BASE_URL potete aggiungere il watchdog di byte con CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK.

Mancata corrispondenza del formato con l'upstream

Quale formato il client parla determina cosa riceve il vostro gateway. La modalità di errore comune è una mancata corrispondenza tra il formato che il client invia al vostro gateway e il formato che il provider upstream dietro di esso accetta.

  • Quando il client parla il formato Amazon Bedrock o Google Cloud's Agent Platform, Claude Code invia solo il sottoinsieme del suo set di capacità completo che quei provider accettano
  • Quando il client parla il formato Anthropic Messages, Claude Code invia il set completo, anche se il vostro gateway inoltra a un upstream Amazon Bedrock o Google Cloud's Agent Platform

Colmare quella differenza è il compito del vostro gateway. Passaggio delle funzionalità descrive cosa si interrompe quando non lo fa.

Intestazioni delle richieste

Claude Code include queste intestazioni sulle richieste API. I nomi delle intestazioni non fanno distinzione tra maiuscole e minuscole sul filo. Inoltrare anthropic-version e anthropic-beta invariate, più anthropic-workspace-id quando l'upstream è Claude Platform on AWS; il resto il gateway può consumare per il routing, l'attribuzione e il tracciamento, e non è necessario inoltrare.

Intestazione Descrizione
Authorization, x-api-key La credenziale del gateway dello sviluppatore, in una o entrambe le intestazioni a seconda di quale variabile di credenziale impostano
anthropic-version Versione API, attualmente 2023-06-01. Le richieste in formato Amazon Bedrock e Agent Platform di Google Cloud portano anche il campo del corpo anthropic_version, il cui valore è la stringa del dialetto del provider, non il valore di questa intestazione
anthropic-beta Valori di capacità separati da virgole per la richiesta. Inoltrare l'intestazione verbatim; non creare un elenco di consentiti dei singoli valori, perché l'insieme cambia con i rilasci di Claude Code. Quando lo sviluppatore si autentica con un accesso claude.ai, che è possibile quando ANTHROPIC_BASE_URL è impostato senza una variabile di credenziale del gateway, questa intestazione porta anche una capacità OAuth che l'upstream richiede, e rimuoverla fa fallire quelle richieste con 401
x-claude-code-session-id Un identificatore univoco per la sessione Claude Code corrente. Usarlo per aggregare tutte le richieste da una sessione senza analizzare i corpi delle richieste
x-claude-code-agent-id Identificatore del subagent che ha emesso la richiesta, presente solo sulle richieste da un agente che Claude Code ha generato all'interno della sessione. Usarlo con l'ID della sessione per attribuire il costo agli agenti paralleli
x-claude-code-parent-agent-id Identificatore dell'agente che ha generato l'agente richiedente, presente solo per gli agenti annidati

Gli ID dei subagent vengono generati freschi per ogni spawn. Gli agenti compagni, i membri denominati di un team di agenti, riutilizzano un ID stabile basato sul nome tra le riconnessioni. In entrambi i casi l'ID identifica un agente, non una persona o un dispositivo, quindi non trattate l'intestazione dell'ID dell'agente come un identificatore utente.

Se i vostri sviluppatori impostano ANTHROPIC_CUSTOM_HEADERS, quelle intestazioni appaiono anche sulle richieste.

Inoltrare come elenchi aperti

Trattate le intestazioni e i campi del corpo come elenchi aperti, non chiusi. Claude Code guadagna capacità nei rilasci, e arrivano come nuovi valori anthropic-beta, nuovi campi del corpo della richiesta, e occasionalmente nuove intestazioni anthropic-* o x-claude-code-*.

Quando inoltrate a un upstream in formato Anthropic, passate le intestazioni di richiesta anthropic-* e i campi del corpo della richiesta invariati piuttosto che creare un elenco di consentiti di quelli che vedete oggi. Un gateway bloccato a un elenco osservato rimuove l'intestazione o il campo della prossima capacità e lo interrompe nel rilascio che lo introduce.

L'eccezione è un upstream non-Anthropic come Amazon Bedrock o Agent Platform di Google Cloud, dove colmare la differenza dello schema è il compito del gateway; vedere passaggio delle funzionalità.

Blocco di attribuzione del prompt di sistema

Claude Code antepone un breve blocco di attribuzione al prompt di sistema contenente la versione del client e un'impronta digitale derivata dalla conversazione. L'endpoint api.anthropic.com rimuove il blocco prima dell'elaborazione quando arriva invariato come primo blocco di sistema, quindi non influisce sul prompt caching di prima parte. Qualsiasi altro upstream lo riceve come parte del prompt.

La rimozione è posizionale, quindi funziona solo quando il gateway inoltra l'array system invariato. Per mantenere il blocco fuori dal prompt senza perdere altri contenuti di sistema:

  • Inoltrare l'array system esattamente come ricevuto, mantenendo il blocco per primo: anteporre un altro blocco di sistema, riordinare l'array o convertirlo in una singola stringa annulla la rimozione, e il blocco raggiunge quindi il modello e la chiave della cache del prompt.
  • Mantenere il blocco nella sua voce di array separata: l'endpoint tratta un blocco unito che inizia con l'intestazione di attribuzione come attribuzione nella sua interezza e scarta tutto ciò che vi è stato unito, incluso il resto del prompt di sistema.
  • Se il vostro gateway deve rimodellare il contenuto di sistema, impostare CLAUDE_CODE_ATTRIBUTION_HEADER=0 in modo che Claude Code ometta il blocco. Anthropic e gli endpoint Claude dei provider cloud leggono il blocco per l'attribuzione, quindi ometterlo nel client piuttosto che rimuoverlo o spostarlo nel gateway.

La variabile esiste per la compatibilità con gateway e caching di terze parti, non come controllo della privacy: su una connessione diretta la richiesta completa va comunque all'API Anthropic in entrambi i casi. Quando entrambe queste condizioni si verificano, Claude Code mantiene il blocco sulle richieste del classificatore in modalità auto anche quando impostate la variabile su 0:

Le richieste del classificatore saltano il resto del prompt di sistema di Claude Code, quindi su quelle richieste il blocco è l'unico marcatore nel corpo della richiesta che le identifica come traffico Claude Code. Quando una delle condizioni fallisce, attraverso un gateway LLM, su un provider di terze parti, o con una credenziale di profilo o federazione attiva, impostare 0 rimuove il blocco anche dalle richieste del classificatore. Prima della v2.1.229, questa eccezione non esisteva: impostare 0 rimuoveva il blocco da quelle richieste del classificatore, e quando l'API rifiutava le richieste non identificate, la modalità auto falliva su ogni azione che inviava al classificatore.

Da Claude Code v2.1.181, il blocco è stabile per la durata di una conversazione quando le richieste instradano attraverso un URL di base personalizzato, quindi una cache del prompt lato gateway basata sul corpo della richiesta completa funziona senza disabilitarla, e qualsiasi provider a cui il vostro gateway inoltra riceve un prefisso di prompt stabile. Prima di v2.1.181 il blocco includeva un token per richiesta che cambiava l'inizio del prompt di sistema ad ogni richiesta. Su quelle versioni, impostare CLAUDE_CODE_ATTRIBUTION_HEADER=0 quando il vostro gateway fa una di queste cose:

  • Implementa una cache del prompt basata sul corpo della richiesta.
  • Inoltra richieste a un provider di terze parti come Amazon Bedrock, Microsoft Foundry, o Google Cloud's Agent Platform, nel formato Anthropic Messages o nel formato proprio del provider, dove il prefisso mutevole riduce il riutilizzo della cache del prompt su quel provider.

Passaggio delle funzionalità

Claude Code tratta un gateway ANTHROPIC_BASE_URL come un endpoint in formato Anthropic e gli invia le intestazioni beta e i campi del corpo della richiesta che invia a api.anthropic.com, tranne un piccolo insieme di diagnostica e impostazioni predefinite riservate alle connessioni dirette, come l'impostazione predefinita di streaming fine degli strumenti coperta di seguito. Questo insieme varia per rilascio, quindi non dipendete dal suo contenuto.

Le capacità che aggiungono campi del corpo li associano a un'intestazione beta, e la coppia viaggia insieme. Un gateway che rimuove l'intestazione mentre passa il corpo, o inoltra un corpo in formato Anthropic a un upstream con uno schema diverso, produce errori 400 difficili; solo quando entrambe le metà sono assenti insieme la funzionalità si disattiva silenziosamente. Un gateway che riscrive o redige i corpi delle richieste per l'ispezione del contenuto interrompe l'associazione allo stesso modo della rimozione, quindi ispezionare senza modificare. La tabella nota dove una funzionalità si discosta dall'associazione.

Lo streaming fine degli strumenti è una delle impostazioni predefinite della connessione diretta: è disattivato per impostazione predefinita ogni volta che le richieste instradano attraverso un URL di base personalizzato, e un gateway lo riceve quando gli sviluppatori impostano CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1.

Funzionalità Intestazione e coppia del corpo Sintomo quando interrotto Rimedio
Ragionamento adattivo Nessuna intestazione beta. Claude Code invia thinking: {"type": "adaptive"} per Claude 4.6 e successivi, e tratta i nomi dei modelli che non riconosce, come gli alias del gateway, come modelli attuali che ricevono il campo 400 che nomina il campo thinking o il tag adaptive quando la build del modello upstream non lo accetta Aggiornare l'upstream. Su Opus 4.6 e Sonnet 4.6, gli sviluppatori possono invece impostare CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
Gestione del contesto L'intestazione beta di gestione del contesto si associa al campo del corpo context_management 400 con Extra inputs are not permitted. Comune quando un gateway accetta richieste in formato Anthropic ma le inoltra a Amazon Bedrock Inoltrare entrambi, o CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Contesto esteso e pensiero interleaved Solo intestazioni beta, nessun campo del corpo Silenziosamente non disponibile quando l'intestazione viene rimossa; l'upstream non vede mai la richiesta di capacità Inoltrare anthropic-beta verbatim
Beta tool fields Le intestazioni beta relative agli strumenti si associano ai campi dello schema dello strumento come strict e defer_loading 400 che nomina il campo dello schema dello strumento non riconosciuto quando il corpo passa attraverso senza la sua intestazione Inoltrare entrambi, o CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Sforzo e output strutturati Il campo del corpo output_config contiene impostazioni di sforzo, formato di output strutturato e budget dei compiti; ciascuno si associa con la sua intestazione beta 400 che nomina output_config, spesso Extra inputs are not permitted, su upstream Amazon Bedrock e Google Cloud's Agent Platform Inoltrare il campo e le sue intestazioni insieme
Prompt caching Nessun accoppiamento beta. Claude Code allega marcatori cache_control ai blocchi system e alle voci messages, incluse le voci role: "system" aggiunte a metà conversazione Nessun errore: la conversazione viene fatturata come input non memorizzato in cache ad ogni turno, visibile come input_tokens elevati con poca o nessuna attività di cache in usage Inoltrare cache_control invariato ovunque appaia, e non convertire il contenuto del blocco system o del messaggio in stringhe semplici
Conteggio dei token Nessun accoppiamento beta; utilizza l'endpoint count_tokens Nessun errore: Claude Code ricade a una stima basata su caratteri, quindi /context mostra conteggi approssimativi Esporre l'endpoint per conteggi di token esatti

Le variabili ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES variables dichiarano le capacità del modello solo nelle configurazioni del provider: CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, CLAUDE_CODE_USE_FOUNDRY, e CLAUDE_CODE_USE_MANTLE. Non hanno effetto dietro un gateway ANTHROPIC_BASE_URL.

Ritentativo automatico e inoltro degli errori

Ciò che Claude Code fa dopo un rifiuto upstream dipende da ciò che è stato rifiutato:

  • Quando l'upstream rifiuta il campo thinking, un messaggio di sistema a metà conversazione, o il marcatore cache_control su tale messaggio, Claude Code ritenta la richiesta e disabilita la capacità rifiutata per il resto della conversazione
  • Quando l'upstream rifiuta una thinking signature, Claude Code ritenta la richiesta senza i blocchi di pensiero precedenti della conversazione e li mantiene fuori da ogni richiesta successiva. Le nuove risposte includono ancora il pensiero
  • Claude Code non ritenta i rifiuti di gestione del contesto o di campi dello schema dello strumento, quindi quegli errori 400 raggiungono lo sviluppatore

La logica di ritentativo corrisponde alla formulazione dell'errore dell'upstream, quindi inoltrare i corpi della risposta di errore invariati. Un gateway che avvolge gli errori upstream nel suo involucro interrompe il percorso di recupero, anche quando preserva il codice di stato, a meno che il messaggio dell'involucro non contenga un token capability_rejected: stabile. Il gateway delle app Claude sostituisce questi token per la formulazione degli errori dei provider cloud, ad esempio capability_rejected: prompt_too_long.

Disabilitare le capacità pre-release

CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 impedisce a Claude Code di inviare capacità pre-release e i loro campi del corpo su ogni provider, inclusa la gestione del contesto e i campi dello strumento beta. La variabile non influisce sul ragionamento adattivo, che è selezionato dal modello piuttosto che da beta. Non sopprime mai la capacità OAuth che l'autenticazione della sottoscrizione richiede.

Su Claude Code v2.1.227 o successivo, la vostra organizzazione può mantenere MCP tool search attivo sotto questa variabile attraverso managed settings. Ciò che Claude Code invia con questo override in atto dipende da come vi connettete:

  • Su una connessione diretta, o attraverso un gateway impostato con ANTHROPIC_BASE_URL, Claude Code continua a inviare l'intestazione beta di ricerca degli strumenti, i campi dello strumento defer_loading, e i blocchi tool_reference, e rimuove il resto
  • Su un provider cloud, o accedendo attraverso un gateway delle app Claude, l'override non ha effetto

L'insieme delle capacità che Claude Code invia cresce nei rilasci. Per le stringhe di intestazione beta attuali, vedere il riferimento delle intestazioni beta; testare il vostro gateway contro i nuovi rilasci di Claude Code piuttosto che bloccare a un elenco osservato.

Scoperta dei modelli

Quando ANTHROPIC_BASE_URL punta a un gateway che espone il formato Anthropic Messages, Claude Code può interrogare l'endpoint /v1/models del gateway all'avvio e aggiungere i modelli restituiti al selettore /model. Se voi o il vostro amministratore impostate replaceBuiltInOptions in una lineup modelPicker, Claude Code nasconde i modelli scoperti dal selettore.

Gli sviluppatori lo abilitano impostando CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1, nel loro ambiente o attraverso le impostazioni gestite. La scoperta è disattivata per impostazione predefinita in modo che i gateway supportati da una chiave API condivisa non espongano ogni modello a cui la chiave può accedere a ogni utente.

Quando viene eseguita la scoperta

La scoperta si applica solo al formato Anthropic Messages. Non viene eseguita quando:

  • Qualsiasi variabile del provider CLAUDE_CODE_USE_* è impostata, anche se ANTHROPIC_BASE_URL è anche impostato
  • ANTHROPIC_BASE_URL non è impostato o punta a api.anthropic.com

La scoperta viene comunque eseguita quando il traffico non essenziale è disattivato, perché la richiesta va solo al vostro gateway. Prima della v2.1.257, la scoperta non veniva eseguita mentre il traffico non essenziale era disattivato.

Richiesta e risposta

La richiesta è GET /v1/models?limit=1000 con un timeout di 3 secondi, e qualsiasi reindirizzamento è trattato come fallimento in modo che la credenziale non possa trapelare a una destinazione di reindirizzamento. Un gateway che risponde lentamente o reindirizza /v1/models, anche da http a https, fallisce la scoperta silenziosamente; servire l'endpoint direttamente all'URL di base configurato.

Claude Code invia la richiesta di scoperta con entrambe le intestazioni di credenziale sottostanti e omette un'intestazione il cui valore non si risolve. L'invio di entrambe le intestazioni richiede Claude Code v2.1.248 o successivo. Le versioni precedenti inviano solo Authorization quando ANTHROPIC_AUTH_TOKEN è impostato e solo x-api-key altrimenti.

  • Authorization: ANTHROPIC_AUTH_TOKEN come token bearer, altrimenti il valore apiKeyHelper come token bearer. In questo caso Claude Code attende che l'helper restituisca prima di inviare la richiesta.
  • x-api-key: la chiave API che Claude Code ha risolto, come ANTHROPIC_API_KEY. Quando un valore helper è l'unica credenziale, questa intestazione lo trasporta anche, in modo che il valore arrivi in entrambe le intestazioni.

Claude Code invia anche qualsiasi intestazione da ANTHROPIC_CUSTOM_HEADERS. Quando un'intestazione personalizzata ha un valore non vuoto, Claude Code la invia al posto di un'intestazione integrata con lo stesso nome, abbinando i nomi senza distinzione tra maiuscole e minuscole.

Quando nessun valore dell'intestazione di credenziale si risolve, Claude Code salta la scoperta e scrive una riga [gatewayDiscovery] skipped nel registro di debug di una sessione claude --debug. Se fornite una credenziale solo attraverso ANTHROPIC_CUSTOM_HEADERS, Claude Code salta comunque la scoperta.

Claude Code legge id, il display_name opzionale e la description opzionale da ogni voce nell'array data della risposta:

{
  "data": [
    {
      "id": "claude-sonnet-4-6",
      "display_name": "Claude Sonnet 4.6",
      "description": "Default model for everyday coding tasks"
    },
    { "id": "claude-opus-4-8" }
  ]
}

Claude Code mantiene una voce quando il suo id contiene claude o anthropic in qualsiasi punto della stringa, abbinato senza distinzione tra maiuscole e minuscole, e ignora il resto. Gli ID con prefisso del provider come vertex_ai/claude-sonnet-4-6 o bedrock/anthropic.claude-sonnet-4-5 superano il filtro; un ID che non contiene nessuna delle due sottostringhe non lo fa. Prima della v2.1.223, Claude Code manteneva una voce solo quando il suo id iniziava con claude o anthropic, il che nascondeva gli ID con prefisso del provider.

Voci del selettore e caching

Il selettore è l'elenco interattivo dei modelli che si apre quando uno sviluppatore esegue /model in Claude Code. Ogni voce scoperta utilizza display_name come nome quando il gateway ne invia una che differisce dall'id. Altrimenti la voce mostra il nome del modello quando Claude Code riconosce l'id, e l'id quando non lo fa. Ad esempio, una voce con l'id my-gateway-claude-sonnet-4-6 e nessun display_name appare come Sonnet 4.6.

La scoperta aggiunge solo i modelli che l'impostazione gestita availableModels consente.

Ogni voce mostra anche la description del modello, compressa in una riga. Una voce senza una description legge "From gateway" invece. Prima della v2.1.257, ogni voce scoperta leggeva "From gateway".

Un ID scoperto non ottiene la sua propria riga quando corrisponde a una riga già nel selettore:

  • Stesso ID: l'ID scoperto corrisponde esattamente all'ID di una riga esistente, oppure i due ID sono ortografie della stessa versione Fable.
  • Stesso modello di un alias integrato: quando un ID esplicito scoperto nomina il modello a cui un alias integrato attualmente si risolve, il selettore mostra solo la riga dell'alias. Ad esempio, mentre sonnet si risolve in claude-sonnet-5, un claude-sonnet-5 scoperto si comprime nella riga sonnet, e un claude-sonnet-4-6 scoperto ottiene comunque la sua propria riga. Prima della v2.1.197, Claude Code non piegava questi ID nelle righe integrate, quindi claude-sonnet-5 otteneva anche la sua propria riga "From gateway".

I risultati vengono memorizzati nella cache in ~/.claude/cache/gateway-models.json, o %USERPROFILE%\.claude\cache\gateway-models.json su Windows, e aggiornati ad ogni avvio. Se impostate CLAUDE_CONFIG_DIR, la cache si trova invece in quella directory. Se la richiesta fallisce o il gateway non implementa /v1/models, il selettore ricade all'elenco memorizzato nella cache dall'avvio precedente o all'elenco dei modelli integrati. Se il vostro gateway serve modelli Claude con alias che non corrispondono al filtro di scoperta, gli sviluppatori possono aggiungere quegli alias manualmente con le variabili di configurazione del modello.

Per il resto della serie di documentazione del gateway e i riferimenti API sottostanti: