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 rootinvoke_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.
metadata_only takes
effect within seconds.
Verify
- Run a turn against your agent, then check your backend: the trace appears
with root span
invoke_agentandgen_ai.conversation.idset to the session id. - On the native session stream, each turn surfaces its trace id as a
session.traceevent ({"trace_id": "<32-hex>"}), so your product can deep-link a conversation to its trace. See streaming events. - 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.

