Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ async def calculator_handler(args):
assert task_span["output"] is not None

assert result_message is not None, "Should have received result message"
assert getattr(result_message, "result", None) is not None
assert task_span["output"] == result_message.result
if hasattr(result_message, "num_turns"):
assert task_span.get("metadata", {}).get("num_turns") is not None
if hasattr(result_message, "session_id"):
Expand Down
12 changes: 11 additions & 1 deletion py/src/braintrust/integrations/claude_agent_sdk/tracing.py
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,7 @@ def __init__(
self._task_order: list[str | None] = []

self._final_results: list[dict[str, Any]] = []
self._result_output: Any | None = None
self._task_events: list[dict[str, Any]] = []

_thread_local.tool_span_tracker = self._tool_tracker
Expand All @@ -609,7 +610,11 @@ def add(self, message: Any) -> None:
self._handle_system(message)

def log_output(self) -> None:
"""Log the last accumulated assistant message as the root span output."""
"""Log the canonical root span output for the request."""
if self._result_output is not None:
self._root_span.log(output=self._result_output)
return

if self._final_results:
self._root_span.log(output=self._final_results[-1])

Expand Down Expand Up @@ -715,6 +720,11 @@ def _handle_result(self, message: Any) -> None:
ctx = self._get_context(None)
if ctx.llm_span and (usage_metrics or usage_metadata):
ctx.llm_span.log(metrics=usage_metrics or None, metadata=usage_metadata or None)

result_value = getattr(message, "result", None)
if result_value is not None:
self._result_output = result_value

result_metadata = {
k: v
for k, v in {
Expand Down
Loading