Skip to main content
GoModel akzeptiert OpenAI-kompatible /v1/responses-Requests und routet sie an den ausgewählten Modell-Provider. Manche Provider stellen eine native, Responses-kompatible Oberfläche bereit. Andere bieten Chat Completions oder provider-eigene Chat-APIs an, sodass GoModel den Request übersetzt. Die Kompatibilitätsregel folgt Postels Gesetz: GoModel übersetzt portable Modell-Features und akzeptiert unbekannte Tool-Deklarationen, ohne sie an einen Provider weiterzuleiten, der sie nicht ausführen kann. Felder, die die Bedeutung der Modellausgabe verändern würden, werden weiterhin abgelehnt, wenn sie sich nicht sicher übersetzen lassen.

Routing-Modi

Zu den Chat-übersetzten Providern gehört das native Routing zu Anthropic und Gemini. Sie funktionieren gut für Text, Streaming, vom jeweiligen Adapter unterstützte multimodale Eingaben und Schleifen mit Function Tools. Von OpenAI gehostete Tools können sie nicht sicher ausführen.

Verhalten der Features

Bei Anthropic wird text.format über die nativen Structured Outputs des Providers (json_schema) oder über eine Anweisung im System-Prompt (json_object) umgesetzt – siehe Anthropic. text.verbosity hat bei Anthropic kein Gegenstück und wird mit einer Warnung verworfen.

Das Feld include

include fordert zusätzliche Annotationen an Response-Items an, etwa reasoning.encrypted_content oder file_search_call.results. Es ändert nie, was das Modell tut, daher akzeptieren Chat-übersetzte Provider es und liefern eine Response ohne diese Annotationen – genau wie ein nativer Provider, der sie nicht unterstützt. Clients, die include immer mitsenden, etwa Codex mit wire_api = "responses", funktionieren ohne zusätzliche Konfiguration. Die einzige Ausnahme ist message.output_text.logprobs, das echte Modellausgabe statt einer Annotation anfordert. GoModel lehnt es aus demselben Grund ab wie top_logprobs.

Gehostete Tools

Gehostete Tools werden vom Upstream-Provider ausgeführt, nicht allein durch die Textvervollständigung des Modells. Ihre Payloads verweisen oft auf Ressourcen und Laufzeitzustand des Providers:
  • web_search und sein älterer Alias web_search_preview hängen von der Suchimplementierung und dem Event-Schema des Providers ab.
  • file_search verweist auf Vector Stores des Providers, etwa über vector_store_ids.
  • computer_use_preview hängt von einer vom Provider verwalteten Computer-Session, Display-Umgebung und einem Sicherheitsmodell ab.
GoModel übersetzt diese nicht in Tool Calls für Anthropic, Gemini oder andere Chat-Provider. Eine vorgetäuschte Übersetzung würde ändern, wo das Tool läuft, wie der Zustand gespeichert wird und welche Sicherheitskontrollen greifen. Chat-übersetzte Provider akzeptieren den Request daher, lassen aber vor dem Versand an den Provider jedes Nicht-Function-Tool weg. Unterstützte Function Tools im selben Request funktionieren weiterhin normal. namespace-Tools werden als Einheit weggelassen, statt abgeflacht zu werden. Ein Abflachen würde die Tool-Namen ändern und den Routing-Vertrag des Clients brechen. Ein tool_choice, das ein weggelassenes Tool auswählt, wird ebenfalls weggelassen. Werden alle Tools weggelassen, wird auch parallel_tool_calls aus dem übersetzten Request entfernt. Das ist eine kontrollierte Einschränkung der Fähigkeiten, keine Emulation gehosteter Tools. Insbesondere bedeutet eine Response eines Chat-übersetzten Providers nicht, dass eine Websuche, Dateisuche oder Computer-Aktion stattgefunden hat. Verwenden Sie einen nativen Responses-Provider, wenn das Ergebnis davon abhängt, dass eines dieser Tools ausgeführt wird.

Agent-SDKs

Clients des OpenAI Agents SDK können für portable Abläufe über GoModel mit Anthropic- und Gemini-Modellen kommunizieren:
  • einfaches Runner.run(...)
  • Runner.run_streamed(...) über HTTP/SSE
  • lokale Function Tools
  • vom SDK verwaltete Wiedergabe des lokalen Verlaufs
Vom Provider gehostete Tools werden von Chat-übersetzten Providern ignoriert. Serverseitig verwalteter Conversation-Zustand und der WebSocket-Transport für Responses hängen weiterhin von providerspezifischer Unterstützung ab. Zustandslose Wiedergabe funktioniert ebenfalls. Clients, die die Output-Items des vorherigen Turns als Input zurücksenden (store: false, Codex, vom SDK verwalteter Verlauf), schicken immer die Item-id mit, die die Responses API zurückgegeben hat. GoModel verwirft diese id zusammen mit den übrigen reinen Responses-Item-Metadaten, bevor ein Chat-Provider aufgerufen wird, sodass derselbe Wiedergabe-Body bei jedem Provider funktioniert. Für Clients des Python Agents SDK benötigen GoModel-Modell-IDs mit Namespace wie anthropic/claude-sonnet-4-20250514 und gemini/gemini-2.0-flash den Durchreichmodus für Modell-IDs:
Verwenden Sie diese run_config beim Aufruf von Runner.run(...) oder Runner.run_streamed(...).

Die Kompatibilitätsgrenze testen

Die Beispiele zum OpenAI Agents SDK enthalten Prüfskripte für das Routing zu Anthropic über GoModel:
Das Responses-Prüfskript verifiziert sowohl unterstützte als auch nicht unterstützte Pfade: einfache Responses-Aufrufe, Function Tools, Ablehnung von Structured Output, Ablehnung zustandsbehafteter Felder, Ablehnung unbekannter Input-Items und das kontrollierte Weglassen gehosteter Tools. Das Agents-Prüfskript verifiziert einfache Läufe, Schleifen mit Function Tools und gestreamte Schleifen mit Function Tools.

Roadmap

Künftige Unterstützung für gehostete Tools sollte auf einer expliziten Zuordnung der Provider-Fähigkeiten beruhen. Das bedeutet, dass GoModel vor dem Annehmen eines Requests wissen sollte, welcher Provider, welches Modell, welcher API-Modus und welches Request-Format jedes Feature sicher verarbeiten kann.
Zuletzt geändert am 24. Oktober 2026