From 073fa1a8429473b57f8a78881a96e09ed7d890ba Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Tue, 21 Apr 2026 09:03:25 +0200 Subject: [PATCH 1/2] update test --- .../openai_agents/test_openai_agents.py | 60 ++++++------------- 1 file changed, 18 insertions(+), 42 deletions(-) diff --git a/tests/integrations/openai_agents/test_openai_agents.py b/tests/integrations/openai_agents/test_openai_agents.py index bde222274c..af757de58d 100644 --- a/tests/integrations/openai_agents/test_openai_agents.py +++ b/tests/integrations/openai_agents/test_openai_agents.py @@ -1345,6 +1345,24 @@ def simple_test_tool(message: str) -> str: assert ai_client_span2["attributes"]["gen_ai.request.max_tokens"] == 100 assert ai_client_span2["attributes"]["gen_ai.request.messages"] == safe_serialize( [ + { + "role": "user", + "content": [ + {"type": "text", "text": "Please use the simple test tool"} + ], + }, + { + "role": "assistant", + "content": [ + { + "arguments": '{"message": "hello"}', + "call_id": "call_123", + "name": "simple_test_tool", + "type": "function_call", + "id": "call_123", + } + ], + }, { "role": "tool", "content": [ @@ -2288,7 +2306,6 @@ def test_openai_agents_message_role_mapping( get_response_kwargs = {"input": [test_message]} - from sentry_sdk.integrations.openai_agents.utils import _set_input_data from sentry_sdk import start_span with start_span(op="test") as span: @@ -3036,47 +3053,6 @@ def calculator(a: int, b: int) -> int: ) -def test_openai_agents_message_truncation(sentry_init, capture_items): - """Test that large messages are truncated properly in OpenAI Agents integration.""" - - large_content = ( - "This is a very long message that will exceed our size limits. " * 1000 - ) - - sentry_init( - integrations=[OpenAIAgentsIntegration()], - traces_sample_rate=1.0, - send_default_pii=True, - ) - - test_messages = [ - {"role": "user", "content": large_content}, - {"role": "assistant", "content": large_content}, - {"role": "user", "content": "small message 4"}, - {"role": "assistant", "content": "small message 5"}, - ] - - get_response_kwargs = {"input": test_messages} - - with start_span(op="gen_ai.chat") as span: - scope = sentry_sdk.get_current_scope() - _set_input_data(span, get_response_kwargs) - if hasattr(scope, "_gen_ai_original_message_count"): - truncated_count = scope._gen_ai_original_message_count.get(span.span_id) - assert truncated_count == 4, ( - f"Expected 4 original messages, got {truncated_count}" - ) - - assert SPANDATA.GEN_AI_REQUEST_MESSAGES in span._data - messages_data = span._data[SPANDATA.GEN_AI_REQUEST_MESSAGES] - assert isinstance(messages_data, str) - - parsed_messages = json.loads(messages_data) - assert isinstance(parsed_messages, list) - assert len(parsed_messages) == 1 - assert "small message 5" in str(parsed_messages[0]) - - @pytest.mark.asyncio async def test_streaming_span_update_captures_response_data( sentry_init, test_agent, mock_usage From 0cef4a9a6ff71ab5922e53ca6e52ea41cfd376ab Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Tue, 21 Apr 2026 09:06:05 +0200 Subject: [PATCH 2/2] update integration --- .../openai_agents/spans/invoke_agent.py | 16 +++++----------- sentry_sdk/integrations/openai_agents/utils.py | 17 ++++++----------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py index 27f9fdab25..25ee3391f4 100644 --- a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +++ b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py @@ -3,7 +3,6 @@ get_start_span_function, set_data_normalized, normalize_message_roles, - truncate_and_annotate_messages, ) from sentry_sdk.consts import OP, SPANDATA from sentry_sdk.scope import should_send_default_pii @@ -63,17 +62,12 @@ def invoke_agent_span( if len(messages) > 0: normalized_messages = normalize_message_roles(messages) - scope = sentry_sdk.get_current_scope() - messages_data = truncate_and_annotate_messages( - normalized_messages, span, scope + set_data_normalized( + span, + SPANDATA.GEN_AI_REQUEST_MESSAGES, + normalized_messages, + unpack=False, ) - if messages_data is not None: - set_data_normalized( - span, - SPANDATA.GEN_AI_REQUEST_MESSAGES, - messages_data, - unpack=False, - ) _set_agent_data(span, agent) diff --git a/sentry_sdk/integrations/openai_agents/utils.py b/sentry_sdk/integrations/openai_agents/utils.py index ee504b3496..8d2a198309 100644 --- a/sentry_sdk/integrations/openai_agents/utils.py +++ b/sentry_sdk/integrations/openai_agents/utils.py @@ -6,7 +6,6 @@ normalize_message_roles, set_data_normalized, normalize_message_role, - truncate_and_annotate_messages, ) from sentry_sdk.consts import SPANDATA, SPANSTATUS, OP from sentry_sdk.integrations import DidNotEnable @@ -172,16 +171,12 @@ def _set_input_data( } ) - normalized_messages = normalize_message_roles(request_messages) - scope = sentry_sdk.get_current_scope() - messages_data = truncate_and_annotate_messages(normalized_messages, span, scope) - if messages_data is not None: - set_data_normalized( - span, - SPANDATA.GEN_AI_REQUEST_MESSAGES, - messages_data, - unpack=False, - ) + set_data_normalized( + span, + SPANDATA.GEN_AI_REQUEST_MESSAGES, + normalize_message_roles(request_messages), + unpack=False, + ) def _set_output_data(span: "sentry_sdk.tracing.Span", result: "Any") -> None: