Overview
This guide shows you how to send traces from a LiveKit Agents application to Latitude. LiveKit Agents ships with built-in OpenTelemetry support and owns its own tracer provider. Instead of bootstrapping telemetry with theLatitude class, you attach a LatitudeSpanProcessor to LiveKit’s provider — Latitude then receives the same spans LiveKit emits for LLM, agent, and tool activity. This works the same way for the Python (livekit-agents) and Node.js (@livekit/agents) SDKs.
You’ll keep building your LiveKit agent exactly as you do today. Latitude
observes the LLM spans the framework already produces.
Requirements
- A Latitude account and API key
- A Latitude project slug
- A project that uses LiveKit Agents (
livekit-agentsor@livekit/agents)
Steps
What you get
LiveKit’s LLM spans carry bothgen_ai.* metadata and the conversation content in custom lk.* attributes. Latitude parses both, so each LLM turn shows up with:
- Model and provider — from
gen_ai.request.model/gen_ai.provider.name - Token usage and latency — input/output tokens, time-to-first-token
- Input messages — the chat context (system prompt, user turns, prior tool calls and results)
- Output messages — the assistant response text and any tool calls the model emitted
- Tool definitions — the function tools available to the agent
LiveKit produces many non-LLM spans (STT, TTS, VAD). By default the span
processor’s smart filter forwards only LLM-relevant spans to keep your traces
focused. To export every LiveKit span, pass options:
Seeing Your Traces
Once connected, traces appear automatically in Latitude:- Open your project in the Latitude dashboard
- Each agent turn shows the LLM call with its input/output conversation
- Token usage and latency are aggregated at every level