Skip to main content
Cette page guide un administrateur dans le déploiement d’une passerelle LLM pour Claude Code. Elle suppose que vous avez une passerelle déployée qui répond aux exigences de la passerelle. Le déploiement ou l’exploitation d’un produit spécifique ne sont pas couverts ici ; déployez le vôtre en suivant la documentation de votre fournisseur.

Prérequis

Pour terminer le déploiement, vous aurez besoin de :
  • Une passerelle déployée sur votre infrastructure, servant HTTPS à l’adresse exacte que vous distribuerez aux développeurs, pas une adresse qui redirige vers elle, et configurée pour router les noms de modèles Claude vers votre fournisseur
  • Une identifiant de fournisseur pour que la passerelle le transfère avec :
  • Un moyen de livrer des fichiers de paramètres aux machines des développeurs, comme MDM ou gestion de configuration

Exigences de la passerelle

Quel que soit le produit qui fournit la passerelle, il doit :
  • Accepter un format API pris en charge : l’un des formats du tableau des formats API. Les étapes de déploiement ci-dessous supposent l’API Messages Anthropic à POST /v1/messages, que la plupart des passerelles servent
  • Diffuser les réponses : transmettre les événements envoyés par le serveur au fur et à mesure qu’ils arrivent, y compris les pings de maintien de connexion, au lieu de mettre en mémoire tampon la réponse entière ; la section streaming couvre ce que la mise en mémoire tampon ou les pings supprimés cassent
  • Router les noms de modèles Claude : mapper chaque nom que les développeurs utilisent à un modèle en amont. Claude Code envoie un nom de modèle tel que claude-sonnet-4-6 dans chaque requête ; dans la plupart des produits de passerelle, le mappage est une liste de modèles ou une table de routage dans la propre configuration de la passerelle
  • Transférer les en-têtes et le corps inchangés : transmettre anthropic-beta, anthropic-version, et le corps de la requête dans les deux sens ; le tableau de passage des fonctionnalités mappe chacun à la fonctionnalité qui se casse sans lui
  • Retourner les erreurs en amont non modifiées : la récupération automatique de Claude Code correspond au libellé de l’erreur, donc envelopper les erreurs dans l’enveloppe propre de la passerelle la casse, sauf si l’enveloppe du message porte l’un des jetons capability_rejected: qu’une passerelle d’applications Claude substitue au libellé d’erreur des fournisseurs cloud
  • Exempter le chemin de l’inspection WAF du corps de la requête : les invites Claude Code contiennent du code source et des balises de style XML qui correspondent aux règles du corps de cross-site-scripting ; un WAF devant la passerelle retourne 403 sur les vraies sessions tandis que les courtes demandes de test passent
Optionnellement, servez GET /v1/models pour que Claude Code puisse remplir le sélecteur de modèles de votre passerelle avec la découverte de modèles.

Étapes du déploiement

Le déploiement se fait en cinq étapes, chacune avec un point de contrôle :
  1. Confirmer que la passerelle achemine vos modèles
  2. Émettre une credential pour chaque développeur
  3. Tester Claude Code par rapport à la passerelle
  4. Distribuer l’URL de base et les credentials
  5. Vérifier à partir d’une machine développeur
Les étapes impliquent trois credentials différentes, et les points de contrôle les nomment par placeholder afin que vous puissiez identifier celle qui est en cause en cas d’échec :

Confirmer que la passerelle achemine vos modèles

Votre passerelle devrait déjà être configurée avec votre credential du fournisseur, à l’écoute sur son URL de base, et transmettre les demandes à l’API de votre fournisseur. Testez que le chemin fonctionne de bout en bout avec une demande minimale, en remplaçant deux valeurs de votre déploiement :
  • <gateway-key> est la credential qui vous permet d’appeler la passerelle en ce moment : une clé administrative, une clé de test, ou votre propre clé développeur si vous en avez déjà émis une. Tous les produits de passerelle n’ont pas une credential d’administration séparée ; si le vôtre n’en a pas, émettez-vous d’abord une clé développeur dans Émettre une credential pour chaque développeur
  • model est un nom de modèle Claude que votre passerelle est configurée pour acheminer. L’exemple utilise claude-sonnet-4-6 ; remplacez par un nom que vous avez configuré
Point de contrôle : un 200 avec un champ content signifie que la passerelle a atteint le fournisseur avec ce nom de modèle. Un 404 signifie que ce nom n’est pas acheminé à la passerelle ; un 401 du fournisseur signifie que la credential du fournisseur de la passerelle est incorrecte. Répétez la demande une fois par nom de modèle Claude dans la configuration d’acheminement de votre passerelle. Un nom que la passerelle n’achemine pas retourne 404 à tout développeur qui le sélectionne, donc testez chaque nom avant le déploiement.
Évitez de servir la passerelle derrière une redirection. Une redirection peut supprimer le corps de la demande ou retirer l’en-tête de credential sur les demandes d’inférence, et la découverte de modèles traite toute redirection comme un échec afin que la credential ne puisse pas fuir vers une cible de redirection.

Émettre une credential pour chaque développeur

Chaque développeur a besoin de sa propre clé de passerelle pour s’authentifier. Créez une credential par développeur à la passerelle, en suivant la documentation de gestion des credentials de votre produit. Confirmez qu’une clé fraîchement émise fonctionne par rapport à la passerelle avec la même demande que Confirmer que la passerelle achemine vos modèles, en remplaçant <gateway-key> par la nouvelle <developer-key> :
Point de contrôle : un 200 avec un champ content signifie que la clé développeur atteint la passerelle et que la passerelle la transmet. Un 401 ici, quand l’étape précédente a réussi, signifie que la clé développeur est incorrecte ou n’a pas encore pris effet à la passerelle. Émettre une clé par développeur plutôt qu’une clé partagée est ce qui fait fonctionner l’attribution d’utilisation par développeur et le départ individuel. La variable d’environnement qui contient la clé dépend de l’en-tête que la passerelle lit. Pour une passerelle qui vérifie les credentials dans l’en-tête Authorization: Bearer, les développeurs définissent leur clé dans ANTHROPIC_AUTH_TOKEN. Pour une passerelle qui lit les clés à partir de l’en-tête x-api-key, les développeurs définissent ANTHROPIC_API_KEY à la place ; le tableau des credentials couvre le mappage.

Tester Claude Code par rapport à la passerelle

Exécutez Claude Code par la passerelle vous-même avant de distribuer quoi que ce soit, en utilisant la même configuration que le déploiement livrera à l’échelle de la flotte. Tapez-les directement dans un terminal, pas dans un fichier .env ou de paramètres ; ils ne durent que pour cette session de terminal, donc la fermer ramène votre machine à sa configuration normale. Utilisez ANTHROPIC_API_KEY au lieu de ANTHROPIC_AUTH_TOKEN si votre passerelle lit l’en-tête x-api-key :
Ensuite, envoyez une demande unique par la passerelle :
Point de contrôle : la demande retourne une réponse, et la demande apparaît dans le journal de la passerelle comme un POST au chemin /v1/messages avec le statut 200. Claude Code ajoute une chaîne de requête telle que ?beta=true, donc faites correspondre le chemin, pas l’URL complète. Deux messages d’erreur pointent dans des directions différentes :
  • Not logged in : vérifiez le journal de la passerelle pour distinguer les deux causes. S’il est vide, aucune credential n’a atteint la session et aucune demande n’a quitté la machine ; réexécutez les exports dans le shell que vous testez. S’il affiche une demande rejetée avec x-api-key dans le corps 401, la passerelle s’attend à des clés dans cet en-tête à la place ; basculez vers ANTHROPIC_API_KEY
  • Failed to authenticate. API Error: 401 signifie qu’une credential a été envoyée et rejetée, et le journal de la passerelle dit où : un 401 nommant api.anthropic.com ou le point de terminaison de votre fournisseur signifie que la passerelle a atteint l’amont mais sa credential du fournisseur a été rejetée, donc la clé développeur a fonctionné et la credential du fournisseur que la passerelle détient est incorrecte ou un placeholder
Une URL de base incorrecte ou inaccessible produit un symptôme différent : Claude Code réessaie la connexion avec backoff et peut rester sans sortie pendant plusieurs minutes avant de signaler une erreur. Si la commande semble se bloquer, vérifiez le journal de la passerelle au lieu d’attendre ; aucune demande arrivante signifie que ANTHROPIC_BASE_URL ne pointe pas vers la passerelle.

Distribuer la configuration

Chaque machine développeur a besoin de l’adresse de la passerelle et d’une credential. Vous pouvez les distribuer de manière centralisée par le biais des paramètres gérés, afin que les développeurs ne configurent rien, ou donner aux développeurs les valeurs à définir eux-mêmes.

Ce qu’il faut distribuer

Le même ensemble de variables s’applique quel que soit le chemin que vous choisissez. La plupart des déploiements n’ont besoin que de ANTHROPIC_BASE_URL et d’une credential ; incluez les lignes conditionnelles quand votre configuration de passerelle l’exige.

Distribuer par le biais des paramètres gérés

Livrez les variables par le biais du bloc env d’un fichier de paramètres gérés, poussé par MDM, politique de registre, ou gestion de configuration :
Ajoutez les variables conditionnelles du tableau au même bloc env. Un ANTHROPIC_BASE_URL géré est appliqué et ne peut pas être remplacé par une exportation de shell d’un développeur, car Claude Code l’applique sur l’environnement de processus et les paramètres de priorité inférieure. N’incluez pas forceLoginMethod ou forceLoginOrgUUID dans les paramètres gérés aux côtés d’une credential de passerelle. L’une ou l’autre clé, avec n’importe quelle valeur, bloque ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, et apiKeyHelper au démarrage, et les développeurs ne peuvent pas continuer. Ils voient This machine's managed settings require a first-party login, ou Administrator policy requires a Cloud gateway sign-in sous une valeur "gateway". La livraison des paramètres gérés par le serveur nécessite une connexion directe à api.anthropic.com, donc elle n’atteint pas les sessions acheminées par la passerelle. Les déploiements de passerelle utilisent ce chemin de paramètres gérés basé sur fichier, qui applique les mêmes clés. Pour la credential, distribuez une commande apiKeyHelper dans le fichier de paramètres gérés comme indiqué ci-dessus ; la commande s’authentifie auprès de votre magasin de secrets en tant que développeur local, afin que chaque machine reçoive sa propre clé. Alternativement, livrez à chaque développeur sa clé par le biais de votre processus de secrets existant et demandez-leur de définir ANTHROPIC_AUTH_TOKEN eux-mêmes. Certains environnements ont besoin d’une livraison séparée :

Donner aux développeurs les valeurs à définir eux-mêmes

Si vous n’avez pas de distribution de paramètres gérés en place, envoyez à chaque développeur ce dont il a besoin pour suivre la page de connexion :
  • L’URL de la passerelle
  • Leur credential personnelle
  • Quelle variable mettre la credential dans : ANTHROPIC_AUTH_TOKEN pour une passerelle de jeton porteur, ou ANTHROPIC_API_KEY pour une passerelle x-api-key. Dire aux développeurs laquelle leur épargne l’essai-erreur décrit sur la page de connexion
  • Toutes les variables conditionnelles du tableau Ce qu’il faut distribuer, avec leurs valeurs
La page de connexion guide les développeurs à travers la définition de chacune. Point de contrôle : sur une machine développeur, claude démarre une session sans afficher l’écran de connexion, car la credential distribuée satisfait l’authentification. Ensuite, exécutez /status et ouvrez l’onglet Status : la ligne Anthropic base URL affiche l’adresse de la passerelle, et pour la distribution gérée la ligne Setting sources inclut les paramètres gérés. Un écran de connexion, ou une ligne Anthropic base URL manquante, signifie que la configuration n’a pas atteint la machine.

Vérifier le déploiement

Confirmez que tout fonctionne à partir d’une machine développeur, pas de l’hôte de la passerelle, afin que le test couvre le chemin réseau que les développeurs utilisent. Envoyez une demande en streaming, qui vérifie le point de terminaison, le passage en streaming, et l’acheminement du modèle à la fois :
Vous devriez voir les lignes data: arriver de manière progressive. La réponse entière arrivant à la fois après une pause signifie que la passerelle met en mémoire tampon, ce qui bloque Claude Code ; un 404 signifie que le nom du modèle n’est pas acheminé. Répétez par nom de modèle. Ensuite, démarrez claude et envoyez un message. Chaque symptôme à cette étape a une cause :
  • Une invite de connexion signifie une lacune de credential. Exécutez /status et ouvrez l’onglet Status : quand la ligne Setting sources n’inclut pas les paramètres gérés, la distribution n’a pas atteint la machine ; quand elle le fait, la credential développeur n’a pas été livrée, donc définissez ANTHROPIC_AUTH_TOKEN ou le apiKeyHelper
  • Les erreurs Failed to authenticate signifient que la passerelle rejette les demandes ; son journal dit quelle credential a échoué. Un rejet que la passerelle enregistre elle-même nomme la clé développeur, tandis qu’un 401 de api.anthropic.com ou du point de terminaison de votre fournisseur signifie que la credential du fournisseur que la passerelle détient a été rejetée
  • Une invite d’approbation unique pour la clé est attendue à la première utilisation quand la passerelle s’attend à des clés dans l’en-tête x-api-key, défini comme ANTHROPIC_API_KEY. Avec ANTHROPIC_AUTH_TOKEN, aucune invite n’apparaît et la variable prend le relais silencieusement ; une connexion claude.ai précédemment enregistrée est inactive pour cette session
Si votre organisation utilise le mode rapide, exécutez /fast ici aussi : la vérification de disponibilité appelle api.anthropic.com directement plutôt que de suivre l’URL de base de la passerelle, donc une session acheminée par la passerelle peut signaler le mode rapide comme indisponible ou désactivé même si l’inférence fonctionne. Utiliser le mode rapide derrière les proxies et les passerelles LLM mappe chaque message à la variable qui le restaure, distribuée avec le reste de la configuration. Enfin, vérifiez les journaux de la passerelle pour le message que vous avez envoyé : la credential identifie le développeur, et l’en-tête x-claude-code-session-id groupe les demandes par session. Si les fonctionnalités échouent avec les symptômes de dépannage, la passerelle supprime les en-têtes ou réécrit les erreurs ; voir les exigences de la passerelle ci-dessus.

Maintenir la passerelle

Après le déploiement, trois types de changements atteignent la passerelle au fil du temps. Chacun a un symptôme à surveiller et une action à prendre. Lors du dimensionnement des limites de débit par clé, tenez compte du client réessayant les défaillances transitoires, y compris les réponses 429, jusqu’à 10 fois avec backoff, en respectant Retry-After. Gardez la guide de compatibilité comme référence pour ce que chaque version de Claude Code envoie.

Planifier les mises à niveau de version de Claude Code

Certains comportements de Claude Code sont intégrés à la version installée plutôt que définis à votre passerelle, donc déplacer les développeurs vers une nouvelle version peut modifier le comportement dans tout votre déploiement même quand la configuration de la passerelle n’a pas changé. Pour contrôler quand cela se produit, épinglez les développeurs à une version testée avec requiredMaximumVersion, ou avec DISABLE_UPDATES si vous distribuez Claude Code via votre propre canal. Avant de relever l’épingle, lisez l’entrée du changelog de la nouvelle version et testez-la contre la passerelle. Quand vous testez une version, les nouveaux en-têtes ou champs de requête que la passerelle rejette apparaissent comme les erreurs 400 décrites dans Maintenir la passerelle. Le tableau ci-dessous couvre les changements dépendants de la version qui ne produisent pas d’erreur, avec le paramètre qui garde chacun constant lors des mises à niveau.