99
1010if TYPE_CHECKING :
1111 from typing import Any , Optional
12+ from pydantic_ai ._tool_manager import ToolDefinition # type: ignore
1213
1314
1415def execute_tool_span (
15- tool_name : str , tool_args : "Any" , agent : "Any" , tool_type : str = "function"
16+ tool_name : str ,
17+ tool_args : "Any" ,
18+ agent : "Any" ,
19+ tool_type : str = "function" ,
20+ tool_definition : "Optional[ToolDefinition]" = None ,
1621) -> "sentry_sdk.tracing.Span" :
1722 """Create a span for tool execution.
1823
@@ -21,6 +26,7 @@ def execute_tool_span(
2126 tool_args: The arguments passed to the tool
2227 agent: The agent executing the tool
2328 tool_type: The type of tool ("function" for regular tools, "mcp" for MCP services)
29+ tool_definition: The definition of the tool, if available
2430 """
2531 span = sentry_sdk .start_span (
2632 op = OP .GEN_AI_EXECUTE_TOOL ,
@@ -32,6 +38,12 @@ def execute_tool_span(
3238 span .set_data (SPANDATA .GEN_AI_TOOL_TYPE , tool_type )
3339 span .set_data (SPANDATA .GEN_AI_TOOL_NAME , tool_name )
3440
41+ if tool_definition is not None and hasattr (tool_definition , "description" ):
42+ span .set_data (
43+ SPANDATA .GEN_AI_TOOL_DESCRIPTION ,
44+ tool_definition .description ,
45+ )
46+
3547 _set_agent_data (span , agent )
3648
3749 if _should_send_prompts () and tool_args is not None :
0 commit comments