From 9f2c047e8f6326d7451efb53c836a545b08d733c Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Thu, 27 Nov 2025 13:12:55 +0100 Subject: [PATCH 1/3] fix(openai-agents): Store invoke_agent span on agents.RunContextWrapper --- sentry_sdk/integrations/openai_agents/patches/agent_run.py | 3 ++- sentry_sdk/integrations/openai_agents/spans/invoke_agent.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sentry_sdk/integrations/openai_agents/patches/agent_run.py b/sentry_sdk/integrations/openai_agents/patches/agent_run.py index 5473915b48..b25bf82ad5 100644 --- a/sentry_sdk/integrations/openai_agents/patches/agent_run.py +++ b/sentry_sdk/integrations/openai_agents/patches/agent_run.py @@ -31,7 +31,8 @@ def _start_invoke_agent_span(context_wrapper, agent, kwargs): """Start an agent invocation span""" # Store the agent on the context wrapper so we can access it later context_wrapper._sentry_current_agent = agent - invoke_agent_span(context_wrapper, agent, kwargs) + span = invoke_agent_span(context_wrapper, agent, kwargs) + context_wrapper._sentry_agent_span = span def _end_invoke_agent_span(context_wrapper, agent, output=None): # type: (agents.RunContextWrapper, agents.Agent, Optional[Any]) -> None diff --git a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py index 2a9c5ebe66..35b83b3e0d 100644 --- a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +++ b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py @@ -75,7 +75,7 @@ def invoke_agent_span(context, agent, kwargs): def update_invoke_agent_span(context, agent, output): # type: (agents.RunContextWrapper, agents.Agent, Any) -> None - span = sentry_sdk.get_current_span() + span = context._sentry_agent_span if span: if should_send_default_pii(): From 4ca61e6aa627ebbf52fd3dcf9d0b356beb338957 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Thu, 27 Nov 2025 13:36:28 +0100 Subject: [PATCH 2/3] be defensive when accessing the agent span --- sentry_sdk/integrations/openai_agents/spans/invoke_agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py index 35b83b3e0d..c221070ae8 100644 --- a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +++ b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py @@ -75,7 +75,7 @@ def invoke_agent_span(context, agent, kwargs): def update_invoke_agent_span(context, agent, output): # type: (agents.RunContextWrapper, agents.Agent, Any) -> None - span = context._sentry_agent_span + span = getattr(context, "_sentry_agent_span", None) if span: if should_send_default_pii(): From bc982ed32ec320303b155a580411b0ebe01de7b5 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Mon, 1 Dec 2025 10:50:00 +0100 Subject: [PATCH 3/3] delattr on exit --- sentry_sdk/integrations/openai_agents/spans/invoke_agent.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py index c221070ae8..63cd10d55e 100644 --- a/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py +++ b/sentry_sdk/integrations/openai_agents/spans/invoke_agent.py @@ -84,3 +84,4 @@ def update_invoke_agent_span(context, agent, output): ) span.__exit__(None, None, None) + delattr(context, "_sentry_agent_span")