Skip to content

Lossiness and Fidelity

A supported conversion pair does not mean every provider-specific or protocol-specific field is perfectly symmetric. ProxAI preserves behavior first and raw field spelling second.

TermMeaning
Pass-throughInbound and provider protocol are the same. ProxAI still handles routing, auth, transport, errors, and observation.
Supported conversionProxAI has an explicit protocol pair implementation for request/response/streaming behavior.
Lossy mappingThe target protocol cannot express some source detail exactly, so ProxAI preserves the closest behavior.
Unsupported pairNo conversion implementation exists; ProxAI fails explicitly.
Where fidelity can be lost
Output item identityaffects multi-turn references

Responses has stable output items and item references; other protocols may only expose message blocks.

Tool-call streamingaffects incremental assembly

Different protocols identify tool calls by index, id, content block index, or item id.

Reasoning controlsaffects effort and summary

Reasoning effort and summary controls are not symmetric across providers.

Stop and finish reasonsaffects terminal state

stop_reason, finish_reason, and response status are related but not identical.

Hosted toolsaffects provider capabilities

A target provider may not support the hosted tool model used by the source protocol.

Provider metadataaffects privacy and portability

Provider-specific signatures or ids should be transformed or omitted, not leaked as generic output.

NeedPrefer
Exact output item ids and native Responses multi-turn behavioropenai_responses inbound to openai_responses provider when available.
Older clients that require choices[]openai_chat_completions inbound and compatible provider protocol.
Anthropic-native content block behavioranthropic_messages inbound and anthropic_messages provider.
Local client compatibility over exact upstream shapeA supported conversion pair with clear expectations.
Debugging conversion behaviorEnable the narrowest capture phase and compare provider_request / outbound_response.
  • Unsupported pairs fail explicitly.
  • Cross-protocol conversion must not silently leak raw provider structures.
  • Streaming conversion must preserve terminal semantics.
  • Tool-call completion must remain distinct from natural text completion.
  • Error and refusal semantics should be preserved where the target protocol can represent them.