GET /protocol bereit, die dieselben Weiterleitungsanforderungen sowie die Claude-Apps-Gateway-spezifischen Endpunkte für SSO-Anmeldung, verwaltete Einstellungsbereitstellung und Telemetrie abdeckt. Claude-Apps-Gateway wird aus derselben claude-Binärdatei wie die CLI ausgeführt, daher ist der Claude-Apps-Gateway-Schnellstart der kürzeste Weg zu einer laufenden Instanz, von der Sie die Spezifikation abrufen können.
- Um ein vorhandenes oder Gateway eines Drittanbieters für Ihre Organisation bereitzustellen, siehe LLM-Gateway bereitstellen
- Wenn Sie ein einzelner Entwickler sind, der Claude Code mit einer Anmeldedaten, die Sie erhalten haben, bei einem Gateway authentifiziert, siehe Claude Code mit einem LLM-Gateway verbinden
- API-Formate und die Endpunkte, die für jedes bereitgestellt werden sollen
- Request-Header: welche das Upstream erreichen müssen und welche Ihr Gateway verbrauchen kann
- Der System-Prompt-Attributionsblock und wie er mit Prompt-Caching interagiert
- Funktionsdurchleitung: was bricht, wenn Header oder Body-Felder gelöscht werden
- Modellermittlung
- Unverändert weiterleiten: es Byte-für-Byte an das Upstream weitergeben
- Verbrauchen: das Gateway kann es zum Routing, zur Zuordnung oder zum Tracing lesen und muss es nicht weiterleiten
API-Formate
Ein Gateway muss mindestens eines der folgenden API-Formate für Claude Code-Clients bereitstellen. Welches Format Claude Code spricht, wird durch die Konfiguration des Clients bestimmt: die Variable in der Spalte „Ausgewählt von” der folgenden Tabelle verweist Claude Code auf Ihr Gateway in diesem Format. Google Cloud’s Agent Platform ist Googles Claude-Endpunkt in Google Cloud, ehemals Vertex AI; seine Variablennamen behalten die SchreibweiseVERTEX.
Foundry und Claude Platform on AWS
Microsoft Foundry und die Claude Platform on AWS implementieren das Anthropic Messages-Format. Claude Code leitet sie über ihre eigenen Variablen weiter,ANTHROPIC_FOUNDRY_BASE_URL und ANTHROPIC_AWS_BASE_URL, aber ein Gateway, das eines von beiden frontet, implementiert die Anthropic Messages-Zeile oben. Ein Gateway, das die Claude Platform on AWS frontet, muss auch den anthropic-workspace-id-Header weiterleiten, den diese Plattform bei jeder Anfrage benötigt.
Optionale Endpunkte und Startup-Traffic
Token-Counting-Endpunkte sind die einzigen optionalen: Wenn sie fehlen, schätzt Claude Code die Kontextnutzung lokal. Inferenzanfragen werden an/v1/messages?beta=true gesendet, daher sollten Sie auf dem Pfad abgleichen, nicht auf der vollständigen URL. Die Google Cloud’s Agent Platform-Methode hängt Suffixe an den Publisher-Modellpfad an, wie in /projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict.
Ein Gateway sieht auch Best-Effort-Startup-Traffic, den es ablehnen kann, ohne etwas zu unterbrechen: eine HEAD / Konnektivitätsprobe und auf Amazon Bedrock-Format-Gateways eine GET /inference-profiles?type=SYSTEM_DEFINED Anfrage.
Streaming
Inferenzantworten müssen streamen. Claude Code verbraucht Server-Sent Events, wenn sie ankommen, daher stellt ein Gateway, das vollständige Antworten puffert, bevor es sie weiterleitet, den Client still.Format-Mismatch mit dem Upstream
Welches Format der Client spricht, bestimmt, was Ihr Gateway empfängt. Der häufige Fehlermodus ist ein Mismatch zwischen dem Format, das der Client an Ihr Gateway sendet, und dem Format, das der Upstream-Provider dahinter akzeptiert.- Wenn der Client das Amazon Bedrock- oder Google Cloud’s Agent Platform-Format spricht, sendet Claude Code nur die Teilmenge seiner vollständigen Funktionsmenge, die diese Provider akzeptieren
- Wenn der Client das Anthropic Messages-Format spricht, sendet Claude Code die vollständige Menge, auch wenn Ihr Gateway an ein Amazon Bedrock- oder Google Cloud’s Agent Platform-Upstream weiterleitet
Request-Header
Claude Code enthält diese Header bei API-Anfragen. Header-Namen sind auf dem Draht case-insensitiv. Leiten Sieanthropic-version und anthropic-beta unverändert weiter, plus anthropic-workspace-id, wenn das Upstream die Claude Platform on AWS ist; der Rest kann vom Gateway zum Routing, zur Zuordnung und zum Tracing verbraucht werden und muss nicht weitergeleitet werden.
Subagenten-IDs werden bei jedem Spawn neu generiert. Teamkollegen-Agenten, die benannten Mitglieder eines Agenten-Teams, verwenden eine stabile namensbasierte ID über Wiederverbindungen hinweg. In beiden Fällen identifiziert die ID einen Agenten, keine Person oder ein Gerät, daher behandeln Sie den Agenten-ID-Header nicht als Benutzerkennung.
Wenn Ihre Entwickler
ANTHROPIC_CUSTOM_HEADERS setzen, erscheinen diese Header auch bei Anfragen.
Weiterleitung als offene Listen
Behandeln Sie die Header und Body-Felder als offene Listen, nicht als geschlossene. Claude Code gewinnt Funktionen über Versionen hinweg, und sie kommen als neueanthropic-beta Werte, neue Request-Body-Felder und gelegentlich neue anthropic-* oder x-claude-code-* Header an.
Beim Weiterleiten an ein Anthropic-Format-Upstream leiten Sie anthropic-* Request-Header und Request-Body-Felder unverändert durch, anstatt die heute beobachteten zu allowlisten. Ein Gateway, das an eine beobachtete Liste gepinnt ist, löscht den Header oder das Feld der nächsten Funktion und bricht es bei der Veröffentlichung, die es einführt.
Die Ausnahme ist ein Nicht-Anthropic-Upstream wie Amazon Bedrock oder Google Cloud Agent Platform, wo die Überbrückung der Schemadifferenz die Aufgabe des Gateways ist; siehe Funktionsdurchleitung.
System-Prompt-Attributionsblock
Claude Code stellt einen kurzen Attributionsblock dem System-Prompt voran, der die Client-Version und einen Fingerabdruck aus dem Gespräch enthält. Derapi.anthropic.com Endpunkt löscht den Block vor der Verarbeitung, wenn er unverändert als erster System-Block ankommt, daher beeinflusst er nicht das First-Party-Prompt-Caching. Jedes andere Upstream empfängt ihn als Teil des Prompts.
Das Löschen ist positionsbezogen, daher funktioniert es nur, wenn das Gateway das system Array unverändert weiterleitet. Um den Block aus dem Prompt zu halten, ohne andere System-Inhalte zu verlieren:
- Leiten Sie das
systemArray genau wie empfangen weiter, wobei Sie den Block an erster Stelle halten: Das Voranstellen eines weiteren System-Blocks, das Neuordnen des Arrays oder das Konvertieren in einen einzelnen String besiegt das Löschen, und der Block erreicht dann das Modell und den Prompt-Cache-Schlüssel. - Halten Sie den Block in seinem eigenen Array-Eintrag: Der Endpunkt behandelt einen zusammengeführten Block, der mit dem Attributions-Header beginnt, als Attribution in ihrer Gesamtheit und löscht alles, das darin zusammengeführt wurde, einschließlich des restlichen System-Prompts.
- Wenn Ihr Gateway System-Inhalte umgestalten muss, setzen Sie
CLAUDE_CODE_ATTRIBUTION_HEADER=0, damit Claude Code den Block auslässt. Anthropic und die Claude-Endpunkte der Cloud-Provider lesen den Block zur Zuordnung, daher lassen Sie ihn auf der Client-Seite aus, anstatt ihn im Gateway zu löschen oder zu verschieben.
CLAUDE_CODE_ATTRIBUTION_HEADER=0, wenn Ihr Gateway einen solchen Cache implementiert.
Funktionsdurchleitung
Claude Code behandelt einANTHROPIC_BASE_URL Gateway als einen Anthropic-Format-Endpunkt und sendet ihm die Beta-Header und Request-Body-Felder, die es an api.anthropic.com sendet, außer einer kleinen Menge von Diagnosen und Standardwerten, die für direkte Verbindungen reserviert sind, wie z. B. der unten behandelte Fine-Grained-Tool-Streaming-Standard. Diese Menge variiert je nach Version, daher verlassen Sie sich nicht auf ihren Inhalt.
Funktionen, die Body-Felder hinzufügen, paaren sie mit einem Beta-Header, und das Paar reist zusammen. Ein Gateway, das den Header löscht, während es den Body durchleitet, oder ein Anthropic-Format-Body an ein Upstream mit einem anderen Schema weiterleitet, erzeugt harte 400 Fehler; nur wenn beide Hälften zusammen fehlen, schaltet sich die Funktion stillschweigend aus. Ein Gateway, das Request-Bodies zur Inhaltsüberprüfung umschreibt oder redigiert, bricht die Paarung auf die gleiche Weise wie das Löschen, daher überprüfen Sie ohne Änderung. Die Tabelle vermerkt, wo eine Funktion von der Paarung abweicht.
Fine-Grained Tool Streaming ist einer der Direct-Connection-Standardwerte: Es ist standardmäßig aus, wenn Anfragen durch eine benutzerdefinierte Basis-URL geleitet werden, und ein Gateway empfängt es, wenn Entwickler CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1 setzen.
Die
ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES Variablen deklarieren Modellkapazitäten nur in den Provider-Konfigurationen: CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, CLAUDE_CODE_USE_FOUNDRY und CLAUDE_CODE_USE_MANTLE. Sie haben keine Auswirkung hinter einem ANTHROPIC_BASE_URL Gateway.
Automatische Wiederholung und Fehlerweiterleitung
Claude Code versucht automatisch nach einigen Upstream-Ablehnungen und deaktiviert die abgelehnte Funktion für den Rest des Gesprächs. Ablehnungen desthinking Feldes, von Thinking-Signaturen und von Mid-Conversation-Systemnachrichten erholen sich auf diese Weise. Kontextverwaltungs- und Tool-Schema-Feld-Ablehnungen versuchen nicht erneut; diese 400 Fehler erreichen den Entwickler.
Die Wiederholungslogik gleicht die Fehlerformulierung des Upstreams ab, daher leiten Sie Fehler-Response-Bodies unverändert weiter. Ein Gateway, das Upstream-Fehler in seine eigene Hülle einwickelt, bricht den Wiederherstellungspfad, auch wenn es den Statuscode beibehält.
Deaktivieren Sie Pre-Release-Funktionen
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 stoppt Claude Code vom Senden von Pre-Release-Funktionen und ihren Body-Feldern auf jedem Provider, einschließlich Kontextverwaltung und der Beta-Tool-Felder. Es beeinflusst nicht adaptive Reasoning, das nach Modell ausgewählt wird, nicht nach Beta, und es unterdrückt nie die OAuth-Funktion, die die Abonnement-Authentifizierung benötigt.
Die Menge der Funktionen, die Claude Code sendet, wächst über Versionen. Für aktuelle Beta-Header-Zeichenketten siehe die Beta-Headers-Referenz; testen Sie Ihr Gateway gegen neue Claude Code-Versionen, anstatt an eine beobachtete Liste zu pinnen.
Modellermittlung
WennANTHROPIC_BASE_URL auf ein Gateway verweist, das das Anthropic Messages-Format bereitstellt, kann Claude Code beim Startup den /v1/models Endpunkt des Gateways abfragen und die zurückgegebenen Modelle zur /model Auswahl hinzufügen.
Entwickler aktivieren dies durch Setzen von CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1, in ihrer eigenen Umgebung oder durch verwaltete Einstellungen. Die Ermittlung ist standardmäßig aus, damit Gateways, die von einem gemeinsamen API-Schlüssel unterstützt werden, nicht jedes Modell, auf das der Schlüssel zugreifen kann, jedem Benutzer anzeigen. Dies erfordert Claude Code v2.1.129 oder später.
Wenn die Ermittlung läuft
Die Ermittlung gilt nur für das Anthropic Messages-Format. Sie läuft nicht, wenn:- Eine beliebige
CLAUDE_CODE_USE_*Provider-Variable gesetzt ist, auch wennANTHROPIC_BASE_URLauch gesetzt ist ANTHROPIC_BASE_URLnicht gesetzt ist oder aufapi.anthropic.comverweist- Nicht wesentlicher Traffic ist deaktiviert, durch
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICoder Organisationsrichtlinie
Request und Response
Die Anfrage istGET /v1/models?limit=1000 mit einem 3-Sekunden-Timeout, und jede Umleitung wird als Fehler behandelt, daher können die Anmeldedaten nicht an ein Umleitungsziel durchsickern. Ein Gateway, das langsam antwortet oder /v1/models umleitet, auch http zu https, schlägt die Ermittlung stillschweigend fehl; stellen Sie den Endpunkt direkt unter der konfigurierten Basis-URL bereit.
Die Ermittlungsanfrage sendet genau einen Anmeldedaten-Header:
ANTHROPIC_AUTH_TOKENals Bearer-Token, wenn gesetzt- Andernfalls der aufgelöste API-Schlüssel, einschließlich eines
apiKeyHelperWertes, imx-api-keyHeader
/v1/models authentifiziert, muss x-api-key für Helper-Bereitstellungen akzeptieren. Alle Header von ANTHROPIC_CUSTOM_HEADERS sind ebenfalls enthalten.
Claude Code liest id und den optionalen display_name aus jedem Eintrag im data Array der Response und ignoriert Einträge, deren id nicht mit claude oder anthropic beginnt:
Auswahl-Einträge und Caching
Die Auswahl ist die interaktive Modelliste, die sich öffnet, wenn ein Entwickler/model in Claude Code ausführt. Jeder ermittelte Eintrag ist mit „Aus Gateway” gekennzeichnet und verwendet display_name, wenn bereitgestellt. Die availableModels verwaltete Einstellung begrenzt, was die Ermittlung hinzufügen kann.
Eine ermittelte ID wird übersprungen, wenn sie genau einer Zeile in der Auswahl entspricht, oder wenn sowohl die ermittelte als auch die vorhandene ID zu Fable aufgelöst werden. Ab Claude Code v2.1.197 wird eine ermittelte explizite ID auch in einen eingebauten Eintrag zusammengefasst, wenn beide zum gleichen Modell aufgelöst werden. Eingebaute Zeilen werden nach Aliasen wie sonnet verschlüsselt, daher wird eine ermittelte explizite ID des Modells, zu dem der Alias derzeit aufgelöst wird, wie claude-sonnet-5, in die sonnet Zeile zusammengefasst, während eine ID, zu der der Alias nicht aufgelöst wird, wie claude-sonnet-4-6, immer noch ihre eigene „Aus Gateway” Zeile neben dem eingebauten Eintrag hinzufügt.
Ergebnisse werden in ~/.claude/cache/gateway-models.json oder %USERPROFILE%\.claude\cache\gateway-models.json unter Windows zwischengespeichert und bei jedem Startup aktualisiert. Wenn die Anfrage fehlschlägt oder das Gateway /v1/models nicht implementiert, fällt die Auswahl auf die zwischengespeicherte Liste aus dem vorherigen Startup oder auf die eingebaute Modelliste zurück. Wenn Ihr Gateway Claude-Modelle unter Aliasen bereitstellt, die nicht dem Ermittlungsfilter entsprechen, können Entwickler diese Aliase manuell mit den Modellkonfigurationsvariablen hinzufügen.
Verwandte Ressourcen
Für den Rest der Gateway-Dokumentationsserie und die zugrunde liegenden API-Referenzen:- Gateway-Übersicht: was ein Gateway ist und wie Sie zwischen Claude Apps Gateway und einem anderen Produkt wählen
- Andere LLM-Gateways: wie Sie ein Gateway bereitstellen, das Ihre Organisation betreibt, und wie es mit claude.ai-Abonnements interagiert
- LLM-Gateway für Ihre Organisation bereitstellen: die Admin-Checkliste, die diesen Vertrag verwendet
- Claude Code mit einem LLM-Gateway verbinden: Pro-Entwickler-Konfiguration und die Fehlerbehebungstabelle
- Beta-Headers-Referenz: der aktuelle Satz von
anthropic-betaWerten - Messages API: das API-Format, das ein Anthropic-Format-Gateway implementiert