Skip to content

Commit 7c30a05

Browse files
ref(openai-agents): Stop setting gen_ai.request.available_tools on Execute Tool spans
1 parent ee8639e commit 7c30a05

4 files changed

Lines changed: 22 additions & 23 deletions

File tree

sentry_sdk/integrations/openai_agents/spans/ai_client.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from sentry_sdk.consts import OP, SPANDATA
55
from sentry_sdk.traces import StreamedSpan
66
from sentry_sdk.tracing_utils import has_span_streaming_enabled
7+
from sentry_sdk.utils import safe_serialize
78

89
from ..consts import SPAN_ORIGIN
910
from ..utils import (
@@ -40,6 +41,8 @@ def ai_client_span(
4041
SPANDATA.GEN_AI_OPERATION_NAME: "chat",
4142
},
4243
)
44+
45+
set_on_span = span.set_attribute
4346
else:
4447
span = sentry_sdk.start_span(
4548
op=OP.GEN_AI_CHAT,
@@ -49,7 +52,16 @@ def ai_client_span(
4952
# TODO-anton: remove hardcoded stuff and replace something that also works for embedding and so on
5053
span.set_data(SPANDATA.GEN_AI_OPERATION_NAME, "chat")
5154

55+
set_on_span = span.set_data
56+
5257
_set_agent_data(span, agent)
58+
59+
if len(agent.tools) > 0:
60+
set_on_span(
61+
SPANDATA.GEN_AI_REQUEST_AVAILABLE_TOOLS,
62+
safe_serialize([vars(tool) for tool in agent.tools]),
63+
)
64+
5365
_set_input_data(span, get_response_kwargs)
5466

5567
return span

sentry_sdk/integrations/openai_agents/spans/invoke_agent.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ def invoke_agent_span(
3838
SPANDATA.GEN_AI_OPERATION_NAME: "invoke_agent",
3939
},
4040
)
41+
42+
set_on_span = span.set_attribute
4143
else:
4244
start_span_function = get_start_span_function()
4345
span = start_span_function(
@@ -49,6 +51,8 @@ def invoke_agent_span(
4951

5052
span.set_data(SPANDATA.GEN_AI_OPERATION_NAME, "invoke_agent")
5153

54+
set_on_span = span.set_data
55+
5256
if should_send_default_pii():
5357
messages = []
5458
if agent.instructions:
@@ -97,6 +101,12 @@ def invoke_agent_span(
97101

98102
_set_agent_data(span, agent)
99103

104+
if len(agent.tools) > 0:
105+
set_on_span(
106+
SPANDATA.GEN_AI_REQUEST_AVAILABLE_TOOLS,
107+
safe_serialize([vars(tool) for tool in agent.tools]),
108+
)
109+
100110
return span
101111

102112

sentry_sdk/integrations/openai_agents/utils.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,6 @@ def _set_agent_data(
9090
agent.model_settings.frequency_penalty,
9191
)
9292

93-
if len(agent.tools) > 0:
94-
set_on_span(
95-
SPANDATA.GEN_AI_REQUEST_AVAILABLE_TOOLS,
96-
safe_serialize([vars(tool) for tool in agent.tools]),
97-
)
98-
9993

10094
def _set_usage_data(
10195
span: "Union[sentry_sdk.tracing.Span, StreamedSpan]", usage: "Usage"

tests/integrations/openai_agents/test_openai_agents.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2073,12 +2073,6 @@ def simple_test_tool(message: str) -> str:
20732073
assert tool_span["attributes"]["gen_ai.agent.name"] == "test_agent"
20742074
assert tool_span["attributes"]["gen_ai.operation.name"] == "execute_tool"
20752075

2076-
tool_span_available_tool = json.loads(
2077-
tool_span["attributes"]["gen_ai.request.available_tools"]
2078-
)[0]
2079-
2080-
assert all(tool_span_available_tool[k] == v for k, v in available_tool.items())
2081-
20822076
assert tool_span["attributes"]["gen_ai.request.max_tokens"] == 100
20832077
assert tool_span["attributes"]["gen_ai.request.model"] == "gpt-4"
20842078
assert tool_span["attributes"]["gen_ai.request.temperature"] == 0.7
@@ -2305,12 +2299,6 @@ def simple_test_tool(message: str) -> str:
23052299
assert tool_span["attributes"]["gen_ai.agent.name"] == "test_agent"
23062300
assert tool_span["attributes"]["gen_ai.operation.name"] == "execute_tool"
23072301

2308-
tool_span_available_tool = json.loads(
2309-
tool_span["attributes"]["gen_ai.request.available_tools"]
2310-
)[0]
2311-
2312-
assert all(tool_span_available_tool[k] == v for k, v in available_tool.items())
2313-
23142302
assert tool_span["attributes"]["gen_ai.request.max_tokens"] == 100
23152303
assert tool_span["attributes"]["gen_ai.request.model"] == "gpt-4"
23162304
assert tool_span["attributes"]["gen_ai.request.temperature"] == 0.7
@@ -2525,11 +2513,6 @@ def simple_test_tool(message: str) -> str:
25252513
assert tool_span["data"]["gen_ai.agent.name"] == "test_agent"
25262514
assert tool_span["data"]["gen_ai.operation.name"] == "execute_tool"
25272515

2528-
tool_span_available_tool = json.loads(
2529-
tool_span["data"]["gen_ai.request.available_tools"]
2530-
)[0]
2531-
assert all(tool_span_available_tool[k] == v for k, v in available_tool.items())
2532-
25332516
assert tool_span["data"]["gen_ai.request.max_tokens"] == 100
25342517
assert tool_span["data"]["gen_ai.request.model"] == "gpt-4"
25352518
assert tool_span["data"]["gen_ai.request.temperature"] == 0.7

0 commit comments

Comments
 (0)