- Per connettere Claude Code sulla vostra macchina a un gateway esistente, vedere Connettere Claude Code a un gateway LLM
- Per informazioni su ciò che Claude Code invia a un gateway e cosa inoltrare, vedere il riferimento del protocollo gateway
Prerequisiti
Per completare la distribuzione, avrete bisogno di:- Un gateway distribuito sulla vostra infrastruttura, che serve HTTPS all’indirizzo esatto che distribuirete agli sviluppatori, non a un indirizzo che vi reindirizza, e configurato per instradare i nomi dei modelli Claude al vostro provider
- Una credenziale del provider per il gateway da inoltrare con:
- Per l’API Anthropic: una chiave API dalla Claude Console
- Per un provider cloud: credenziali cloud con accesso ai modelli. Vedere i prerequisiti nella pagina Amazon Bedrock, Google Vertex AI o Microsoft Foundry
- Un modo per consegnare file di impostazioni alle macchine degli sviluppatori, come MDM o gestione della configurazione
- Se non ne avete ancora uno, come le impostazioni raggiungono i dispositivi confronta le opzioni
Requisiti del gateway
Qualunque prodotto fornisca il gateway, deve:- Accettare un formato API supportato: uno dei formati nella tabella dei formati API. I passaggi di distribuzione di seguito presuppongono l’API Anthropic Messages a
POST /v1/messages, che la maggior parte dei gateway serve - Trasmettere le risposte in streaming: passare gli eventi inviati dal server così come arrivano invece di memorizzare l’intera risposta nel buffer
- Instradare i nomi dei modelli Claude: mappare ogni nome che gli sviluppatori usano a un modello upstream. Claude Code invia un nome di modello come
claude-sonnet-4-6in ogni richiesta; nella maggior parte dei prodotti gateway il mapping è un elenco di modelli o una tabella di instradamento nella configurazione del gateway stesso - Inoltrare intestazioni e corpo invariati: passare
anthropic-beta,anthropic-versione il corpo della richiesta in entrambe le direzioni; la tabella di pass-through delle funzionalità mappa ciascuno alla funzionalità che si interrompe senza di esso - Restituire gli errori upstream non modificati: il recupero automatico di Claude Code corrisponde alla formulazione dell’errore, quindi avvolgere gli errori nel proprio envelope del gateway lo interrompe
- Esentare il percorso dall’ispezione WAF del corpo della richiesta: i prompt di Claude Code contengono codice sorgente e tag in stile XML che corrispondono alle regole del corpo dello scripting tra siti; un WAF davanti al gateway restituisce
403su sessioni reali mentre le brevi richieste di test passano
GET /v1/models in modo che Claude Code possa popolare il selettore di modelli dal vostro gateway con model discovery.
Passaggi di distribuzione
La distribuzione richiede cinque passaggi, ciascuno con un checkpoint:- Confermare che il gateway instrada i vostri modelli
- Emettere a ogni sviluppatore una credenziale
- Testare Claude Code rispetto al gateway
- Distribuire l’URL di base e le credenziali
- Verificare da una macchina sviluppatore
| Credenziale | Chi la detiene | Segnaposto nei checkpoint |
|---|---|---|
| Credenziale del provider | Il gateway, che la inoltra al provider upstream | Configurata sul gateway; non appare mai nei comandi client |
| Credenziale amministrativa del gateway | Voi, se il vostro prodotto gateway ne emette una per la sua interfaccia amministrativa o di test | <gateway-key> |
| Chiave dello sviluppatore | Ogni sviluppatore, emessa dal gateway in Emettere credenziali per sviluppatori | <developer-key> |
Confermare che il gateway instrada i vostri modelli
Il vostro gateway dovrebbe già essere configurato con la vostra credenziale del provider, in ascolto al suo URL di base e inoltro delle richieste all’API del vostro provider. Testate che il percorso funzioni da capo a fondo con una richiesta minima, sostituendo due valori dalla vostra distribuzione:<gateway-key>è qualunque credenziale vi consenta di chiamare il gateway in questo momento: una chiave amministrativa, una chiave di test o la vostra chiave sviluppatore personale se ne avete già emessa una. Non tutti i prodotti gateway hanno una credenziale amministrativa separata; se il vostro non ne ha una, emettete prima una chiave sviluppatore per voi stessi in Emettere credenziali per sviluppatorimodelè un nome di modello Claude che il vostro gateway è configurato per instradare. L’esempio usaclaude-sonnet-4-6; sostituite un nome che avete configurato
- Bash o Zsh
- PowerShell
200 con un campo content significa che il gateway ha raggiunto il provider con quel nome di modello. Un 404 significa che quel nome non è instradato al gateway; un 401 dal provider significa che la credenziale del provider del gateway è sbagliata.
Ripetete la richiesta una volta per ogni nome di modello Claude nella configurazione di instradamento del vostro gateway. Un nome che il gateway non instrada restituisce 404 a qualsiasi sviluppatore che lo seleziona, quindi testate ogni nome prima della distribuzione.
Evitate di servire il gateway dietro un reindirizzamento. Un reindirizzamento può eliminare il corpo della richiesta o rimuovere l’intestazione della credenziale sulle richieste di inferenza, e model discovery tratta qualsiasi reindirizzamento come un fallimento in modo che la credenziale non possa trapelare a una destinazione di reindirizzamento.
Emettere credenziali per sviluppatori
Ogni sviluppatore ha bisogno della propria chiave gateway per autenticarsi. Create una credenziale per sviluppatore al gateway, seguendo la documentazione di gestione delle credenziali del vostro prodotto. Confermate che una chiave appena emessa funzioni rispetto al gateway con la stessa richiesta di Confermare che il gateway instrada i vostri modelli, sostituendo<gateway-key> con la nuova <developer-key>:
- Bash o Zsh
- PowerShell
200 con un campo content significa che la chiave dello sviluppatore raggiunge il gateway e il gateway la inoltra. Un 401 qui, quando il passaggio precedente ha avuto successo, significa che la chiave dello sviluppatore è sbagliata o non ha ancora avuto effetto al gateway.
Emettere una chiave per sviluppatore piuttosto che una chiave condivisa è ciò che rende possibile l’attribuzione dell’utilizzo per sviluppatore e l’offboarding individuale. La variabile di ambiente che contiene la chiave dipende da quale intestazione il gateway legge. Per un gateway che controlla le credenziali nell’intestazione Authorization: Bearer, gli sviluppatori impostano la loro chiave in ANTHROPIC_AUTH_TOKEN. Per un gateway che legge le chiavi dall’intestazione x-api-key, gli sviluppatori impostano invece ANTHROPIC_API_KEY; la tabella delle credenziali copre il mapping.
Testare Claude Code rispetto al gateway
Eseguite Claude Code attraverso il gateway voi stessi prima di distribuire qualcosa, usando la stessa configurazione che la distribuzione consegnerà a livello di flotta. Digitate questi direttamente in un terminale, non in un file.env o di impostazioni; durano solo per questa sessione di terminale, quindi chiuderla restituisce la vostra macchina alla sua configurazione normale. Usate ANTHROPIC_API_KEY invece di ANTHROPIC_AUTH_TOKEN se il vostro gateway legge l’intestazione x-api-key:
- Bash o Zsh
- PowerShell
POST al percorso /v1/messages con stato 200. Claude Code aggiunge una stringa di query come ?beta=true, quindi abbinate il percorso, non l’URL completo. Due messaggi di errore puntano in direzioni diverse:
Not logged in: controllate il log del gateway per distinguere le due cause. Se è vuoto, nessuna credenziale ha raggiunto la sessione e nessuna richiesta ha lasciato la macchina; rieseguite le esportazioni nella shell da cui state testando. Se mostra una richiesta rifiutata conx-api-keynel corpo401, il gateway si aspetta chiavi in quell’intestazione invece; passate aANTHROPIC_API_KEYFailed to authenticate. API Error: 401significa che una credenziale è stata inviata e rifiutata, e il log del gateway dice dove: un401che nominaapi.anthropic.como l’endpoint del vostro provider significa che il gateway ha raggiunto l’upstream ma la sua credenziale del provider è stata rifiutata, quindi la chiave dello sviluppatore ha funzionato e la credenziale del provider che il gateway detiene è sbagliata o un segnaposto
ANTHROPIC_BASE_URL non punta al gateway.
Distribuire la configurazione
Ogni macchina sviluppatore ha bisogno dell’indirizzo del gateway e di una credenziale. Potete distribuirli centralmente tramite impostazioni gestite, in modo che gli sviluppatori non configurino nulla, o consegnate agli sviluppatori i valori da impostare loro stessi.Cosa distribuire
Lo stesso insieme di variabili si applica qualunque percorso scegliate. La maggior parte delle distribuzioni ha bisogno solo diANTHROPIC_BASE_URL e di una credenziale; includete le righe condizionali quando la vostra configurazione del gateway lo richiede.
| Variabile o impostazione | Cosa fa | Includere quando |
|---|---|---|
ANTHROPIC_BASE_URL | Invia le richieste API di Claude Code al gateway invece di api.anthropic.com | Sempre |
apiKeyHelper, o una credenziale in ANTHROPIC_AUTH_TOKEN o ANTHROPIC_API_KEY | Autentica ogni richiesta al gateway. L’helper esegue un comando per recuperare la chiave; le variabili contengono una chiave statica, inviata come Authorization: Bearer e x-api-key rispettivamente | Sempre; uno dei tre |
ANTHROPIC_CUSTOM_HEADERS | Aggiunge intestazioni HTTP extra a ogni richiesta API | Il vostro gateway richiede un’intestazione tenant o di instradamento su ogni richiesta |
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY | Interroga il /v1/models del gateway all’avvio e aggiunge i nomi restituiti al selettore /model | Il vostro gateway serve /v1/models e volete che i selettori degli sviluppatori siano popolati da esso |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS | Impedisce a Claude Code di inviare intestazioni di capacità pre-release e campi del corpo | Il vostro gateway inoltra a un upstream Bedrock o Vertex che rifiuta i campi beta; vedere Requisiti del gateway |
ANTHROPIC_MODEL o ANTHROPIC_DEFAULT_HAIKU_MODEL | Impostare quale nome di modello Claude Code richiede per la sessione principale e per il traffico di background | Il vostro gateway instrada nomi di modelli che non corrispondono ai valori predefiniti di Claude Code, o instradare funzionalità di background a un modello diverso. Instradare sia i nomi di override che i nomi predefiniti di Claude Code al gateway, poiché alcune sub-call possono richiedere il nome predefinito indipendentemente dall’override |
ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_VERTEX_BASE_URL, ANTHROPIC_FOUNDRY_BASE_URL, o ANTHROPIC_AWS_BASE_URL con le variabili per quel provider | Puntare Claude Code al gateway attraverso un URL di base specifico del provider. Bedrock e Vertex passano anche al formato di richiesta nativo di quei provider | Il vostro gateway fronteggia Bedrock, Vertex, Foundry o la Claude Platform su AWS; vedere Formati API |
Distribuire tramite impostazioni gestite
Consegnate le variabili attraverso il bloccoenv di un file di impostazioni gestite, spinto da MDM, criterio di registro o gestione della configurazione:
env. Un ANTHROPIC_BASE_URL gestito è applicato e non può essere sovrascritto da un’esportazione di shell di uno sviluppatore, poiché Claude Code lo applica sopra l’ambiente del processo e le impostazioni di priorità inferiore.
Non includete forceLoginMethod o forceLoginOrgUUID nelle impostazioni gestite insieme a una credenziale gateway. Su Claude Code v2.1.146 e successivi, una delle due chiavi blocca ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN e apiKeyHelper all’avvio, in modo che gli sviluppatori vedano This machine's managed settings require a first-party login e non possano procedere.
La consegna di impostazioni gestite dal server richiede una connessione diretta a api.anthropic.com, quindi non raggiunge le sessioni instradate dal gateway. Le distribuzioni gateway utilizzano questo percorso di impostazioni gestite basato su file, che applica le stesse chiavi.
Per la credenziale, distribuite un comando apiKeyHelper nel file di impostazioni gestite come mostrato sopra; il comando si autentica al vostro archivio di segreti come sviluppatore locale, quindi ogni macchina riceve la propria chiave. In alternativa, consegnate a ogni sviluppatore la sua chiave attraverso il vostro processo di segreti esistente e fate loro impostare ANTHROPIC_AUTH_TOKEN loro stessi.
Alcuni ambienti hanno bisogno di consegna separata:
- L’app desktop legge l’instradamento del gateway solo dalla sua configurazione di inferenza di terze parti consegnata tramite MDM; distribuite quel file insieme alle impostazioni gestite in modo che le sessioni desktop instradino anche attraverso il gateway. Vedere la documentazione di configurazione di terze parti del desktop e la documentazione del gateway del desktop
- I runner CI hanno bisogno di
ANTHROPIC_BASE_URLe della credenziale impostati nell’ambiente del runner - WSL su macchine Windows gestite legge le impostazioni gestite di Windows solo quando
wslInheritsWindowsSettingsètrue
Consegnare agli sviluppatori i valori da impostare loro stessi
Se non avete la distribuzione di impostazioni gestite in atto, inviate a ogni sviluppatore ciò di cui ha bisogno per seguire la pagina di connessione:- L’URL del gateway
- La loro credenziale personale
- Quale variabile mettere la credenziale in:
ANTHROPIC_AUTH_TOKENper un gateway bearer-token, oANTHROPIC_API_KEYper un gatewayx-api-key. Dire agli sviluppatori quale uno risparmia loro il trial-and-error descritto nella pagina di connessione - Qualsiasi variabile condizionale dalla tabella Cosa distribuire, con i loro valori
claude avvia una sessione senza mostrare la schermata di accesso, poiché la credenziale distribuita soddisfa l’autenticazione. Quindi eseguite /status e aprite la scheda Status: la riga Anthropic base URL mostra l’indirizzo del gateway, e per la distribuzione gestita la riga Setting sources include impostazioni gestite. Una schermata di accesso, o una riga Anthropic base URL mancante, significa che la configurazione non ha raggiunto la macchina.
Verificare la distribuzione
Confermate che tutto funzioni da una macchina sviluppatore, non dall’host del gateway, in modo che il test copra il percorso di rete che gli sviluppatori usano. Inviate una richiesta in streaming, che controlla l’endpoint, il pass-through dello streaming e l’instradamento del modello in una volta:- Bash o Zsh
- PowerShell
data: arrivare in modo incrementale. L’intera risposta che arriva in una volta dopo una pausa significa che il gateway sta memorizzando nel buffer, il che blocca Claude Code; un 404 significa che il nome del modello non è instradato. Ripetete per nome di modello.
Quindi avviate claude e inviate un messaggio. Ogni sintomo in questo passaggio ha una causa:
- Un prompt di accesso significa un divario di credenziale. Eseguite
/statuse aprite la scheda Status: quando la rigaSetting sourcesnon include impostazioni gestite, la distribuzione non ha raggiunto la macchina; quando lo fa, la credenziale dello sviluppatore non è stata consegnata, quindi impostateANTHROPIC_AUTH_TOKENoapiKeyHelper - Gli errori
Failed to authenticatesignificano che il gateway sta rifiutando le richieste; il suo log dice quale credenziale ha fallito. Un rifiuto che il gateway registra stesso nomina la chiave dello sviluppatore, mentre un401daapi.anthropic.como dall’endpoint del vostro provider significa che la credenziale del provider che il gateway detiene è stata rifiutata - Un prompt di approvazione una tantum per la chiave è previsto al primo utilizzo quando il gateway si aspetta chiavi nell’intestazione
x-api-key, impostata comeANTHROPIC_API_KEY. ConANTHROPIC_AUTH_TOKEN, nessun prompt appare e la variabile prende il controllo silenziosamente; un accesso claude.ai precedentemente salvato è inattivo per quella sessione
x-claude-code-session-id raggruppa le richieste per sessione. Se le funzionalità falliscono con i sintomi di risoluzione dei problemi, il gateway sta rimuovendo intestazioni o riscrivendo errori; vedere i requisiti del gateway sopra.
Mantenere il gateway
Dopo la distribuzione, tre tipi di cambiamento raggiungono il gateway nel tempo. Ciascuno ha un sintomo da osservare e un’azione da intraprendere.| Cambiamento | Sintomo quando il gateway non è aggiornato | Azione |
|---|---|---|
Le nuove versioni di Claude Code aggiungono valori anthropic-beta e campi del corpo della richiesta | Gli sviluppatori segnalano errori 400 che nominano un nuovo campo dopo aver aggiornato Claude Code; vedere feature pass-through | Inoltrare le intestazioni anthropic-* e i corpi delle richieste verbatim piuttosto che allowlisting; testare le nuove versioni di Claude Code rispetto al gateway prima che raggiungano gli sviluppatori |
| Nuovi modelli Claude diventano disponibili | Gli sviluppatori che selezionano un nuovo nome di modello ottengono 404; il selettore /model non lo elenca | Aggiungere il nome del modello alla configurazione di instradamento del gateway, quindi rieseguire il controllo di instradamento. Se distribuite ANTHROPIC_MODEL o le variabili del modello predefinito, aggiornate le impostazioni gestite |
| Le credenziali scadono o hanno bisogno di rotazione | Tutte le richieste degli sviluppatori iniziano a fallire con 401 dall’upstream | Ruotate la credenziale del provider del gateway secondo il vostro programma; le chiavi dello sviluppatore ruotano al gateway, e un apiKeyHelper gestisce la rotazione per sviluppatore senza ridistribuire le impostazioni |
429, fino a 10 volte con backoff, onorando Retry-After. Mantenete il riferimento del protocollo come il contratto per ciò che ogni versione di Claude Code invia.
Risorse correlate
- Connettere Claude Code a un gateway LLM: i passaggi di configurazione rivolti agli sviluppatori, con configurazione per superficie e una tabella di risoluzione dei problemi che potete consegnare agli sviluppatori
- Riferimento del protocollo gateway: il contratto di rete per gli operatori del gateway, che copre endpoint, intestazioni da inoltrare e la tabella di pass-through delle funzionalità
- File di impostazioni e precedenza: come le impostazioni gestite, di progetto e utente si combinano, e dove va il file gestito su ogni piattaforma
- Configurare Claude Code per la vostra organizzazione: la distribuzione più ampia di cui questo gateway è una parte, inclusa l’applicazione delle politiche, la visibilità dell’utilizzo e la gestione dei dati