Agentic Loop
Demonstrates the openai_agentic_loop filter with iterative_request_router for step-based model-tool-model looping in the Responses API
Configurations in Responses.
Demonstrates the openai_agentic_loop filter with iterative_request_router for step-based model-tool-model looping in the Responses API
Minimal agentic-loop pipeline that sanitizes deferred MCP connectors on the first inference round. defer_loading: true skips tools/list, so replay never opens an independent MCP callout
Minimal agentic loop pipeline for inference fixture replay
Screens each newly produced local tool result before it can enter the next inference request
Demonstrates how raw request body size is enforced across a chain of OpenAI Responses filters that each buffer the request body
Demonstrates the terminal-failure contract when an upstream Responses SSE stream overflows the request-wide retained-payload budget AFTER the client stream is already committed
Lets a rich Codex-style Responses client talk to a function-only Responses backend (for example vLLM at POST /v1/responses) without routing through /v1/chat/completions and without executing client-owned tools in Praxis
Lets a rich Codex-style Responses client (POST /v1/responses with custom, namespace, local shell, and client-executed tool_search tools) reach a function-only Chat Completions backend (POST /v1/chat/completions) by composing openai_client_tool_compat with openai_responses_to_chat_completions in one iterative-router step (GitHub issue #1206)
Release-acceptance configuration for GitHub issue #870. A Codex client speaks the OpenAI Responses API over HTTP while Praxis selects a Chat Completions-only provider, translates both request and streaming response, rewrites the provider path, and replaces the client credential
Demonstrates compaction after rehydrate, file resolve, and document extract so rewritten current-turn content survives history replacement
Converts input_file content parts to input_text for inference backends that do not natively support input_file (e.g. vLLM, llm-d)
Resolves file_id and file_url references in Responses API input by fetching file metadata and content, then inlining base64 content as file_data or image_url before forwarding
Accepts finite OpenAI Responses requests with hosted file search while targeting a backend that only implements /v1/chat/completions
Single-upstream fixture configuration for recording the private Chat Completions function representation of a Responses file_search tool
Demonstrates hosted file_search execution under the unified agentic loop (#1046). openai_agentic_loop is the sole loop owner: it parses each model response, records the file_search_call items it sees as assignments, and publishes the single continuation signal (action=loop|done). openai_file_search_dispatch is a pure request-phase dispatcher: at request- body EOS on each IRR re-entry it executes the assigned calls against the vector store and reconciles each item in place, then the owner prepares the next inference request
Demonstrates streaming hosted file_search through the iterative_request_router
Routes AI API traffic by request-head operation identity and body format
Runs the complete Responses API pipeline through an agentic iterative_request_router that executes hosted file_search, web_search, and MCP tool calls in a model-tool-model loop, persisting both buffered and streaming (stream: true) responses
Full Flow Agentic.Visualizer configuration for openai/responses.
The strict-HTTP acceptance test for pinned Codex CLI for GitHub issue #870 drives the proxy over POST /v1/responses and any other Responses API paths the client may probe
Demonstrates a single-step iterative_request_router pipeline that exposes a native OpenAI Responses SSE body incrementally. openai_responses_proxy always advertises the streaming capability and selects Praxis’s typed streaming transport automatically for an effective “stream”: true request; there is no operator opt-in
Demonstrates the openai_mcp_dispatch operator approval floor on a complete persisted agentic Responses pipeline
Demonstrates the openai_mcp_dispatch filter configuration
Demonstrates binding an operator outbound_chain onto the outbound MCP callout made by openai_mcp_tool_resolve (the tools/list discovery request)
Demonstrates MCP tool calls over the filtered-subrequest transport with SSE streaming support
Demonstrates operator-owned metadata admission and read-only enforcement for the openai_mcp_tool_resolve filter (issue #1724)
Demonstrates the openai_mcp_tool_resolve filter, which resolves MCP tool entries in the Responses API tools array into concrete tool definitions by calling tools/list on each upstream MCP server
Rewrites or injects the top-level model field in Responses API and Chat Completions request bodies before forwarding to the inference backend
Validates previous_response_id by fetching the stored response, confirming its status is completed, and promoting the ID to filter metadata
Minimal native OpenAI Responses pipeline that stores a first turn, rehydrates a stored previous_response_id into the outbound input history, and proxies to a native /v1/responses backend
Validates Responses API JSON and enriches request metadata
Persists streaming and non-streaming Responses API responses to a database, serves stored data via GET endpoints, and handles DELETE /v1/responses/{id} locally
Persists non-streaming Responses API responses to PostgreSQL over a TLS-verified connection that authenticates with a client certificate instead of a password
Forward Responses API traffic through a Praxis AI listener to a compatible backend.
Routes Responses API traffic by detected mode
Translate the Responses API shape for an OpenAI-compatible Chat Completions backend.
Translates finite and streaming vLLM reasoning into Responses reasoning output items, including storage and replay on continuation
Exercises stored reasoning and previous_response_id replay through the agentic loop, where the output collector records each round into the stored history
Provider-neutral owner isolation for persisted OpenAI Responses and Conversations
Demonstrates the openai_stream_events filter, which composes the current iterative-request-router (IRR) execution into one logical Responses SSE stream: it parses each backend SSE chunk, accumulates state (response object, output items, tool calls, usage) into ResponsesState, normalizes the per-round lifecycle, and preserves parser state through stream completion
Demonstrates using openai_tool_parse to route Responses API requests by their tool composition
Routes /v1/vector_stores traffic and all its subresources to a dedicated backend (any server compatible with the OpenAI Files / Vector Stores API), while sending everything else to a default backend
vLLM Agentic API: https://github.com/vllm-project/agentic-api
Demonstrates the openai_web_search_dispatch filter configuration
Accepts OpenAI Responses requests with hosted web search while targeting a backend that only implements /v1/chat/completions
Single-upstream fixture configuration for recording the private Chat Completions function representation of a Responses web_search tool
A variant of web-search-chat-completions.yaml that sources the shared Brave provider key from a projected FILE instead of an environment variable
A scoped-credentials variant of web-search-chat-completions.yaml