Skip to content

Commit ed3e824

Browse files
Merge branch 'webb/langchain/agent-name' into webb/langchain/pipeline-name
2 parents 568e6f7 + b9387b8 commit ed3e824

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

sentry_sdk/integrations/langchain.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

802797
def _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

Comments
 (0)