I wondered why the standard deviation always has to be positive. I found the following answers: answer 1, answer 2.
There's a lot of people saying that the standard deviation is positive because it's the root of a positive number, and hence by definition positive.. I don't think this is true since every positive number has a negative square root ($\sqrt4 = -2$).
However, I assume that we just agree that the standard deviation is positive because it's indicates a distance from the mean. Is that correct; that it's just agreed on?
Yes and no. The standard deviation is always positive precisely because of the agreed on convention you state - it measures a distance (either way) from the mean.
But you're wrong about square roots. Every positive real number has two of them. but only the positive one is meant when you use the $\sqrt{}$ sign. (That's another convention.)