/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_searchund sein älterer Aliasweb_search_previewhängen von der Suchimplementierung und dem Event-Schema des Providers ab.file_searchverweist auf Vector Stores des Providers, etwa übervector_store_ids.computer_use_previewhängt von einer vom Provider verwalteten Computer-Session, Display-Umgebung und einem Sicherheitsmodell ab.
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
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:
run_config beim Aufruf von Runner.run(...) oder
Runner.run_streamed(...).