Skip to main content
Every turn an agent runs produces a trace, in the same shape across every supported harness. You can inspect traces in the console with no setup, and route them to your own observability backend over OTLP.

Console traces

Every organization has a built-in traces view: a session list, and a per-session trace at four fidelity levels (compact, normal, detailed, raw), with tokens, cost, duration, and the models used for each session. This requires no configuration and is the fastest way to watch an agent work or debug a turn.

Export to your own backend

Karta emits the OpenTelemetry GenAI semantic conventions, so the dedicated observability backends can ingest Karta traces natively. One turn is one trace: a root invoke_agent span with chat and execute_tool child spans. Every span carries gen_ai.conversation.id (the Karta session id) and karta.* identity attributes - organization, agent, instance, end user, harness, and turn index - so traces join cleanly with your own data. Exported by default (metadata only): Token counts are exported; cost lives in the console and the usage API. Endpoints accept the OTLP/HTTP protocol and must satisfy: Backend presets exist for Langfuse, Datadog, Grafana, LangSmith, and Braintrust, and any OTLP/HTTP-compatible collector works. To connect an endpoint for your organization, contact [email protected] with your backend and endpoint URL, and we configure it with you.

Content mode

Each endpoint has a content mode:
  • metadata_only (default) - the attribute groups above; no message content, no tool arguments.
  • content - adds input and output messages, tool-call arguments, and tool results.
Content is exported only to your organization’s own endpoint, never to any shared destination, and switching an endpoint back to metadata_only takes effect within seconds.

Verify

  1. Run a turn against your agent, then check your backend: the trace appears with root span invoke_agent and gen_ai.conversation.id set to the session id.
  2. On the native session stream, each turn surfaces its trace id as a session.trace event ({"trace_id": "<32-hex>"}), so your product can deep-link a conversation to its trace. See streaming events.
  3. Cross-check the same session in the console traces view.

Next steps

  • Audit log - the immutable who-did-what record, with API and CSV export.
  • Usage and budgets - per-end-user usage attribution and hard spend caps.