Skip to content

Commit 98fa10a

Browse files
fix(pydantic-ai): Do not fail on new ToolManager._call_tool() parameters (#5084)
Update our patch of `ToolManager._call_tool` to accept arbitrary parameters, preventing unexpected arguments. In version 1.12.0 of `pydantic-ai`, `ToolManager._call_tool` introduced a new parameter, which caused our patch to raise an exception.
1 parent 720440e commit 98fa10a

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

sentry_sdk/integrations/pydantic_ai/patches/tools.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ def _patch_tool_execution():
3737
original_call_tool = ToolManager._call_tool
3838

3939
@wraps(original_call_tool)
40-
async def wrapped_call_tool(self, call, allow_partial, wrap_validation_errors):
41-
# type: (Any, Any, bool, bool) -> Any
40+
async def wrapped_call_tool(self, call, *args, **kwargs):
41+
# type: (Any, Any, *Any, **Any) -> Any
4242

4343
# Extract tool info before calling original
4444
name = call.tool_name
@@ -64,18 +64,14 @@ async def wrapped_call_tool(self, call, allow_partial, wrap_validation_errors):
6464

6565
with execute_tool_span(name, args_dict, agent, tool_type=tool_type) as span:
6666
try:
67-
result = await original_call_tool(
68-
self, call, allow_partial, wrap_validation_errors
69-
)
67+
result = await original_call_tool(self, call, *args, **kwargs)
7068
update_execute_tool_span(span, result)
7169
return result
7270
except Exception as exc:
7371
_capture_exception(exc)
7472
raise exc from None
7573

7674
# No span context - just call original
77-
return await original_call_tool(
78-
self, call, allow_partial, wrap_validation_errors
79-
)
75+
return await original_call_tool(self, call, *args, **kwargs)
8076

8177
ToolManager._call_tool = wrapped_call_tool

tox.ini

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ envlist =
103103
{py3.10,py3.13,py3.14,py3.14t}-openai_agents-v0.5.0
104104

105105
{py3.10,py3.12,py3.13}-pydantic_ai-v1.0.18
106-
{py3.10,py3.12,py3.13}-pydantic_ai-v1.3.0
107-
{py3.10,py3.12,py3.13}-pydantic_ai-v1.6.0
108-
{py3.10,py3.12,py3.13}-pydantic_ai-v1.10.0
106+
{py3.10,py3.12,py3.13}-pydantic_ai-v1.4.0
107+
{py3.10,py3.12,py3.13}-pydantic_ai-v1.8.0
108+
{py3.10,py3.12,py3.13}-pydantic_ai-v1.12.0
109109

110110

111111
# ~~~ Cloud ~~~
@@ -434,9 +434,9 @@ deps =
434434
openai_agents: pytest-asyncio
435435

436436
pydantic_ai-v1.0.18: pydantic-ai==1.0.18
437-
pydantic_ai-v1.3.0: pydantic-ai==1.3.0
438-
pydantic_ai-v1.6.0: pydantic-ai==1.6.0
439-
pydantic_ai-v1.10.0: pydantic-ai==1.10.0
437+
pydantic_ai-v1.4.0: pydantic-ai==1.4.0
438+
pydantic_ai-v1.8.0: pydantic-ai==1.8.0
439+
pydantic_ai-v1.12.0: pydantic-ai==1.12.0
440440
pydantic_ai: pytest-asyncio
441441

442442

0 commit comments

Comments
 (0)