Skip to main content

Core concepts

Proxies

Operator-created entry points. A proxy has an owner, a single provider, attached policies, and an optional intent. All governance is scoped to a proxy.

Providers

A provider holds the upstream credential and model for a proxy. One provider per proxy; credentials are resolved server-side.

Policies

Rego rules evaluated by OPA. Request-stage decisions are allow, block, redact, or escalate; response-stage decisions use block_response and redact_response.

Sessions

A session groups related turns. Xenovia resolves one for every request; you can also set it explicitly.

Intent

An optional semantic guardrail. Xenovia scores each triggered request against the proxy’s declared intent and can allow, block, or escalate.

Traces

The record of what happened: turns, model and tool runs, token counts, latency, decisions, and custom properties.

Terminology

The platform nests telemetry three levels deep. The names differ slightly between screens, so this is the model to hold:

How a proxy is put together

Request lifecycle

1

Route

The runtime validates the proxy ID, checks the path and content, and resolves the proxy’s provider — replacing the request’s model with the proxy’s configured model.
2

Authenticate

The xe_... proxy key is verified and bound to the proxy in the URL.
3

Resolve the session

A session and turn number are resolved, and X-Xenovia-Session-Id and X-Xenovia-Trace-Id are stamped into the response headers.
4

Enforce policy

The request-stage Rego runs. A block returns 403; a redact strips fields; an escalate blocks and records a signal.
5

Score intent

If an intent is configured and the trigger fires, the request is scored and may be blocked or escalated.
6

Call the model and check the response

The upstream model is called, the response-stage Rego runs, and the completed turn is persisted.

Proxy URL

Every proxy exposes an OpenAI-compatible base URL:
Only /v1/chat/completions and /v1/responses are served. Any other path under the proxy — /v1/embeddings, /v1/completions, /v1/models, provider-prefixed paths such as /openai/v1/..., and the legacy /a/{proxy_id}/... prefix — returns 404.

What the platform does not expose

  • Provider credentials live in the proxy configuration, never in your app or in telemetry.
  • Raw API keys are never logged; only a short SHA-256 prefix appears.
  • Block and escalation reasons are recorded server-side and are never returned to the agent.