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:/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.