What a turn records
Inside a turn, each unit of work is a run: the model call, plus policy and runtime-executed tool runs. Client-executed tool calls appear in the turn’s
output.tool_calls and, once returned, in the next turn’s tool_results.
Enriching a turn
Attach these headers to any request to the agent endpoint:- At most 20 properties per request; extras are dropped silently.
- Property names are lowercased; keep them to 64 characters or fewer.
- Values are truncated to 512 bytes.
- Names beginning
policy_are reserved and dropped. - A property that breaks a rule is skipped without an error, so confirm important tags appear on the trace.
X-Xenovia-Parent-Trace-Id sets a parent run and X-Xenovia-Trace-Flow-Id groups turns into a flow.
X-Xenovia-Session-Path is not currently read by the runtime. Use X-Xenovia-Session-Id for grouping and X-Xenovia-Property-* for filtering.Response headers
Every response includes:
Use
X-Xenovia-Trace-Id to find a specific call in the platform. A malformed X-Xenovia-Session-Id request header is rejected with 400.
Investigating
1
Notice
Watch the Sessions and Alerts views for a rise in blocks or a spike in escalations. Configure alert rules to be told rather than to poll.
2
Drill in
Open a session and read its turns. Each turn carries the messages, tools, model, tokens, decision, and custom properties, so the cause is visible without stitching logs together.
3
Adjust
Update the Rego policy or guardrail, or revoke an agent key. Configuration changes reach the runtime within about five minutes.
4
Confirm
Send the request again and check the new turn. Historical turns are immutable, so earlier decisions remain as evidence after a change.
Escalations are queued on the session and surface in Alerts. Resolving one records the reviewer’s note; it does not replay or release the original request.
Querying traces programmatically
The management API exposes sessions, turns, aggregate stats, escalations, and multi-agent workflows. TheGET /api/v1/traces endpoint filters by agent (agent_id), session, decision, provider, and time range, and by any custom property as cp_<key>=<value>.