What a trace contains
Every proxied request produces a structured trace with the following fields:
Tool call traces are child steps under the parent trace:
Request headers for trace enrichment
Attach these headers to any proxied request to enrich the trace:- Maximum 20 properties per request.
- Key length ≤ 64 characters.
- Value length ≤ 512 characters.
- The
policy_key prefix is reserved for internal use.
Response headers
Every response includes:
Use
X-Xenovia-Trace-Id to correlate a specific call with its trace in the platform.
Trace step flow
Xenovia emits trace steps as a request progresses:parent_trace_id. This allows filtering the full lifecycle of a single request.
Drift detection and remediation
When agent behaviour drifts from expected patterns:1
Detect
Policy blocks increase, intent scores drop, or escalation volume spikes. The platform surfaces these as aggregate signals over sessions and proxies.
2
Investigate
Drill into traces filtered by session, policy outcome, or intent action. Each trace includes the full request context — messages, tools, model, session turn, and custom properties — so the cause is visible without reconstructing state from separate logs.
3
Decide
Approve a pending escalation, update the Rego policy, adjust the intent definition, or revoke a proxy key. Changes take effect within the 5-minute Redis cache TTL.
4
Remediate
Apply the fix. Historical traces are immutable — prior decisions remain intact as evidence even after a policy update. This preserves audit continuity.
5
Tune
Use trace data to refine policy rules. Avoid over-blocking by reviewing traces where
intent_score is borderline or policy_outcome is redact.Response readiness checklist
- Incident owners mapped per critical proxy.
- Escalation thresholds set in the intent configuration.
- Trace retention period meets compliance requirements.
X-Xenovia-Property-*headers used to tag requests with environment, user tier, or feature context.- Post-incident policy updates are committed with a change reason for audit trail.