Responses Proxy

Forward Responses API traffic through a Praxis AI listener to a compatible backend.

Category: Setup-dependent integration
Task: Proxy OpenAI Responses API requests

Prerequisites: Praxis AI runtime; A compatible Responses API backend; Provider credentials when required

Expected outcome: Responses API requests are forwarded to the configured backend.

This configuration comes from the selected release. The example has not been run here; external services are not bundled.

Download the source file.

Companion resources from the same snapshot:

# Responses API Proxy (non-streaming passthrough)
# Requires `--features openai-responses` because these filters are opt-in.
#
# Proxies OpenAI Responses API requests to a native /v1/responses
# backend. The openai_responses_proxy filter is a pipeline waypoint
# where body rebuilding from enriched filter state will happen
# once upstream enrichment filters (rehydrate, openai_tool_parse) land.
#
# This is a low-level protocol-adapter example, not a complete managed-provider
# pipeline. It intentionally omits `openai_responses_request`, so provider-owned
# fields such as `prompt` pass through unchanged. (An object-valued `prompt` is
# OpenAI's deprecated reusable prompt object, retired with v1/prompts on
# 2026-11-30; it only resolves against an OpenAI-owned upstream, and new clients
# should send prompt content via input.) Use full-flow-agentic.yaml
# when the gateway must bind provider ownership and enforce managed-route policy.
# The JSON response is relayed back to the client.

listeners:
  - name: ai-gateway
    address: "127.0.0.1:8080"
    filter_chains: [responses-proxy]

filter_chains:
  - name: responses-proxy
    filters:
      - filter: openai_responses_proxy
        name: inference

      - filter: router
        routes:
          - path_prefix: "/v1/responses"
            cluster: "inference-backend"

      - filter: load_balancer
        clusters:
          - name: "inference-backend"
            endpoints:
              - "127.0.0.1:3001"

insecure_options:
  allow_private_endpoints: true # example proxies to local backends