diff --git a/python/packages/core/agent_framework/observability.py b/python/packages/core/agent_framework/observability.py index 391c77a3c5..9d36003bee 100644 --- a/python/packages/core/agent_framework/observability.py +++ b/python/packages/core/agent_framework/observability.py @@ -2159,8 +2159,10 @@ def _capture_messages( logging_messages = prepend_instructions_to_messages(normalized_messages, system_instructions) span_messages = [_to_otel_message(message) for message in normalized_messages] prepended_count = len(logging_messages) - len(normalized_messages) - for index, message in enumerate(logging_messages[:prepended_count]): - otel_message = _to_otel_message(message) + prepended_messages = [_to_otel_message(message) for message in logging_messages[:prepended_count]] + for index, (message, otel_message) in enumerate( + zip(logging_messages[:prepended_count], prepended_messages, strict=False) + ): # Reuse the otel message representation for logging instead of calling to_dict() # to avoid expensive Pydantic serialization overhead logger.info( @@ -2171,8 +2173,9 @@ def _capture_messages( MessageListTimestampFilter.INDEX_KEY: index, }, ) - for index, message in enumerate(normalized_messages, start=prepended_count): - otel_message = span_messages[index - prepended_count] + for index, (message, otel_message) in enumerate( + zip(normalized_messages, span_messages, strict=False), start=prepended_count + ): logger.info( otel_message, extra={