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
1
Install
- Python
- TypeScript
2
Register the span processor
Build a tracer provider, add the
LatitudeSpanProcessor, and hand the provider to LiveKit inside your entrypoint.- Python
- TypeScript
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
By default, Latitude’s smart filter forwards LLM spans only. To include STT, TTS, and VAD spans in every trace, disable the filter when creating the processor:
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