Skip to content

Agent observability partial setting not working #6264

Description

@kaushal-aubie

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions