/v1/responses requests and routes them to
the selected model provider. Some providers expose a native Responses-compatible
surface. Others expose chat completions or provider-native chat APIs, so
GoModel translates the request.
The compatibility rule is conservative: GoModel translates portable model
features and rejects provider-hosted features when it cannot preserve their
meaning.
Routing modes
Chat-translated providers include Anthropic and Gemini native routing. They work
well for text, streaming, multimodal inputs supported by the target adapter, and
function tool loops. They cannot safely execute OpenAI-hosted tools.
Feature behavior
Anthropic does not currently accept translated
response_format or
text.verbosity settings through GoModel’s chat translation path. GoModel
rejects those fields instead of dropping them.The include field
include asks for extra annotations on response items, such as
reasoning.encrypted_content or file_search_call.results. It never changes
what the model does, so chat-translated providers accept it and return a
response without those annotations, exactly like a native provider that does
not support them. Clients that always attach include, such as Codex with
wire_api = "responses", work without extra configuration.
The one exception is message.output_text.logprobs, which requests real model
output rather than an annotation. GoModel rejects it for the same reason it
rejects top_logprobs.
Hosted tools
Hosted tools are executed by the upstream provider, not by the model text completion alone. Their payloads often reference provider-owned resources and runtime state:web_search_previewdepends on the provider’s search implementation and event schema.file_searchreferences provider vector stores such asvector_store_ids.computer_use_previewdepends on a provider-managed computer session, display environment, and safety model.
Agent SDKs
OpenAI Agents SDK clients can talk to Anthropic and Gemini models through GoModel for portable flows:- plain
Runner.run(...) Runner.run_streamed(...)over HTTP/SSE- local function tools
- SDK-managed local history replay
anthropic/claude-sonnet-4-20250514 and gemini/gemini-2.0-flash need model ID
pass-through mode:
run_config when calling Runner.run(...) or
Runner.run_streamed(...).