diff --git a/src/strands/telemetry/tracer.py b/src/strands/telemetry/tracer.py index 2f42d9988..dcea03d74 100644 --- a/src/strands/telemetry/tracer.py +++ b/src/strands/telemetry/tracer.py @@ -667,18 +667,9 @@ def end_agent_span( ) if hasattr(response, "metrics") and hasattr(response.metrics, "accumulated_usage"): - accumulated_usage = response.metrics.accumulated_usage - attributes.update( - { - "gen_ai.usage.prompt_tokens": accumulated_usage["inputTokens"], - "gen_ai.usage.completion_tokens": accumulated_usage["outputTokens"], - "gen_ai.usage.input_tokens": accumulated_usage["inputTokens"], - "gen_ai.usage.output_tokens": accumulated_usage["outputTokens"], - "gen_ai.usage.total_tokens": accumulated_usage["totalTokens"], - "gen_ai.usage.cache_read_input_tokens": accumulated_usage.get("cacheReadInputTokens", 0), - "gen_ai.usage.cache_write_input_tokens": accumulated_usage.get("cacheWriteInputTokens", 0), - } - ) + # Attributes removed to prevent double counting in OpenTelemetry backends + # Usage metrics are already reported on the child model invocation spans + pass self._end_span(span, attributes, error)