diff --git a/sentry_sdk/integrations/openai_agents/spans/ai_client.py b/sentry_sdk/integrations/openai_agents/spans/ai_client.py index 225c873762..ffe5b12ffe 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: @@ -218,6 +219,17 @@ def ai_client_context( context.span.set_attribute(SPANDATA.GEN_AI_PROVIDER_NAME, "openai") + request_model_name: "Optional[str]" = None + if isinstance(agent.model, Model) and hasattr(agent.model, "model"): + request_model_name = agent.model.model + elif isinstance(agent.model, str): + request_model_name = agent.model + elif hasattr(agent, "_sentry_request_model"): + request_model_name = agent._sentry_request_model + + if request_model_name: + context.span.set_attribute(SPANDATA.GEN_AI_REQUEST_MODEL, request_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 84330cdf51..8d4a22e636 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") @@ -53,17 +52,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 6bd507c511..505239f74e 100644 --- a/tests/integrations/openai_agents/test_openai_agents.py +++ b/tests/integrations/openai_agents/test_openai_agents.py @@ -483,7 +483,6 @@ async def test_agent_invocation_span_no_sensitive_data( assert invoke_agent_span["attributes"]["gen_ai.operation.name"] == "invoke_agent" 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 @@ -763,7 +762,6 @@ async def test_agent_invocation_span( assert invoke_agent_span["attributes"]["gen_ai.operation.name"] == "invoke_agent" 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 @@ -885,7 +883,6 @@ def test_agent_invocation_span_sync_no_sensitive_data( assert invoke_agent_span["attributes"]["gen_ai.operation.name"] == "invoke_agent" 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 @@ -1149,7 +1146,6 @@ def test_agent_invocation_span_sync( assert invoke_agent_span["attributes"]["gen_ai.operation.name"] == "invoke_agent" 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 @@ -1299,7 +1295,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 @@ -1365,7 +1360,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"]["gen_ai.tool.description"] == "A simple tool" @@ -1557,7 +1551,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 @@ -1566,7 +1559,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"]["gen_ai.tool.description"] == "A simple tool"