Protokollübersetzung
Jedes Modell an jedem Endpunkt, was unverändert weitergeleitet wird und welche wenigen Dinge sich nicht übersetzen lassen.
Jedes Modell ist über jeden Endpunkt erreichbar. Eine Anfrage für ein Claude-Modell über
/v1/responses oder für ein GPT-Modell über /v1/messages wird unterstützt.
So kann ein Client, der ein Protokoll spricht, Modelle von Anbietern verwenden, die ein anderes sprechen, ohne ein zweites Gateway betreiben zu müssen.
| Endpunkt | Protokoll | Typische Clients |
|---|---|---|
/v1/chat/completions |
OpenAI Chat Completions | SDKs von OpenAI, OpenClaw, Hermes, die meisten Editoren |
/v1/messages |
Anthropic Messages | SDKs von Anthropic, Claude Code |
/v1/responses |
OpenAI Responses | Codex, neuere SDKs von OpenAI |
Zugangsdaten werden als Authorization: Bearer, x-api-key oder api-key
akzeptiert, weil Clients unterschiedliche Varianten senden.
Wenn nichts übersetzt wird
Wenn dein Endpunkt und der Anbieter des Modells bereits dasselbe Protokoll sprechen, wird der Anfragekörper weitergeleitet, statt neu aufgebaut zu werden. Nur die Modell-ID wird umgeschrieben.
Cache-Grenzpunkte, Reasoning-Signaturen und Felder, die Webway nicht kennt, erreichen den Anbieter unverändert. Eine Anbieterfunktion, die nach Erstellung dieser Seite veröffentlicht wird, funktioniert ab dem Tag ihrer Veröffentlichung.
Was sich nicht übersetzen lässt
Wenn die direkte Weiterleitung nicht greift, gibt es für einige Dinge im Zielprotokoll keine Entsprechung:
- Cache-Grenzpunkte werden entfernt, wenn das Ziel Chat Completions ist, da
dieses Protokoll kein
cache_controlkennt. Anbieter speichern dort implizit im Cache, sodass du Kontrolle verlierst, aber kein Geld. - Reasoning-Signaturen belegen, dass ein Reasoning-Block unverändert zurückgegeben wurde. Sie gelten nur für den Anbieter, der sie ausgestellt hat, und können nicht in das Protokoll eines anderen übertragen werden. Deshalb werden sie entfernt und nicht gefälscht.
previous_response_idwird mit400abgelehnt. Webway speichert keinen Gesprächszustand; sende das vollständigeinput-Array. Das Feld zu ignorieren würde deinen Verlauf unbemerkt verwerfen.
Tools, Tool-Ergebnisse, Bilder, System-Prompts, Stoppgründe, Streaming-Reihenfolge und Tokenanzahlen bleiben in beiden Richtungen erhalten.
Tokenanzahlen
/v1/messages/count_tokens steht für jedes Modell zur Verfügung, auch für
Modelle, deren Anbieter dies nicht anbietet, sodass die Kontextanzeige von
Claude Code durchgehend funktioniert. Die Angaben für diese Modelle sind
Schätzungen.
Zwischengespeicherte Eingaben werden zum Cache-Tarif und Cache-Schreibvorgänge
zum Schreibtarif abgerechnet. Die Nutzung wird normalisiert, bevor sie auf
deiner Rechnung erscheint: Anthropic schließt zwischengespeicherte Tokens aus
input_tokens aus, OpenAI schließt sie in prompt_tokens ein, und
GET /v1/models veröffentlicht jeden Tarif separat.