openai_responses_proxy
On this page
Rebuilds the request body from ResponsesState when present.
Configuration Notes
Reads the assembled conversation history from ResponsesState::messages and replaces the input field in the outbound body when it differs from the original normalized input. Strips previous_response_id after Praxis resolves it locally via the rehydrate filter.
When no ResponsesState exists, preserves the request body unchanged.
Non-null prompt template references are rejected unless the load balancer selected a cluster declaring application_protocol: openai_responses and application_provider: openai. Because cluster selection happens during the request-header phase, a pipeline that uses OpenAI-managed prompts must order this filter after its router and load balancer. Missing or different application metadata fails closed.
This filter always advertises the Praxis streaming capability. When the effective outbound body contains "stream": true it selects Praxis’s streaming transport; otherwise it selects the buffered transport. There is no operator opt-in — the removed terminal_streaming flag is rejected via deny_unknown_fields so stale configs fail to build. Classifier metadata remains descriptive client intent; this final serializer owns the transport decision. IRR can resume one downstream stream across response-dependent transitions, but every response-body filter in a step composed with this filter must use BodyMode::Stream (or explicitly reject streaming requests) rather than silently buffering them.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
max_rewritten_body_bytes | integer | no | Maximum size in bytes of the request body this filter produces when it rebuilds the outbound body from ResponsesState. Raw request body size is governed by the pipeline’s body_limits, not this field. This bounds only the rebuilt body, which can grow larger than the raw input when conversation history is rehydrated. |
Examples
Example 1
filter: openai_responses_proxy
Example 2
filter: openai_responses_proxy
max_rewritten_body_bytes: 67108864