Skip to main content

Core concepts

Agents

Operator-created entry points. An agent has an owner, a single provider, attached policies, and guardrails. All governance is scoped to an agent.

Providers

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

Policies

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

Sessions

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

Guardrails

Named semantic checks, including the agent’s scope guardrail for what it is for, across model, tool, memory, and summary stages. They can allow, block, redact, 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 an agent is put together

Request lifecycle

1

Validate

The runtime validates the agent ID, the path, and the content.
2

Authenticate

The xe_... agent key is verified and must belong to the active agent in the URL.
3

Route

The agent’s provider is resolved, replacing the request’s model with the agent’s configured model.
4

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.
5

Enforce policy and guardrails

The request-stage Rego runs, then model_request guardrails. A block returns 403; a redact strips fields; a policy escalate blocks and is queued for review.
6

Call the model and check the response

The upstream model is called, the response-stage Rego and model_response guardrails run, tool_call guardrails check any tool calls the model proposed, and the completed turn is persisted.

Agent endpoint

Every agent exposes an OpenAI-compatible base URL:
Only /v1/chat/completions and /v1/responses are served. Any other path under the agent — /v1/embeddings, /v1/completions, /v1/models, provider-prefixed paths such as /openai/v1/..., and the legacy /a/{agent_id}/... prefix — returns 404. The Python SDK’s decision endpoint is POST https://runtime.xenovia.io/v1/execute; the key identifies the agent.

What the platform does not expose

  • Provider credentials live in the agent’s 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.