Zum Hauptinhalt springen
Diese Seite führt einen Administrator durch die Bereitstellung eines LLM-Gateways für Claude Code. Sie setzt voraus, dass Sie ein Gateway-Produkt bereitgestellt haben, das die Gateway-Anforderungen erfüllt. Die Bereitstellung oder der Betrieb eines bestimmten Produkts wird hier nicht behandelt; stellen Sie Ihres gemäß der Dokumentation des Herstellers bereit.

Voraussetzungen

Um den Rollout abzuschließen, benötigen Sie:
  • Ein Gateway, das auf Ihrer Infrastruktur bereitgestellt ist, HTTPS auf der genauen Adresse bereitstellt, die Sie an Entwickler verteilen werden, nicht auf einer Adresse, die zu ihr umleitet, und so konfiguriert ist, dass Claude-Modellnamen zu Ihrem Anbieter weitergeleitet werden
  • Eine Anbieteranmeldedaten für das Gateway zum Weiterleiten mit:
  • Eine Möglichkeit, Einstellungsdateien auf Entwicklermaschinen bereitzustellen, z. B. MDM oder Konfigurationsverwaltung

Gateway-Anforderungen

Welches Produkt auch immer das Gateway bereitstellt, es muss:
  • Ein unterstütztes API-Format akzeptieren: eines der Formate in der API-Formattabelle. Die Rollout-Schritte unten setzen die Anthropic Messages API unter POST /v1/messages voraus, die die meisten Gateways bereitstellen
  • Antworten streamen: Server-Sent-Events durchleiten, während sie ankommen, anstatt die gesamte Antwort zu puffern
  • Claude-Modellnamen weiterleiten: jeden Namen, den Entwickler verwenden, einem Upstream-Modell zuordnen. Claude Code sendet einen Modellnamen wie claude-sonnet-4-6 in jeder Anfrage; in den meisten Gateway-Produkten ist die Zuordnung eine Modellliste oder Routing-Tabelle in der eigenen Konfiguration des Gateways
  • Header und Body unverändert weiterleiten: anthropic-beta, anthropic-version und den Request-Body in beide Richtungen durchleiten; die Feature-Pass-Through-Tabelle ordnet jede dem Feature zu, das ohne sie bricht
  • Upstream-Fehler unverändert zurückgeben: Claude Codes automatische Wiederherstellung basiert auf Fehlerformulierungen, daher bricht das Einwickeln von Fehlern in die eigene Hülle des Gateways es
  • Den Pfad von der WAF-Inspektion des Request-Body ausnehmen: Claude Code-Prompts enthalten Quellcode und XML-ähnliche Tags, die Cross-Site-Scripting-Body-Regeln entsprechen; eine WAF vor dem Gateway gibt 403 bei echten Sitzungen zurück, während kurze Test-Anfragen durchgehen
Optional können Sie GET /v1/models bereitstellen, damit Claude Code die Modellauswahl von Ihrem Gateway mit Modellermittlung füllen kann.

Rollout-Schritte

Der Rollout umfasst fünf Schritte, jeder mit einem Checkpoint:
  1. Bestätigen Sie, dass das Gateway Ihre Modelle weiterleitet
  2. Geben Sie jedem Entwickler eine Anmeldedaten aus
  3. Testen Sie Claude Code gegen das Gateway
  4. Verteilen Sie die Basis-URL und Anmeldedaten
  5. Überprüfen Sie von einer Entwicklermaschine
Die Schritte beinhalten drei verschiedene Anmeldedaten, und die Checkpoints benennen sie nach Platzhaltern, damit Sie sagen können, welche fehlerhaft ist, wenn etwas schiefgeht:
AnmeldedatenWer hält siePlatzhalter in Checkpoints
AnbieteranmeldedatenDas Gateway, das sie an den Upstream-Anbieter weiterleitetAuf dem Gateway konfiguriert; erscheint nie in Client-Befehlen
Gateway-AdministratoranmeldedatenSie, wenn Ihr Gateway-Produkt eine für seine Admin- oder Test-Schnittstelle ausgibt<gateway-key>
EntwicklerschlüsselJeder Entwickler, ausgestellt vom Gateway in Entwickleranmeldedaten ausstellen<developer-key>

Bestätigen Sie, dass das Gateway Ihre Modelle weiterleitet

Ihr Gateway sollte bereits mit Ihren Anbieteranmeldedaten konfiguriert sein, auf seiner Basis-URL lauschen und Anfragen an die API Ihres Anbieters weiterleiten. Testen Sie, dass der Pfad end-to-end mit einer minimalen Anfrage funktioniert, indem Sie zwei Werte aus Ihrer Bereitstellung ersetzen:
  • <gateway-key> ist alles, was Ihnen derzeit erlaubt, das Gateway aufzurufen: ein Administratorschlüssel, ein Test-Schlüssel oder Ihr eigener Entwicklerschlüssel, wenn Sie bereits einen ausgestellt haben. Nicht jedes Gateway-Produkt hat eine separate Admin-Anmeldedaten; wenn Ihres nicht, geben Sie sich selbst einen Entwicklerschlüssel in Entwickleranmeldedaten ausstellen aus
  • model ist ein Claude-Modellname, den Ihr Gateway weiterleiten soll. Das Beispiel verwendet claude-sonnet-4-6; ersetzen Sie einen Namen, den Sie konfiguriert haben
curl -X POST "https://llm-gateway.example.com/v1/messages" \
  -H "Authorization: Bearer <gateway-key>" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
Checkpoint: ein 200 mit einem content-Feld bedeutet, dass das Gateway den Anbieter mit diesem Modellnamen erreicht hat. Ein 404 bedeutet, dass dieser Name am Gateway nicht weitergeleitet wird; ein 401 vom Anbieter bedeutet, dass die Anbieteranmeldedaten des Gateways falsch sind. Wiederholen Sie die Anfrage einmal pro Claude-Modellname in der Routing-Konfiguration Ihres Gateways. Ein Name, den das Gateway nicht weiterleitet, gibt 404 an jeden Entwickler zurück, der ihn auswählt, daher testen Sie jeden Namen vor dem Rollout.
Vermeiden Sie, das Gateway hinter einer Umleitung bereitzustellen. Eine Umleitung kann den Request-Body ablegen oder den Anmeldedaten-Header bei Inferenzanfragen entfernen, und Modellermittlung behandelt jede Umleitung als Fehler, daher können die Anmeldedaten nicht zu einem Umleitungsziel durchsickern.

Geben Sie Entwickleranmeldedaten aus

Jeder Entwickler benötigt seinen eigenen Gateway-Schlüssel zur Authentifizierung. Erstellen Sie eine Anmeldedaten pro Entwickler am Gateway, gemäß der Dokumentation zur Anmeldedatenverwaltung Ihres Produkts. Bestätigen Sie, dass ein neu ausgestellter Schlüssel gegen das Gateway mit der gleichen Anfrage wie Bestätigen Sie, dass das Gateway Ihre Modelle weiterleitet funktioniert, indem Sie <gateway-key> durch den neuen <developer-key> ersetzen:
curl -X POST "https://llm-gateway.example.com/v1/messages" \
  -H "Authorization: Bearer <developer-key>" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
Checkpoint: ein 200 mit einem content-Feld bedeutet, dass der Entwicklerschlüssel das Gateway erreicht und das Gateway ihn weiterleitet. Ein 401 hier, wenn der vorherige Schritt erfolgreich war, bedeutet, dass der Entwicklerschlüssel falsch ist oder noch nicht am Gateway wirksam geworden ist. Das Ausstellen eines Schlüssels pro Entwickler anstelle eines gemeinsamen Schlüssels ist das, was die Zuordnung der Nutzung pro Entwickler und das individuelle Offboarding ermöglicht. Die Umgebungsvariable, die den Schlüssel hält, hängt davon ab, welcher Header das Gateway liest. Für ein Gateway, das Anmeldedaten im Authorization: Bearer-Header überprüft, setzen Entwickler ihren Schlüssel in ANTHROPIC_AUTH_TOKEN. Für ein Gateway, das Schlüssel aus dem x-api-key-Header liest, setzen Entwickler stattdessen ANTHROPIC_API_KEY; die Anmeldedatentabelle behandelt die Zuordnung.

Testen Sie Claude Code gegen das Gateway

Führen Sie Claude Code selbst durch das Gateway aus, bevor Sie etwas verteilen, indem Sie die gleiche Konfiguration verwenden, die der Rollout unternehmensweite bereitstellen wird. Geben Sie diese direkt in einem Terminal ein, nicht in einer .env- oder Einstellungsdatei; sie gelten nur für diese Terminal-Sitzung, daher kehrt Ihre Maschine zu ihrer normalen Konfiguration zurück, wenn Sie sie schließen. Verwenden Sie ANTHROPIC_API_KEY anstelle von ANTHROPIC_AUTH_TOKEN, wenn Ihr Gateway den x-api-key-Header liest:
export ANTHROPIC_BASE_URL=https://llm-gateway.example.com
export ANTHROPIC_AUTH_TOKEN="<developer-key>"
Senden Sie dann einen einmaligen Prompt durch das Gateway:
claude -p "Reply with one word: connected"
Checkpoint: der Prompt gibt eine Antwort zurück, und die Anfrage erscheint im Gateway-Log als POST zum /v1/messages-Pfad mit Status 200. Claude Code hängt eine Query-Zeichenkette wie ?beta=true an, daher stimmen Sie mit dem Pfad überein, nicht mit der vollständigen URL. Zwei Fehlermeldungen weisen in verschiedene Richtungen:
  • Not logged in: überprüfen Sie das Gateway-Log, um die beiden Ursachen auseinanderzuhalten. Wenn es leer ist, hat keine Anmeldedaten die Sitzung erreicht und keine Anfrage hat die Maschine verlassen; führen Sie die Exporte in der Shell aus, die Sie testen. Wenn es eine abgelehnte Anfrage mit x-api-key im 401-Body zeigt, erwartet das Gateway Schlüssel in diesem Header stattdessen; wechseln Sie zu ANTHROPIC_API_KEY
  • Failed to authenticate. API Error: 401 bedeutet, dass eine Anmeldedaten gesendet und abgelehnt wurde, und das Gateway-Log sagt, wo: ein 401, das api.anthropic.com oder Ihren Anbieter-Endpunkt benennt, bedeutet, dass das Gateway den Upstream erreicht hat, aber seine Anbieteranmeldedaten, die es hält, abgelehnt wurden, daher funktionierte der Entwicklerschlüssel und die Anbieteranmeldedaten, die das Gateway hält, sind falsch oder ein Platzhalter
Eine falsche oder unerreichbare Basis-URL erzeugt ein anderes Symptom: Claude Code versucht die Verbindung mit Backoff erneut und kann mehrere Minuten ohne Ausgabe sitzen, bevor es einen Fehler meldet. Wenn der Befehl zu hängen scheint, überprüfen Sie stattdessen das Gateway-Log, anstatt zu warten; keine ankommende Anfrage bedeutet, dass ANTHROPIC_BASE_URL nicht auf das Gateway zeigt.

Verteilen Sie die Konfiguration

Jede Entwicklermaschine benötigt die Gateway-Adresse und eine Anmeldedaten. Sie können sie zentral über verwaltete Einstellungen verteilen, damit Entwickler nichts konfigurieren, oder Entwickler die Werte selbst setzen lassen.

Was zu verteilen ist

Der gleiche Satz von Variablen gilt, welchen Weg Sie auch wählen. Die meisten Rollouts benötigen nur ANTHROPIC_BASE_URL und eine Anmeldedaten; fügen Sie die bedingten Zeilen ein, wenn Ihr Gateway-Setup sie erfordert.
Variable oder EinstellungWas sie tutEinschließen wenn
ANTHROPIC_BASE_URLSendet Claude Codes API-Anfragen an das Gateway anstelle von api.anthropic.comImmer
apiKeyHelper, oder eine Anmeldedaten in ANTHROPIC_AUTH_TOKEN oder ANTHROPIC_API_KEYAuthentifiziert jede Anfrage an das Gateway. Der Helper führt einen Befehl aus, um den Schlüssel zu holen; die Variablen halten einen statischen Schlüssel, gesendet als Authorization: Bearer und x-api-key jeweilsImmer; eine der drei
ANTHROPIC_CUSTOM_HEADERSFügt zusätzliche HTTP-Header zu jeder API-Anfrage hinzuIhr Gateway erfordert einen Mandanten- oder Routing-Header bei jeder Anfrage
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERYFragt das /v1/models des Gateways beim Start ab und fügt die zurückgegebenen Namen zur /model-Auswahl hinzuIhr Gateway stellt /v1/models bereit und Sie möchten, dass die Auswahl der Entwickler von ihm gefüllt wird
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASStoppt Claude Code beim Senden von Pre-Release-Capability-Headern und Body-FeldernIhr Gateway leitet zu einem Bedrock- oder Vertex-Upstream weiter, der Beta-Felder ablehnt; siehe Gateway-Anforderungen
ANTHROPIC_MODEL oder ANTHROPIC_DEFAULT_HAIKU_MODELLegen Sie fest, welchen Modellnamen Claude Code für die Hauptsitzung und für Hintergrund-Traffic anfordertIhr Gateway leitet Modellnamen weiter, die nicht Claude Codes Standardwerte entsprechen, oder Sie leiten Hintergrund-Funktionalität an ein anderes Modell weiter. Leiten Sie sowohl die Override-Namen als auch Claude Codes Standard-Namen am Gateway weiter, da einige Unter-Aufrufe unabhängig vom Override den Standard-Namen anfordern können
ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_VERTEX_BASE_URL, ANTHROPIC_FOUNDRY_BASE_URL, oder ANTHROPIC_AWS_BASE_URL mit den Variablen für diesen AnbieterZeigen Sie Claude Code auf das Gateway durch eine anbieter-spezifische Basis-URL. Bedrock und Vertex wechseln auch zu den nativen Request-Formaten dieser AnbieterIhr Gateway frontet Bedrock, Vertex, Foundry oder die Claude Platform auf AWS; siehe API-Formate

Verteilen Sie über verwaltete Einstellungen

Liefern Sie die Variablen über den env-Block einer verwalteten Einstellungsdatei, die von MDM, Registry-Richtlinie oder Konfigurationsverwaltung gepusht wird:
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com"
  },
  "apiKeyHelper": "/usr/local/bin/get-gateway-key"
}
Fügen Sie die bedingten Variablen aus der Tabelle zum gleichen env-Block hinzu. Ein verwalteter ANTHROPIC_BASE_URL wird erzwungen und kann nicht durch einen Shell-Export eines Entwicklers überschrieben werden, da Claude Code ihn über die Prozessumgebung und niedrigere Prioritätseinstellungen anwendet. Fügen Sie forceLoginMethod oder forceLoginOrgUUID nicht in verwalteten Einstellungen neben einer Gateway-Anmeldedaten ein. Auf Claude Code v2.1.146 und später blockiert jeder Schlüssel ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN und apiKeyHelper beim Start, daher sehen Entwickler This machine's managed settings require a first-party login und können nicht fortfahren. Server-verwaltete Einstellungen Lieferung erfordert eine direkte Verbindung zu api.anthropic.com, daher erreicht sie keine Gateway-gerouteten Sitzungen. Gateway-Bereitstellungen verwenden diesen dateigestützten verwalteten Einstellungspfad, der die gleichen Schlüssel erzwingt. Für die Anmeldedaten verteilen Sie einen apiKeyHelper-Befehl in der verwalteten Einstellungsdatei wie oben gezeigt; der Befehl authentifiziert sich bei Ihrem Secrets-Store als lokaler Entwickler, daher erhält jede Maschine ihren eigenen Schlüssel. Alternativ liefern Sie jedem Entwickler seinen Schlüssel über Ihren bestehenden Secrets-Prozess und lassen ihn ANTHROPIC_AUTH_TOKEN selbst setzen. Einige Umgebungen benötigen separate Lieferung:
  • Die Desktop-App liest Gateway-Routing nur aus ihrer MDM-bereitgestellten Drittanbieter-Inferenzkonfiguration; stellen Sie diese Datei neben verwalteten Einstellungen bereit, damit Desktop-Sitzungen auch durch das Gateway geleitet werden. Siehe die Desktop-Drittanbieter-Konfigurationsdocs und die Desktop-Gateway-Docs
  • CI-Runner benötigen ANTHROPIC_BASE_URL und die Anmeldedaten in der Umgebung des Runners gesetzt
  • WSL auf verwalteten Windows-Maschinen liest die Windows-verwalteten Einstellungen nur, wenn wslInheritsWindowsSettings true ist

Geben Sie Entwicklern die Werte, um sie selbst zu setzen

Wenn Sie keine verwaltete Einstellungsverteilung eingerichtet haben, senden Sie jedem Entwickler, was er benötigt, um die Verbindungsseite zu befolgen:
  • Die Gateway-URL
  • Ihre persönliche Anmeldedaten
  • Welche Variable die Anmeldedaten einzufügen ist: ANTHROPIC_AUTH_TOKEN für ein Bearer-Token-Gateway, oder ANTHROPIC_API_KEY für ein x-api-key-Gateway. Entwicklern zu sagen, welche spart ihnen das Trial-and-Error, das auf der Verbindungsseite beschrieben ist
  • Alle bedingten Variablen aus der Was zu verteilen ist-Tabelle, mit ihren Werten
Die Verbindungsseite führt Entwickler durch das Setzen jeder einzelnen. Checkpoint: auf einer Entwicklermaschine startet claude eine Sitzung ohne den Login-Bildschirm anzuzeigen, da die verteilte Anmeldedaten die Authentifizierung erfüllt. Führen Sie dann /status aus und öffnen Sie die Status-Registerkarte: die Anthropic base URL-Zeile zeigt die Gateway-Adresse, und für verwaltete Verteilung enthält die Setting sources-Zeile verwaltete Einstellungen. Ein Login-Bildschirm oder eine fehlende Anthropic base URL-Zeile bedeutet, dass die Konfiguration die Maschine nicht erreicht hat.

Überprüfen Sie den Rollout

Bestätigen Sie, dass alles von einer Entwicklermaschine aus funktioniert, nicht vom Gateway-Host, damit der Test den Netzwerkpfad abdeckt, den Entwickler verwenden. Senden Sie eine Streaming-Anfrage, die den Endpunkt, Streaming-Pass-Through und Modell-Routing auf einmal überprüft:
curl -N -X POST "https://llm-gateway.example.com/v1/messages" \
  -H "Authorization: Bearer <developer-key>" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-4-6", "max_tokens": 16, "stream": true, "messages": [{"role": "user", "content": "count to 3"}]}'
Sie sollten data:-Zeilen inkrementell ankommen sehen. Die gesamte Antwort, die auf einmal nach einer Pause ankommt, bedeutet, dass das Gateway puffert, was Claude Code staut; ein 404 bedeutet, dass der Modellname nicht weitergeleitet wird. Wiederholen Sie pro Modellname. Starten Sie dann claude und senden Sie eine Nachricht. Jedes Symptom in diesem Schritt hat eine Ursache:
  • Eine Login-Aufforderung bedeutet eine Anmeldedaten-Lücke. Führen Sie /status aus und öffnen Sie die Status-Registerkarte: wenn die Setting sources-Zeile verwaltete Einstellungen nicht enthält, hat die Verteilung die Maschine nicht erreicht; wenn sie es tut, wurde die Entwickleranmeldedaten nicht bereitgestellt, daher setzen Sie ANTHROPIC_AUTH_TOKEN oder den apiKeyHelper
  • Failed to authenticate-Fehler bedeuten, dass das Gateway Anfragen ablehnt; sein Log sagt, welche Anmeldedaten fehlgeschlagen ist. Eine Ablehnung, die das Gateway selbst protokolliert, benennt den Entwicklerschlüssel, während ein 401 von api.anthropic.com oder Ihrem Anbieter-Endpunkt bedeutet, dass die Anbieteranmeldedaten, die das Gateway hält, abgelehnt wurden
  • Eine einmalige Genehmigungsaufforderung für den Schlüssel ist beim ersten Gebrauch erwartet, wenn das Gateway Schlüssel im x-api-key-Header erwartet, gesetzt als ANTHROPIC_API_KEY. Mit ANTHROPIC_AUTH_TOKEN erscheint keine Aufforderung und die Variable übernimmt stillschweigend; ein zuvor gespeicherter claude.ai-Login ist für diese Sitzung inaktiv
Überprüfen Sie abschließend die Logs des Gateways auf die Nachricht, die Sie gesendet haben: die Anmeldedaten identifiziert den Entwickler, und der x-claude-code-session-id-Header gruppiert Anfragen nach Sitzung. Wenn Features mit den Fehlerbehebungssymptomen fehlschlagen, entfernt das Gateway Header oder schreibt Fehler um; siehe die Gateway-Anforderungen oben.

Verwalten Sie das Gateway

Nach dem Rollout erreichen drei Arten von Änderungen das Gateway im Laufe der Zeit. Jede hat ein Symptom, auf das man achten sollte, und eine Aktion, die man ergreifen sollte.
ÄnderungSymptom, wenn das Gateway nicht mitgehalten hatAktion
Neue Claude Code-Versionen fügen anthropic-beta-Werte und Request-Body-Felder hinzuEntwickler berichten 400-Fehler, die ein neues Feld nach der Aktualisierung von Claude Code benennen; siehe Feature-Pass-ThroughLeiten Sie anthropic-*-Header und Request-Bodies wörtlich weiter, anstatt eine Allowlist zu verwenden; testen Sie neue Claude Code-Versionen gegen das Gateway, bevor sie Entwickler erreichen
Neue Claude-Modelle werden verfügbarEntwickler, die einen neuen Modellnamen auswählen, erhalten 404; die /model-Auswahl listet ihn nicht aufFügen Sie den Modellnamen zur Routing-Konfiguration des Gateways hinzu, führen Sie dann die Routing-Überprüfung erneut aus. Wenn Sie ANTHROPIC_MODEL oder die Standard-Modell-Variablen verteilen, aktualisieren Sie die verwalteten Einstellungen
Anmeldedaten verfallen oder müssen rotiert werdenAlle Entwickleranfragen beginnen mit 401 vom Upstream zu fehlschlagenRotieren Sie die Anbieteranmeldedaten des Gateways nach eigenem Zeitplan; Entwicklerschlüssel rotieren am Gateway, und ein apiKeyHelper handhabt die Rotation pro Entwickler, ohne Einstellungen neu zu verteilen
Berücksichtigen Sie bei der Dimensionierung von Pro-Schlüssel-Ratenlimits den Client Wiederholung von transienten Fehlern, einschließlich 429-Antworten, bis zu 10 Mal mit Backoff, unter Beachtung von Retry-After. Behalten Sie die Protokollreferenz als Vertrag für das, was jede Claude Code-Version sendet.