@@ -765,7 +765,9 @@ def _record_token_usage(span: "Span", response: "Any") -> None:
765765 span .set_data (SPANDATA .GEN_AI_USAGE_TOTAL_TOKENS , total_tokens )
766766
767767
768- def _get_available_tools (obj : "Any" ) -> "Optional[List[Any]]" :
768+ def _get_request_data (
769+ obj : "Any" , args : "Any" , kwargs : "Any"
770+ ) -> "tuple[Optional[str], Optional[List[Any]]]" :
769771 """
770772 Get the agent name and available tools for the agent.
771773 """
@@ -780,13 +782,6 @@ def _get_available_tools(obj: "Any") -> "Optional[List[Any]]":
780782 )
781783 tools = tools if tools and len (tools ) > 0 else None
782784
783- return tools
784-
785-
786- def _get_run_name (obj : "Any" , args : "Any" ) -> "Optional[str]" :
787- agent = getattr (obj , "agent" , None )
788- runnable = getattr (agent , "runnable" , None )
789- runnable_config = getattr (runnable , "config" , {})
790785 try :
791786 agent_name = None
792787 if len (args ) > 1 :
@@ -796,7 +791,7 @@ def _get_run_name(obj: "Any", args: "Any") -> "Optional[str]":
796791 except Exception :
797792 pass
798793
799- return agent_name
794+ return ( agent_name , tools )
800795
801796
802797def _simplify_langchain_tools (tools : "Any" ) -> "Optional[List[Any]]" :
@@ -964,8 +959,9 @@ def new_invoke(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
964959 if integration is None :
965960 return f (self , * args , ** kwargs )
966961
962+ run_name , tools = _get_request_data (self , args , kwargs )
967963 start_span_function = get_start_span_function ()
968- run_name = _get_run_name ( self , args )
964+
969965 with start_span_function (
970966 op = OP .GEN_AI_INVOKE_AGENT ,
971967 name = f"invoke_agent { run_name } " if run_name else "invoke_agent" ,
@@ -977,7 +973,6 @@ def new_invoke(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
977973 span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "invoke_agent" )
978974 span .set_data (SPANDATA .GEN_AI_RESPONSE_STREAMING , False )
979975
980- tools = _get_available_tools (self )
981976 _set_tools_on_span (span , tools )
982977
983978 # Run the agent
@@ -1022,21 +1017,22 @@ def new_stream(self: "Any", *args: "Any", **kwargs: "Any") -> "Any":
10221017 if integration is None :
10231018 return f (self , * args , ** kwargs )
10241019
1020+ run_name , tools = _get_request_data (self , args , kwargs )
10251021 start_span_function = get_start_span_function ()
10261022
1027- run_name = _get_run_name (self , args )
1028-
10291023 span = start_span_function (
10301024 op = OP .GEN_AI_INVOKE_AGENT ,
10311025 name = f"invoke_agent { run_name } " if run_name else "invoke_agent" ,
10321026 origin = LangchainIntegration .origin ,
10331027 )
10341028 span .__enter__ ()
10351029
1030+ if run_name :
1031+ span .set_data (SPANDATA .GEN_AI_AGENT_NAME , run_name )
1032+
10361033 span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "invoke_agent" )
10371034 span .set_data (SPANDATA .GEN_AI_RESPONSE_STREAMING , True )
10381035
1039- tools = _get_available_tools (self )
10401036 _set_tools_on_span (span , tools )
10411037
10421038 input = args [0 ].get ("input" ) if len (args ) >= 1 else None
0 commit comments