Skip to content

Commit 782233e

Browse files
Merge branch 'webb/langchain/pipeline-name' into webb/langchain/tool-pipeline-name
2 parents 471260e + ed3e824 commit 782233e

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

sentry_sdk/integrations/langchain.py

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

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

Comments
 (0)