If you don’t average the word vectors, you skew your sentence embeddings w.r.t, the sentence lengths. Say you have three “sentences”

“dog cat horse”
“dog cat horse dog cat horse”
“dog cat horse dog cat horse dog cat horse”

If you add the word embeddings you get different sentence embeddings. In short, your sentence embedding scale up with the sentence lengths. Averaging the word embeddings makes the sentence embedding agnostic to the sentence lengths. In the example above, the 3 resulting sentence embeddings are the same, which is what you would want.
When it comes to RNNs, the sentence embedding essentially stems from the last hidden state. Note, that output is conventionally refers to all hidden states for a sequence. But in this case, I would recommend to get first familiar with RNNs in PyTorch. There are lots o tutorials.