Skip to content

Commit 6c0d172

Browse files
authored
updated tool span (#4695)
should now have everything it needs.
1 parent b0a2c7c commit 6c0d172

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

sentry_sdk/integrations/langchain.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -523,28 +523,31 @@ def on_tool_start(self, serialized, input_str, *, run_id, **kwargs):
523523
with capture_internal_exceptions():
524524
if not run_id:
525525
return
526+
527+
tool_name = serialized.get("name") or kwargs.get("name")
528+
526529
watched_span = self._create_span(
527530
run_id,
528531
kwargs.get("parent_run_id"),
529532
op=OP.GEN_AI_EXECUTE_TOOL,
530-
name=serialized.get("name") or kwargs.get("name") or "AI tool usage",
533+
name=f"execute_tool {tool_name}",
531534
origin=LangchainIntegration.origin,
532535
)
533-
watched_span.span.set_data(
534-
SPANDATA.GEN_AI_TOOL_NAME, serialized.get("name")
535-
)
536+
span = watched_span.span
537+
538+
span.set_data(SPANDATA.GEN_AI_OPERATION_NAME, "execute_tool")
539+
span.set_data(SPANDATA.GEN_AI_TOOL_NAME, tool_name)
540+
541+
tool_description = serialized.get("description")
542+
if tool_description is not None:
543+
span.set_data(SPANDATA.GEN_AI_TOOL_DESCRIPTION, tool_description)
544+
536545
if should_send_default_pii() and self.include_prompts:
537546
set_data_normalized(
538-
watched_span.span,
539-
SPANDATA.GEN_AI_REQUEST_MESSAGES,
547+
span,
548+
SPANDATA.GEN_AI_TOOL_INPUT,
540549
kwargs.get("inputs", [input_str]),
541550
)
542-
if kwargs.get("metadata"):
543-
set_data_normalized(
544-
watched_span.span,
545-
SPANDATA.GEN_AI_REQUEST_METADATA,
546-
kwargs.get("metadata"),
547-
)
548551

549552
def on_tool_end(self, output, *, run_id, **kwargs):
550553
# type: (SentryLangchainCallback, str, UUID, Any) -> Any
@@ -557,19 +560,18 @@ def on_tool_end(self, output, *, run_id, **kwargs):
557560
if not span_data:
558561
return
559562
if should_send_default_pii() and self.include_prompts:
560-
set_data_normalized(
561-
span_data.span, SPANDATA.GEN_AI_RESPONSE_TEXT, output
562-
)
563+
set_data_normalized(span_data.span, SPANDATA.GEN_AI_TOOL_OUTPUT, output)
563564
self._exit_span(span_data, run_id)
564565

565566
def on_tool_error(self, error, *args, run_id, **kwargs):
566567
# type: (SentryLangchainCallback, Union[Exception, KeyboardInterrupt], UUID, Any) -> Any
567568
"""Run when tool errors."""
568-
# TODO(shellmayr): how to correctly set the status when the toolfails
569+
# TODO(shellmayr): how to correctly set the status when the tool fails?
569570
if run_id and run_id in self.span_map:
570571
span_data = self.span_map[run_id]
571572
if span_data:
572573
span_data.span.set_status("unknown")
574+
573575
self._handle_error(run_id, error)
574576

575577

0 commit comments

Comments
 (0)