@@ -523,28 +523,31 @@ def on_tool_start(self, serialized, input_str, *, run_id, **kwargs):
523523 with capture_internal_exceptions ():
524524 if not run_id :
525525 return
526+
527+ tool_name = serialized .get ("name" ) or kwargs .get ("name" )
528+
526529 watched_span = self ._create_span (
527530 run_id ,
528531 kwargs .get ("parent_run_id" ),
529532 op = OP .GEN_AI_EXECUTE_TOOL ,
530- name = serialized . get ( "name" ) or kwargs . get ( "name" ) or "AI tool usage " ,
533+ name = f"execute_tool { tool_name } " ,
531534 origin = LangchainIntegration .origin ,
532535 )
533- watched_span .span .set_data (
534- SPANDATA .GEN_AI_TOOL_NAME , serialized .get ("name" )
535- )
536+ span = watched_span .span
537+
538+ span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "execute_tool" )
539+ span .set_data (SPANDATA .GEN_AI_TOOL_NAME , tool_name )
540+
541+ tool_description = serialized .get ("description" )
542+ if tool_description is not None :
543+ span .set_data (SPANDATA .GEN_AI_TOOL_DESCRIPTION , tool_description )
544+
536545 if should_send_default_pii () and self .include_prompts :
537546 set_data_normalized (
538- watched_span . span ,
539- SPANDATA .GEN_AI_REQUEST_MESSAGES ,
547+ span ,
548+ SPANDATA .GEN_AI_TOOL_INPUT ,
540549 kwargs .get ("inputs" , [input_str ]),
541550 )
542- if kwargs .get ("metadata" ):
543- set_data_normalized (
544- watched_span .span ,
545- SPANDATA .GEN_AI_REQUEST_METADATA ,
546- kwargs .get ("metadata" ),
547- )
548551
549552 def on_tool_end (self , output , * , run_id , ** kwargs ):
550553 # type: (SentryLangchainCallback, str, UUID, Any) -> Any
@@ -557,19 +560,18 @@ def on_tool_end(self, output, *, run_id, **kwargs):
557560 if not span_data :
558561 return
559562 if should_send_default_pii () and self .include_prompts :
560- set_data_normalized (
561- span_data .span , SPANDATA .GEN_AI_RESPONSE_TEXT , output
562- )
563+ set_data_normalized (span_data .span , SPANDATA .GEN_AI_TOOL_OUTPUT , output )
563564 self ._exit_span (span_data , run_id )
564565
565566 def on_tool_error (self , error , * args , run_id , ** kwargs ):
566567 # type: (SentryLangchainCallback, Union[Exception, KeyboardInterrupt], UUID, Any) -> Any
567568 """Run when tool errors."""
568- # TODO(shellmayr): how to correctly set the status when the toolfails
569+ # TODO(shellmayr): how to correctly set the status when the tool fails?
569570 if run_id and run_id in self .span_map :
570571 span_data = self .span_map [run_id ]
571572 if span_data :
572573 span_data .span .set_status ("unknown" )
574+
573575 self ._handle_error (run_id , error )
574576
575577
0 commit comments