diff --git a/sentry_sdk/integrations/openai_agents/__init__.py b/sentry_sdk/integrations/openai_agents/__init__.py index 94c5ecc7a5..b704ed3d0c 100644 --- a/sentry_sdk/integrations/openai_agents/__init__.py +++ b/sentry_sdk/integrations/openai_agents/__init__.py @@ -143,6 +143,18 @@ def new_wrapped_get_model( agents.run_internal.run_loop.get_model = new_wrapped_get_model + if not use_run_hooks and hasattr(run_loop, "get_all_tools"): + original_get_all_tools = run_loop.get_all_tools + @wraps(original_get_all_tools) + async def new_wrapped_get_all_tools( + agent: "agents.Agent", context_wrapper: "agents.RunContextWrapper" + ) -> "list[agents.Tool]": + return await _get_all_tools( + original_get_all_tools, agent, context_wrapper + ) + agents.run_internal.run_loop.get_all_tools = new_wrapped_get_all_tools + + if turn_resolution is not None: original_execute_handoffs = turn_resolution.execute_handoffs