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
record configuration
- 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 configuration
Session/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
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:
recordconfigurationDeployment:
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:
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
Session/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