Skip to content

Commit 7a4cd05

Browse files
committed
agent name
1 parent 9a68a32 commit 7a4cd05

File tree

1 file changed

+33
-13
lines changed

1 file changed

+33
-13
lines changed

sentry_sdk/integrations/langchain.py

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929

3030
try:
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

Comments
 (0)