Skip to content

Commit bf0ad2e

Browse files
chore(pydantic-ai): Stop setting gen_ai.request.model on Invoke Agent spans (#7856)
Remove the request model from Invoke Agent spans because it is ambiguous for an agent that can call different models in the course of its execution.
1 parent b565fbd commit bf0ad2e

5 files changed

Lines changed: 9 additions & 19 deletions

File tree

‎sentry_sdk/integrations/pydantic_ai/__init__.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ async def sentry_wrap_run(
127127
with sentry_sdk.isolation_scope(), invoke_agent_span(
128128
user_prompt=ctx.prompt,
129129
agent=ctx.agent,
130-
model=ctx.model,
131130
model_settings=ctx.model_settings,
132131
) as span:
133132
try:

‎sentry_sdk/integrations/pydantic_ai/spans/ai_client.py‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,12 @@ def ai_client_context(
301301
if hasattr(model_obj, "system"):
302302
context.span.set_attribute(SPANDATA.GEN_AI_PROVIDER_NAME, model_obj.system)
303303

304-
_set_model_data(context.span, agent, model, model_settings)
304+
# Set model name
305+
model_name = _get_model_name(model_obj)
306+
if model_name:
307+
context.span.set_attribute(SPANDATA.GEN_AI_REQUEST_MODEL, model_name)
308+
309+
_set_model_data(context.span, agent, model_settings)
305310
_set_available_tools(context.span, agent)
306311

307312
# Set input messages (full conversation history)

‎sentry_sdk/integrations/pydantic_ai/spans/invoke_agent.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
from typing import Any, Optional, Sequence, Union
2323

2424
from pydantic_ai import Agent, UserContent
25-
from pydantic_ai.models import AbstractModel
2625
from pydantic_ai.realtime.settings import RealtimeModelSettings
2726
from pydantic_ai.settings import ModelSettings
2827

@@ -36,7 +35,6 @@
3635
def invoke_agent_span(
3736
user_prompt: "Optional[Union[str, Sequence[UserContent]]]",
3837
agent: "Optional[Agent]",
39-
model: "AbstractModel",
4038
model_settings: "Optional[Union[ModelSettings, RealtimeModelSettings]]",
4139
) -> "Span":
4240
"""Create a span for invoking the agent."""
@@ -55,7 +53,7 @@ def invoke_agent_span(
5553
)
5654

5755
_set_agent_data(span, agent)
58-
_set_model_data(span, agent, model, model_settings)
56+
_set_model_data(span, agent, model_settings)
5957

6058
# Add user prompt and system prompts if available and prompts are enabled
6159
if not sentry_sdk.get_client().options["data_collection"]["gen_ai"]["inputs"]:

‎sentry_sdk/integrations/pydantic_ai/utils.py‎

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ def _get_model_name(
5858
def _set_model_data(
5959
span: "Span",
6060
agent: "Optional[Agent]",
61-
model: "Union[Model, AbstractModel]",
6261
model_settings: "Optional[Union[ModelSettings, RealtimeModelSettings]]",
6362
) -> None:
6463
"""Set model-related data on a span.
@@ -68,17 +67,6 @@ def _set_model_data(
6867
model: Model object (can be None, will try to get from agent if not provided)
6968
model_settings: Model settings (can be None, will try to get from agent if not provided)
7069
"""
71-
# Extract model information
72-
model_obj = model
73-
if not model_obj and agent and hasattr(agent, "model"):
74-
model_obj = agent.model
75-
76-
if model_obj:
77-
# Set model name
78-
model_name = _get_model_name(model_obj)
79-
if model_name:
80-
span.set_attribute(SPANDATA.GEN_AI_REQUEST_MODEL, model_name)
81-
8270
# Extract model settings
8371
settings = model_settings
8472
if not settings and agent and hasattr(agent, "model_settings"):

‎tests/integrations/pydantic_ai/test_pydantic_ai.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2452,7 +2452,7 @@ async def test_invoke_agent_span_with_callable_instruction(
24522452
mock_agent._instructions = ["Static instruction", mock_callable]
24532453

24542454
# Create span
2455-
span = invoke_agent_span("Test prompt", mock_agent, None, None)
2455+
span = invoke_agent_span("Test prompt", mock_agent, None)
24562456
span.end()
24572457

24582458

@@ -2485,7 +2485,7 @@ async def test_invoke_agent_span_with_string_instructions(
24852485
mock_agent._instructions = "Single instruction string"
24862486

24872487
# Create span
2488-
span = invoke_agent_span("Test prompt", mock_agent, None, None)
2488+
span = invoke_agent_span("Test prompt", mock_agent, None)
24892489
span.end()
24902490

24912491

0 commit comments

Comments
 (0)