Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions py/src/braintrust/integrations/livekit_agents/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
def setup_livekit_agents() -> bool:
"""Set up LiveKit Agents tracing.

Set ``BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS=false`` to omit agent
playback audio attachments while preserving the ``agent_speaking`` spans
and transcripts.
Agent playback audio attachments are disabled by default. Set
``BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS=true`` to include them on
``agent_speaking`` spans.
"""
return LiveKitAgentsIntegration.setup()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ async def capture_frame(frame):

monkeypatch.delenv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", raising=False)
assert await tracing.traced_audio_output_capture_frame(capture_frame, output, (frame,), {}) is frame
assert bytes(getattr(output, tracing._PLAYBACK_AUDIO_ATTR)) == frame.data
assert getattr(output, tracing._PLAYBACK_AUDIO_ATTR, None) is None

monkeypatch.setenv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", "false")
assert await tracing.traced_audio_output_capture_frame(capture_frame, output, (frame,), {}) is frame
Expand All @@ -238,7 +238,8 @@ async def capture_frame(frame):

@pytest.mark.asyncio
@pytest.mark.vcr
async def test_livekit_agents_agent_speaking_e2e(memory_logger, livekit_server):
async def test_livekit_agents_agent_speaking_e2e(memory_logger, livekit_server, monkeypatch):
monkeypatch.setenv("BRAINTRUST_CAPTURE_AGENT_AUDIO_ATTACHMENTS", "true")
assert setup_livekit_agents()

from livekit.agents import Agent, AgentSession
Expand Down
4 changes: 2 additions & 2 deletions py/src/braintrust/integrations/livekit_agents/tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ async def traced_audio_output_capture_frame(
if getattr(instance, _PLAYBACK_HANDLER_ATTACHED_ATTR, False):
if getattr(instance, _PLAYBACK_START_ATTR, None) is None:
setattr(instance, _PLAYBACK_START_ATTR, time.time())
if BraintrustEnv.CAPTURE_AGENT_AUDIO_ATTACHMENTS.get(True):
if BraintrustEnv.CAPTURE_AGENT_AUDIO_ATTACHMENTS.get(False):
_capture_playback_audio(instance, args[0] if args else kwargs.get("frame"))
else:
_clear_playback_audio(instance)
Expand Down Expand Up @@ -680,7 +680,7 @@ def _pop_playback_audio(obj: Any) -> Attachment | None:
audio = getattr(obj, _PLAYBACK_AUDIO_ATTR, None)
metadata = getattr(obj, _PLAYBACK_AUDIO_METADATA_ATTR, None) or {}
_clear_playback_audio(obj)
if not BraintrustEnv.CAPTURE_AGENT_AUDIO_ATTACHMENTS.get(True) or not audio:
if not BraintrustEnv.CAPTURE_AGENT_AUDIO_ATTACHMENTS.get(False) or not audio:
return None
sample_rate = metadata.get("sample_rate")
num_channels = metadata.get("num_channels")
Expand Down