melodic-zoo-29246
02/12/2026, 9:46 PMtall-airline-16756
02/12/2026, 9:47 PMtall-airline-16756
02/12/2026, 9:47 PMrecord=False in their agent code even when project-level recording is on.
• By default, Agent Observability is disabled; enable it to capture recordings.
4) Retention and availability
• Observability data is retained for 30 days.
• Data currently resides in the US (regional storage support planned).
5) SDK notes
• Agent Observability is available in Python Agents SDK v1.3+; TypeScript support is coming soon.
• Observability is currently in beta and free for LiveKit Cloud users.
If you want, I can:
• Walk you step‑by‑step through enabling observability in your project settings.
• Tell you exactly where to click in the Sessions Dashboard if you share whether you’re using the Cloud Console or a self-hosted instance.
• Help verify whether a specific session has recordings (share the project ID and session ID).
Which of those would you like next?
Sources: Agent Builder | LiveKit Documentation | Streamline troubleshooting with Agent Observabilitymelodic-zoo-29246
02/12/2026, 9:48 PMtall-airline-16756
02/12/2026, 9:49 PMrecord=False in their agent code. This allows project-level recording to remain enabled while opting out specific agents.
3) Verify recordings and play/download
• After a session completes, go to your Sessions Dashboard: https://cloud.livekit.io/projects/p_/sessions
• Open the completed session and select the Agent insights tab.
• Use the synchronized timeline to play back audio and scrub to moments of interest.
• Downloadable assets (audio, transcript, logs) are available from the session details / Agent insights view.
4) Notes to keep in mind
• Observability is disabled by default — enabling it at the project level is required to capture recordings.
• Data is retained for 30 days and is currently stored in the US.
• Agent Observability is available in Python Agents SDK v1.3+; TypeScript support is coming soon.
Would you like me to walk through these steps in your console (I can guide you click‑by‑click), or check whether a particular project or session already has observability enabled? If yes, please share the project ID and (if available) a session ID.melodic-zoo-29246
02/12/2026, 9:55 PMtall-airline-16756
02/12/2026, 9:55 PMrecord=False in the agent session code.
◦ To ensure recording is enabled programmatically, omit record=False or explicitly set record=True.
Example (Python agent snippet)
session = AgentSession(
stt=...,
llm=...,
tts=...,
# record=True # default is recorded if project-level Observability is enabled
)
await session.start(agent=..., room=ctx.room)
How to store recordings in S3 (recommended approach)
• Agent Observability stores session audio/transcripts/logs and exposes them in the Agent Insights UI. There is no direct API to push those Observability assets automatically to S3.
• If you want recordings saved directly to S3 programmatically, use Egress (Room Composite Egress) to record the room and upload the file to S3.
Basic Egress flow:
1. Start a Room Composite Egress request (specify file_output with s3 details) to write a media file (e.g., WEBM/WAV) directly to your S3 bucket.
2. Listen for egress/webhook events (egress_ended or room_finished) and call stop_egress when done.
3. Optionally use webhooks to track status and perform post-processing.
Example (conceptual Python pseudocode):
request = api.RoomCompositeEgressRequest(
room_name="your-room",
file_output=api.EncodedFileOutput(
file_type=api.EncodedFileType.WEBM,
filepath="recordings/session-1.webm",
s3=api.S3Upload(
bucket="your-bucket",
region="us-west-2",
access_key="YOUR_KEY",
secret="YOUR_SECRET",
),
),
)
egress_info = await api.start_room_composite_egress(request)
# stop when room ends
Security note for S3 credentials
• For production, prefer temporary credentials via AWS AssumeRole (S3 AssumeRole). This requires enabling S3 AssumeRole in project settings and is an Enterprise feature. When configured, leave `access_key`/`secret` blank in Egress requests and LiveKit will assume the role to write to your bucket.
Workflow suggestion
• Enable Agent Observability in the Console for session insights (audio, transcripts, traces).
• Use Egress to store full media files directly to S3 for long-term storage/processing.
• Use webhooks (egress_ended, room_finished) to trigger any post-upload processing or notifications.
Free tier / included limits
• Agent Observability: Free during beta (available to LiveKit Cloud users). Observability recordings are retained for 30 days and stored in the US.
• Egress (S3 recordings):
◦ Build (Free): 60 minutes/month of track/room egress
◦ Ship: 600 minutes/month
◦ Scale: 8,000 minutes/month
◦ After included minutes, egress is billed (rate referenced in docs as $0.001/minute)
◦ Concurrent egress sessions: Free tier allows 2 concurrent exports
If you want, I can:
• Provide a complete working code example (Python or TypeScript) to start/stop Room Composite Egress to S3.
• Show how to wire webhooks (egress_ended / room_finished) to automate uploads and cleanup.
• Check which method fits your goal better: storing per-session agent observability assets (download from UI) vs full-room media egress to S3.
Which would you like next — a full code example for Egress to S3, or step‑by‑step webhook + download flow to move Observability assets to S3?melodic-zoo-29246
02/13/2026, 12:59 AMtall-airline-16756
02/13/2026, 12:59 AMmelodic-zoo-29246
02/13/2026, 1:00 AMtall-airline-16756
02/13/2026, 1:01 AM