@@ -433,7 +433,7 @@ def on_chat_model_start(
433433 )
434434
435435 run_name = kwargs .get ("name" )
436- if run_name is not None :
436+ if run_name :
437437 span .set_data (
438438 SPANDATA .GEN_AI_PIPELINE_NAME ,
439439 run_name ,
@@ -772,7 +772,9 @@ def _record_token_usage(span: "Span", response: "Any") -> None:
772772 span .set_data (SPANDATA .GEN_AI_USAGE_TOTAL_TOKENS , total_tokens )
773773
774774
775- def _get_available_tools (obj : "Any" ) -> "Optional[List[Any]]" :
775+ def _get_request_data (
776+ obj : "Any" , args : "Any" , kwargs : "Any"
777+ ) -> "tuple[Optional[str], Optional[List[Any]]]" :
776778 """
777779 Get the agent name and available tools for the agent.
778780 """
@@ -787,13 +789,6 @@ def _get_available_tools(obj: "Any") -> "Optional[List[Any]]":
787789 )
788790 tools = tools if tools and len (tools ) > 0 else None
789791
790- return tools
791-
792-
793- def _get_run_name (obj : "Any" , args : "Any" ) -> "Optional[str]" :
794- agent = getattr (obj , "agent" , None )
795- runnable = getattr (agent , "runnable" , None )
796- runnable_config = getattr (runnable , "config" , {})
797792 try :
798793 agent_name = None
799794 if len (args ) > 1 :
@@ -803,7 +798,7 @@ def _get_run_name(obj: "Any", args: "Any") -> "Optional[str]":
803798 except Exception :
804799 pass
805800
806- return agent_name
801+ return ( agent_name , tools )
807802
808803
809804def _simplify_langchain_tools (tools : "Any" ) -> "Optional[List[Any]]" :
@@ -971,8 +966,9 @@ def new_invoke(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
971966 if integration is None :
972967 return f (self , * args , ** kwargs )
973968
969+ run_name , tools = _get_request_data (self , args , kwargs )
974970 start_span_function = get_start_span_function ()
975- run_name = _get_run_name ( self , args )
971+
976972 with start_span_function (
977973 op = OP .GEN_AI_INVOKE_AGENT ,
978974 name = f"invoke_agent { run_name } " if run_name else "invoke_agent" ,
@@ -984,7 +980,6 @@ def new_invoke(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
984980 span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "invoke_agent" )
985981 span .set_data (SPANDATA .GEN_AI_RESPONSE_STREAMING , False )
986982
987- tools = _get_available_tools (self )
988983 _set_tools_on_span (span , tools )
989984
990985 # Run the agent
@@ -1029,21 +1024,22 @@ def new_stream(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
10291024 if integration is None :
10301025 return f (self , * args , ** kwargs )
10311026
1027+ run_name , tools = _get_request_data (self , args , kwargs )
10321028 start_span_function = get_start_span_function ()
10331029
1034- run_name = _get_run_name (self , args )
1035-
10361030 span = start_span_function (
10371031 op = OP .GEN_AI_INVOKE_AGENT ,
10381032 name = f"invoke_agent { run_name } " if run_name else "invoke_agent" ,
10391033 origin = LangchainIntegration .origin ,
10401034 )
10411035 span .__enter__ ()
10421036
1037+ if run_name :
1038+ span .set_data (SPANDATA .GEN_AI_AGENT_NAME , run_name )
1039+
10431040 span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "invoke_agent" )
10441041 span .set_data (SPANDATA .GEN_AI_RESPONSE_STREAMING , True )
10451042
1046- tools = _get_available_tools (self )
10471043 _set_tools_on_span (span , tools )
10481044
10491045 input = args [0 ].get ("input" ) if len (args ) >= 1 else None
0 commit comments