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
STT → LLM → TTS
LiveKit Agents runs the full voice pipeline — speech-to-text, an LLM turn, and text-to-speech — insideAgentSession. LiveKit emits OpenTelemetry spans for each stage; Latitude receives them through LatitudeSpanProcessor.
What gets traced
| Stage | Traced by default | Content in Latitude |
|---|---|---|
| STT | No (smart filter) | Enable with disableSmartFilter |
| LLM | Yes | Prompts, completions, tools, tokens via gen_ai.* and lk.* |
| TTS | No (smart filter) | Enable with disableSmartFilter |
lk.* attributes. Latitude parses those alongside gen_ai.* metadata — STT transcripts in audio_content items are normalized to text parts.
Using ElevenLabs as the TTS/STT plugin inside LiveKit? Instrument LiveKit on
this page — not the ElevenLabs Agents guide.
What you get
LLM turns (default)
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
audio_content items) is normalized to text parts in Latitude.
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