Agent observability partial setting not working
Bug Description
The record configuration passed to session.start() does not appear to respect individual observability settings.
When configuring partial observability (enabling/disabling specific options such as audio, traces, logs, and transcript), the captured observability data does not match the provided configuration.
Currently, I have only enabled audio recording because I have exhausted the inclusive credits for other observability data types.
Actual behaviour
Changing individual flags does not correctly affect the captured observability data.
The agent session appears to either:
- Ignore some fields in the
recordconfiguration - Capture observability data despite the corresponding flag being disabled
- Not apply partial observability settings correctly
Deployment:
- Agent observability enabled in LiveKit dashboard
- Agent deployed on LiveKit Cloud
Impact
Unable to selectively control observability collection.
For example, we cannot disable expensive data types like transcripts/audio while keeping only required debugging data such as traces/logs, or vice versa.
This prevents proper cost control and selective observability usage.
Expected Behavior
The record options should be applied independently:
- Audio recording should be enabled
- Logs should not be captured
- Traces should not be captured
- Transcript should not be captured
Each boolean option should control only its corresponding observability data type.
Reproduction Steps
await session.start(
agent=starting_agent,
room=ctx.room,
room_options=room_io.RoomOptions(
audio_input=room_io.AudioInputOptions(
noise_cancellation=(
lambda params: (
(
None
if params.participant.kind
== rtc.ParticipantKind.PARTICIPANT_KIND_AGENT
else ctx.proc.userdata[ProcessKey.ENHANCER]
)
if settings.LIVEKIT_NOISE_CANCELLATION_ENABLED
else None
)
),
),
close_on_disconnect=False,
delete_room_on_close=True,
),
capture_run=True,
record={
"audio": settings.LIVEKIT_OBSERVABILITY_AUDIO,
"traces": settings.LIVEKIT_OBSERVABILITY_TRACES,
"logs": settings.LIVEKIT_OBSERVABILITY_LOGS,
"transcript": settings.LIVEKIT_OBSERVABILITY_TRANSCRIPT,
},
)
Example configuration:
{
"audio": true,
"traces": false,
"logs": false,
"transcript": false
}Operating System
livekit cloud
Models Used
Deepgram nova3, gpt 5.4-nano, cartesia tts
Package Versions
* LiveKit Agents SDK: `livekit-agents>=1.6.4`
* LiveKit API SDK: `livekit-api>=1.1.1`
* Running with:
* `session.start()`
* `capture_run=True`
* Custom `record` observability configurationSession/Room/Call IDs
Room id = RM_YMDFvsK9TmQc, RM_NsDTEhhDmuJN created after that has still no observability audio in it.
Proposed Solution
Additional Context
Raised as help in livekit discussions too: https://community.livekit.io/t/agent-observability-partial-setting-not-working/1518/1#p-5051-description-1
Screenshots and Recordings
No response
Source: livekit/agents