<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Filters on Praxis</title><link>https://praxis.fast/ai/dev/filters/</link><description>Recent content in Filters on Praxis</description><generator>Hugo</generator><language>en</language><atom:link href="https://praxis.fast/ai/dev/filters/index.xml" rel="self" type="application/rss+xml"/><item><title>a2a</title><link>https://praxis.fast/ai/dev/filters/a2a/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/a2a/</guid><description>Extracts A2A protocol metadata from JSON-RPC request bodies and promotes method, family, task ID, streaming detection, and version to request headers, filter results, and durable metadata for routing.</description></item><item><title>ai_guardrails</title><link>https://praxis.fast/ai/dev/filters/ai_guardrails/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/ai_guardrails/</guid><description>Calls an external AI guardrail provider to evaluate request and response bodies. The provider determines whether content should be passed, blocked, or redacted.</description></item><item><title>ai_operation</title><link>https://praxis.fast/ai/dev/filters/ai_operation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/ai_operation/</guid><description>Classifies supported AI operations from the request head.</description></item><item><title>anthropic_messages_protocol</title><link>https://praxis.fast/ai/dev/filters/anthropic_messages_protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/anthropic_messages_protocol/</guid><description>Normalizes Anthropic Messages protocol headers for native backends.</description></item><item><title>anthropic_messages_request</title><link>https://praxis.fast/ai/dev/filters/anthropic_messages_request/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/anthropic_messages_request/</guid><description>Processes an Anthropic create-message body once and publishes its facts.</description></item><item><title>anthropic_messages_to_chat_completions</title><link>https://praxis.fast/ai/dev/filters/anthropic_messages_to_chat_completions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/anthropic_messages_to_chat_completions/</guid><description>Transforms Anthropic Messages API requests to Chat Completions-compatible request bodies and transforms compatible responses back.</description></item><item><title>anthropic_messages_to_chat_completions_stream</title><link>https://praxis.fast/ai/dev/filters/anthropic_messages_to_chat_completions_stream/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/anthropic_messages_to_chat_completions_stream/</guid><description>Transforms streaming SSE responses between the Chat Completions and Anthropic Messages formats, processing each chunk as it arrives.</description></item><item><title>anthropic_messages_to_vertexai_anthropic</title><link>https://praxis.fast/ai/dev/filters/anthropic_messages_to_vertexai_anthropic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/anthropic_messages_to_vertexai_anthropic/</guid><description>Translates Anthropic Messages requests to Vertex AI rawPredict and Vertex responses back to the Anthropic dialect.</description></item><item><title>anthropic_web_search</title><link>https://praxis.fast/ai/dev/filters/anthropic_web_search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/anthropic_web_search/</guid><description>Executes server-owned WebSearch tool calls in an Anthropic Messages loop.</description></item><item><title>aws_sigv4_sign</title><link>https://praxis.fast/ai/dev/filters/aws_sigv4_sign/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/aws_sigv4_sign/</guid><description>Signs outbound requests to AWS services using SigV4.</description></item><item><title>azure_ad</title><link>https://praxis.fast/ai/dev/filters/azure_ad/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/azure_ad/</guid><description>Injects an Azure AD (Entra ID) bearer token into outbound requests.</description></item><item><title>callout_credentials</title><link>https://praxis.fast/ai/dev/filters/callout_credentials/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/callout_credentials/</guid><description>Establishing filter that captures typed per-user callout secrets from ingress headers.</description></item><item><title>credential_inject</title><link>https://praxis.fast/ai/dev/filters/credential_inject/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/credential_inject/</guid><description>Replaces caller credentials with the upstream credential selected by intelligent_route or provider_route.</description></item><item><title>Extensions</title><link>https://praxis.fast/ai/dev/filters/extensions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/extensions/</guid><description>Extend Praxis AI with custom filters using the Praxis core filter interfaces and registration model.</description></item><item><title>external_metering</title><link>https://praxis.fast/ai/dev/filters/external_metering/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/external_metering/</guid><description>Integrates with an external metering service for pre-request balance checks and post-response token usage reporting.</description></item><item><title>Filter Reference</title><link>https://praxis.fast/ai/dev/filters/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/reference/</guid><description>AI filters provided by Praxis AI. For base proxy filters (router, load balancer, headers, CORS, etc.), see the Praxis core filter reference.</description></item><item><title>gcp_adc</title><link>https://praxis.fast/ai/dev/filters/gcp_adc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/gcp_adc/</guid><description>Injects a GCP OAuth2 access token into outbound requests.</description></item><item><title>http_callout</title><link>https://praxis.fast/ai/dev/filters/http_callout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/http_callout/</guid><description>Calls an external HTTP service during request processing and feeds its response into branch-chain evaluation.</description></item><item><title>identity_header_guard</title><link>https://praxis.fast/ai/dev/filters/identity_header_guard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/identity_header_guard/</guid><description>Captures request headers matching a configured prefix into filter_metadata and removes them from the upstream request.</description></item><item><title>inflight_tracker</title><link>https://praxis.fast/ai/dev/filters/inflight_tracker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/inflight_tracker/</guid><description>Tracks live request counts and reserved tokens per model.</description></item><item><title>intelligent_route</title><link>https://praxis.fast/ai/dev/filters/intelligent_route/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/intelligent_route/</guid><description>Selects an upstream cluster from a site/capability descriptor by matching either an inference model name or MCP tool name.</description></item><item><title>llmisvc_model_provider_resolver</title><link>https://praxis.fast/ai/dev/filters/llmisvc_model_provider_resolver/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/llmisvc_model_provider_resolver/</guid><description>Rewrites publisher-ID body model values to the short model name for LLMISvc / KServe routing; the routing header is left unchanged.</description></item><item><title>mcp</title><link>https://praxis.fast/ai/dev/filters/mcp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/mcp/</guid><description>Extracts MCP JSON-RPC method, tool, resource, prompt, version, and session metadata into filter-visible request fields.</description></item><item><title>model_to_header</title><link>https://praxis.fast/ai/dev/filters/model_to_header/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/model_to_header/</guid><description>Promotes the JSON &amp;ldquo;model&amp;rdquo; field from the request body to a request header.</description></item><item><title>model_to_provider</title><link>https://praxis.fast/ai/dev/filters/model_to_provider/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/model_to_provider/</guid><description>Maps stable client-facing model IDs to existing upstream clusters and provider-specific target models.</description></item><item><title>openai_agentic_loop</title><link>https://praxis.fast/ai/dev/filters/openai_agentic_loop/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_agentic_loop/</guid><description>Agentic loop controller for the Responses API pipeline.</description></item><item><title>openai_chat_completions_request</title><link>https://praxis.fast/ai/dev/filters/openai_chat_completions_request/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_chat_completions_request/</guid><description>Publishes body facts for native Chat Completions create requests to durable metadata and filter results.</description></item><item><title>openai_chat_completions_to_anthropic</title><link>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_anthropic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_anthropic/</guid><description>Translates OpenAI Chat Completions requests only when the selected ExternalModel candidate uses Anthropic Messages; OpenAI candidates pass through with their configured path and model.</description></item><item><title>openai_chat_completions_to_anthropic_stream</title><link>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_anthropic_stream/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_anthropic_stream/</guid><description>Converts the selected Anthropic provider&amp;rsquo;s event stream incrementally. OpenAI-compatible candidates are left byte-for-byte unchanged.</description></item><item><title>openai_chat_completions_to_azureai_chat_completions</title><link>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_azureai_chat_completions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_azureai_chat_completions/</guid><description>Transforms requests targeting Azure OpenAI deployments into standard Chat Completions-compatible form and normalizes responses back.</description></item><item><title>openai_chat_completions_to_vertexai_gemini</title><link>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_vertexai_gemini/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_chat_completions_to_vertexai_gemini/</guid><description>Transforms OpenAI Chat Completions requests into Vertex AI Gemini generateContent format and translates responses back.</description></item><item><title>openai_client_tool_compat</title><link>https://praxis.fast/ai/dev/filters/openai_client_tool_compat/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_client_tool_compat/</guid><description>Lowers rich client-owned tool declarations to private function tools for a function-only Responses backend and restores the typed items on the way back.</description></item><item><title>openai_conversations</title><link>https://praxis.fast/ai/dev/filters/openai_conversations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_conversations/</guid><description>Serve OpenAI Conversations API endpoints locally through the configured response store.</description></item><item><title>openai_doc_extract</title><link>https://praxis.fast/ai/dev/filters/openai_doc_extract/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_doc_extract/</guid><description>Converts input_file content parts to input_text for backends that do not support input_file natively (e.g. vLLM, llm-d).</description></item><item><title>openai_file_resolve</title><link>https://praxis.fast/ai/dev/filters/openai_file_resolve/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_file_resolve/</guid><description>Resolves file_id and file_url references in Responses API input by fetching content from a Files API or remote URL via ApiClient and inlining the base64-encoded content in the provider-native field.</description></item><item><title>openai_file_search_dispatch</title><link>https://praxis.fast/ai/dev/filters/openai_file_search_dispatch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_file_search_dispatch/</guid><description>Dispatches the loop owner&amp;rsquo;s pending file-search assignments against a vector store API compatible backend.</description></item><item><title>openai_mcp_dispatch</title><link>https://praxis.fast/ai/dev/filters/openai_mcp_dispatch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_mcp_dispatch/</guid><description>Executes MCP tool calls against upstream MCP servers within the Responses API agentic loop.</description></item><item><title>openai_mcp_tool_resolve</title><link>https://praxis.fast/ai/dev/filters/openai_mcp_tool_resolve/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_mcp_tool_resolve/</guid><description>Resolves MCP tool entries from the Responses API tools array into concrete tool definitions by calling tools/list on each upstream MCP server.</description></item><item><title>openai_responses_compact</title><link>https://praxis.fast/ai/dev/filters/openai_responses_compact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_compact/</guid><description>Summarizes conversation history when the token count exceeds a configured threshold.</description></item><item><title>openai_responses_model_rewrite</title><link>https://praxis.fast/ai/dev/filters/openai_responses_model_rewrite/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_model_rewrite/</guid><description>Rewrites the model field in Responses and Chat Completions request bodies.</description></item><item><title>openai_responses_proxy</title><link>https://praxis.fast/ai/dev/filters/openai_responses_proxy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_proxy/</guid><description>Rebuilds the request body from ResponsesState when present.</description></item><item><title>openai_responses_rehydrate</title><link>https://praxis.fast/ai/dev/filters/openai_responses_rehydrate/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_rehydrate/</guid><description>Validates previous_response_id by fetching the stored response, confirming its status is &amp;ldquo;completed&amp;rdquo;, and populating ResponsesState with the full conversation history (stored turns + current input).</description></item><item><title>openai_responses_request</title><link>https://praxis.fast/ai/dev/filters/openai_responses_request/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_request/</guid><description>Processes a Responses request body once and initializes state.</description></item><item><title>openai_responses_store</title><link>https://praxis.fast/ai/dev/filters/openai_responses_store/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_store/</guid><description>Persists Responses API responses to the configured response store backend.</description></item><item><title>openai_responses_to_chat_completions</title><link>https://praxis.fast/ai/dev/filters/openai_responses_to_chat_completions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_responses_to_chat_completions/</guid><description>Translates canonical Responses create requests for a Chat Completions backend.</description></item><item><title>openai_stream_events</title><link>https://praxis.fast/ai/dev/filters/openai_stream_events/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_stream_events/</guid><description>Composes the current IRR execution into one logical Responses stream.</description></item><item><title>openai_tool_parse</title><link>https://praxis.fast/ai/dev/filters/openai_tool_parse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_tool_parse/</guid><description>Parses tool definitions and tool_choice from Responses API request bodies and promotes routing facts to metadata and filter results without mutating the body.</description></item><item><title>openai_web_search_dispatch</title><link>https://praxis.fast/ai/dev/filters/openai_web_search_dispatch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/openai_web_search_dispatch/</guid><description>Web search filter for model-driven web_search_call dispatch.</description></item><item><title>project_state_owner_headers</title><link>https://praxis.fast/ai/dev/filters/project_state_owner_headers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/project_state_owner_headers/</guid><description>Projects a normalized [StateOwner] into destination-specific HTTP headers.</description></item><item><title>prompt_enrich</title><link>https://praxis.fast/ai/dev/filters/prompt_enrich/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/prompt_enrich/</guid><description>Injects statically configured messages into the messages array of OpenAI-compatible chat completion request bodies.</description></item><item><title>provider_route</title><link>https://praxis.fast/ai/dev/filters/provider_route/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/provider_route/</guid><description>Exact provider-local mapping from an authenticated intelligent routing selection to a private backend cluster.</description></item><item><title>state_owner</title><link>https://praxis.fast/ai/dev/filters/state_owner/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/state_owner/</guid><description>Establishes a normalized [StateOwner] from trusted identity sources.</description></item><item><title>stream_usage_inject</title><link>https://praxis.fast/ai/dev/filters/stream_usage_inject/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/stream_usage_inject/</guid><description>Injects stream_options.include_usage = true into streaming OpenAI chat-completions requests so the upstream response contains token usage.</description></item><item><title>time_to_first_token</title><link>https://praxis.fast/ai/dev/filters/time_to_first_token/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/time_to_first_token/</guid><description>Measures time-to-first-token for streaming AI responses.</description></item><item><title>token_ceiling</title><link>https://praxis.fast/ai/dev/filters/token_ceiling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/token_ceiling/</guid><description>Rejects provider-bound requests whose estimated serialized request body or requested output exceeds configured limits.</description></item><item><title>token_count</title><link>https://praxis.fast/ai/dev/filters/token_count/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/token_count/</guid><description>Extracts token usage from AI inference responses and writes unified counts to [filter_metadata].</description></item><item><title>token_rate_limit</title><link>https://praxis.fast/ai/dev/filters/token_rate_limit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/token_rate_limit/</guid><description>Token-denominated rate limiter: reserves an estimated cost at admission, reconciles against actual usage after the response completes.</description></item><item><title>token_usage_headers</title><link>https://praxis.fast/ai/dev/filters/token_usage_headers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/ai/dev/filters/token_usage_headers/</guid><description>Injects Praxis-Token-Input, Praxis-Token-Output, and Praxis-Token-Total headers into downstream responses when token usage data is present in [filter_metadata].</description></item></channel></rss>