From bdacfd15abe88f7f7331848543c8d8ab8ea8fb9e Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 5 Oct 2026 09:40:53 +0200 Subject: [PATCH] chore(openai-agents): Stop setting gen_ai.request.model on Invoke Agent spans --- .../integrations/openai_agents/spans/ai_client.py | 12 ++++++++++++ sentry_sdk/integrations/openai_agents/utils.py | 14 +------------- .../openai_agents/test_openai_agents.py | 8 -------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/sentry_sdk/integrations/openai_agents/spans/ai_client.py b/sentry_sdk/integrations/openai_agents/spans/ai_client.py index 5c095b6b6c..cd269825b8 100644 --- a/sentry_sdk/integrations/openai_agents/spans/ai_client.py +++ b/sentry_sdk/integrations/openai_agents/spans/ai_client.py @@ -15,6 +15,7 @@ HostedMCPTool, ImageGenerationTool, LocalShellTool, + Model, WebSearchTool, ) except ImportError: @@ -216,6 +217,17 @@ def ai_client_context( }, ) + model_name: "Optional[str]" = None + if isinstance(agent.model, Model) and hasattr(agent.model, "model"): + model_name = agent.model.model + elif isinstance(agent.model, str): + model_name = agent.model + elif hasattr(agent, "_sentry_request_model"): + model_name = agent._sentry_request_model + + if model_name: + context.span.set_attribute(SPANDATA.GEN_AI_REQUEST_MODEL, model_name) + _set_agent_data(context.span, agent) if client_options["data_collection"]["gen_ai"]["inputs"]: diff --git a/sentry_sdk/integrations/openai_agents/utils.py b/sentry_sdk/integrations/openai_agents/utils.py index 7d631aff27..ce1f5d9e86 100644 --- a/sentry_sdk/integrations/openai_agents/utils.py +++ b/sentry_sdk/integrations/openai_agents/utils.py @@ -22,7 +22,7 @@ ) if TYPE_CHECKING: - from typing import Any, Optional + from typing import Any from agents import TResponseInputItem, Usage @@ -30,7 +30,6 @@ try: import agents - from agents import Model except ImportError: raise DidNotEnable("OpenAI Agents not installed") @@ -56,17 +55,6 @@ def _set_agent_data(span: "Span", agent: "agents.Agent") -> None: SPANDATA.GEN_AI_REQUEST_MAX_TOKENS, agent.model_settings.max_tokens ) - model_name: "Optional[str]" = None - if isinstance(agent.model, Model) and hasattr(agent.model, "model"): - model_name = agent.model.model - elif isinstance(agent.model, str): - model_name = agent.model - elif hasattr(agent, "_sentry_request_model"): - model_name = agent._sentry_request_model - - if model_name: - span.set_attribute(SPANDATA.GEN_AI_REQUEST_MODEL, model_name) - if agent.model_settings.presence_penalty: span.set_attribute( SPANDATA.GEN_AI_REQUEST_PRESENCE_PENALTY, diff --git a/tests/integrations/openai_agents/test_openai_agents.py b/tests/integrations/openai_agents/test_openai_agents.py index 4b3048dc3d..79d5a4ec09 100644 --- a/tests/integrations/openai_agents/test_openai_agents.py +++ b/tests/integrations/openai_agents/test_openai_agents.py @@ -484,7 +484,6 @@ async def test_agent_invocation_span_no_sensitive_data( assert invoke_agent_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" assert invoke_agent_span["attributes"]["gen_ai.agent.name"] == "test_agent" assert invoke_agent_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert invoke_agent_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert invoke_agent_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert invoke_agent_span["attributes"]["gen_ai.request.top_p"] == 1.0 @@ -765,7 +764,6 @@ async def test_agent_invocation_span( assert invoke_agent_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" assert invoke_agent_span["attributes"]["gen_ai.agent.name"] == "test_agent" assert invoke_agent_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert invoke_agent_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert invoke_agent_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert invoke_agent_span["attributes"]["gen_ai.request.top_p"] == 1.0 @@ -888,7 +886,6 @@ def test_agent_invocation_span_sync_no_sensitive_data( assert invoke_agent_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" assert invoke_agent_span["attributes"]["gen_ai.agent.name"] == "test_agent" assert invoke_agent_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert invoke_agent_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert invoke_agent_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert invoke_agent_span["attributes"]["gen_ai.request.top_p"] == 1.0 @@ -1153,7 +1150,6 @@ def test_agent_invocation_span_sync( assert invoke_agent_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" assert invoke_agent_span["attributes"]["gen_ai.agent.name"] == "test_agent" assert invoke_agent_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert invoke_agent_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert invoke_agent_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert invoke_agent_span["attributes"]["gen_ai.request.top_p"] == 1.0 @@ -1303,7 +1299,6 @@ async def test_tool_execution_span( assert agent_span["attributes"]["gen_ai.operation.name"] == "invoke_agent" assert agent_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert agent_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert agent_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert agent_span["attributes"]["gen_ai.request.top_p"] == 1.0 assert agent_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" @@ -1370,7 +1365,6 @@ async def test_tool_execution_span( assert tool_span["attributes"]["gen_ai.operation.name"] == "execute_tool" assert tool_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert tool_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert tool_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert tool_span["attributes"]["gen_ai.request.top_p"] == 1.0 assert tool_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" @@ -1563,7 +1557,6 @@ async def test_run_streamed_tool_execution_span( assert agent_span["attributes"]["gen_ai.operation.name"] == "invoke_agent" assert agent_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert agent_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert agent_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert agent_span["attributes"]["gen_ai.request.top_p"] == 1.0 assert agent_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai" @@ -1573,7 +1566,6 @@ async def test_run_streamed_tool_execution_span( assert tool_span["attributes"]["gen_ai.operation.name"] == "execute_tool" assert tool_span["attributes"]["gen_ai.request.max_tokens"] == 100 - assert tool_span["attributes"]["gen_ai.request.model"] == "gpt-4" assert tool_span["attributes"]["gen_ai.request.temperature"] == 0.7 assert tool_span["attributes"]["gen_ai.request.top_p"] == 1.0 assert tool_span["attributes"][SPANDATA.GEN_AI_PROVIDER_NAME] == "openai"