2828
2929
3030try :
31- from langchain_core .messages import BaseMessage , MessageStreamEvent
31+ from langchain_core .messages import BaseMessage
3232 from langchain_core .outputs import LLMResult
3333 from langchain_core .callbacks import (
3434 manager ,
@@ -714,20 +714,31 @@ def new_invoke(self, *args, **kwargs):
714714 if integration is None :
715715 return f (self , * args , ** kwargs )
716716
717+ try :
718+ agent_name = self .agent .runnable .config .get ("run_name" )
719+ except Exception :
720+ agent_name = ""
721+
717722 # Create a span that will act as the parent for all callback-generated spans
718723 with sentry_sdk .start_span (
719724 op = OP .GEN_AI_INVOKE_AGENT ,
720- name = "AgentExecutor.invoke" ,
725+ name = f"invoke_agent { agent_name } " . strip () ,
721726 origin = LangchainIntegration .origin ,
722727 ) as span :
723728 span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "invoke_agent" )
729+ if agent_name != "" :
730+ span .set_data (SPANDATA .GEN_AI_AGENT_NAME , agent_name )
724731
732+ model_name = ""
725733 if hasattr (self , "agent" ) and hasattr (self .agent , "llm" ):
726- model_name = getattr (self .agent .llm , "model_name" , None ) or getattr (
727- self .agent .llm , "model" , None
734+ model_name = (
735+ getattr (self .agent .llm , "model_name" , None )
736+ or getattr (self .agent .llm , "model" , None )
737+ or ""
728738 )
729- if model_name :
730- span .set_data (SPANDATA .GEN_AI_REQUEST_MODEL , model_name )
739+
740+ if model_name != "" :
741+ span .set_data (SPANDATA .GEN_AI_REQUEST_MODEL , model_name )
731742
732743 return f (self , * args , ** kwargs )
733744
@@ -744,35 +755,44 @@ def new_stream(self, *args, **kwargs):
744755 if integration is None :
745756 return f (self , * args , ** kwargs )
746757
758+ try :
759+ agent_name = self .agent .runnable .config .get ("run_name" )
760+ except Exception :
761+ agent_name = ""
762+
747763 # Create a span that will act as the parent for all callback-generated spans
748764 span = sentry_sdk .start_span (
749765 op = OP .GEN_AI_INVOKE_AGENT ,
750- name = "AgentExecutor.stream" ,
766+ name = f"invoke_agent { agent_name } " . strip () ,
751767 origin = LangchainIntegration .origin ,
752768 )
753769 span .__enter__ ()
754770
755771 span .set_data (SPANDATA .GEN_AI_OPERATION_NAME , "invoke_agent" )
756772
773+ model_name = ""
757774 if hasattr (self , "agent" ) and hasattr (self .agent , "llm" ):
758- model_name = getattr (self .agent .llm , "model_name" , None ) or getattr (
759- self .agent .llm , "model" , None
775+ model_name = (
776+ getattr (self .agent .llm , "model_name" , None )
777+ or getattr (self .agent .llm , "model" , None )
778+ or ""
760779 )
761- if model_name :
762- span .set_data (SPANDATA .GEN_AI_REQUEST_MODEL , model_name )
780+
781+ if model_name != "" :
782+ span .set_data (SPANDATA .GEN_AI_REQUEST_MODEL , model_name )
763783
764784 result = f (self , * args , ** kwargs )
765785 old_iterator = result
766786
767787 def new_iterator ():
768- # type: () -> Iterator[MessageStreamEvent ]
788+ # type: () -> Iterator[Any ]
769789 for event in old_iterator :
770790 # import ipdb; ipdb.set_trace()
771791 yield event
772792 span .__exit__ (None , None , None )
773793
774794 async def new_iterator_async ():
775- # type: () -> AsyncIterator[MessageStreamEvent ]
795+ # type: () -> AsyncIterator[Any ]
776796 async for event in old_iterator :
777797 yield event
778798
0 commit comments