Catalyst traces LiveKit Agents by connecting LiveKit’s native OpenTelemetry tracer to the Catalyst provider. Your LiveKit worker keeps usingDocumentation Index
Fetch the complete documentation index at: https://docs.inference.net/llms.txt
Use this file to discover all available pages before exploring further.
AgentSession,
rooms, tools, and model plugins normally; Catalyst enriches the spans LiveKit
already emits with OpenInference attributes before export.
Use this guide for applications built with @livekit/agents in TypeScript or
livekit-agents in Python.
What Is Captured
agent_sessionspans as OpenInference AGENT spansllm_node,llm_request, andllm_request_runspans as LLM spans- LiveKit function tools as TOOL spans, including tool name, call ID, arguments, output, and errors when available
- LiveKit
lk.*andgen_ai.*attributes, mapped into model, provider, token, input, and output attributes when LiveKit provides them - Other LiveKit telemetry spans as CHAIN spans so the full session timeline remains visible
Catalyst does not monkey patch
AgentSession methods. The integration uses
LiveKit’s public telemetry provider hooks, so LiveKit helper objects and
streaming behavior are preserved.Install
Configure Export
Set a stable service name so LiveKit sessions are easy to find in Catalyst.Initialize Tracing
Initialize tracing before starting LiveKit agent sessions or workers.Text-Only Agent Example
This Python example starts a LiveKit text-onlyAgentSession. It works for smoke
tests and CI because it does not require audio input or output, but it still runs
the real LiveKit session path.
Python
Function Tools
LiveKit tool spans are captured automatically when the LiveKit runtime emitsfunction_tool telemetry. The span includes the tool name, tool call ID, JSON
arguments, and output when available.
Python
lookup_appointment runs inside an AgentSession, Catalyst shows a TOOL
span under the LiveKit session trace.
Verify In Catalyst
Open Catalyst and filter traces by yourCATALYST_SERVICE_NAME, for example
livekit-agent or livekit-support-agent.
A successful LiveKit trace should include:
- An
agent_sessionAGENT span for the session - One or more LLM spans for LiveKit model nodes or requests
- TOOL spans for any function tools the agent called
tracing.shutdown() before process exit so
batched spans are flushed.
Troubleshooting
If you do not see LiveKit spans:- Initialize tracing before starting the worker or
AgentSession. - Set a stable
CATALYST_SERVICE_NAMEand filter by that value. - Confirm
CATALYST_OTLP_ENDPOINTandCATALYST_OTLP_TOKENare present in the process environment. - Call
tracing.shutdown()before a script exits. - For Python OpenAI-backed LiveKit agents, use current Catalyst tracing packages so OpenAI streaming context managers are preserved.