On my Ubuntu machine, I simply use Keychain to maintain a single ssh-agent which stays logged in.
I'd like something similar to that on Windows now that OpenSSH is natively included. I was using Git Bash with the well-known
if [ -z "$SSH_AUTH_SOCK" ] ; then ... script but this resulted in many ssh agents being opened, I knew it was advised against (partly due to this blog post: http://rabexc.org/posts/pitfalls-of-ssh-agents) - which is what made me get Keychain for Ubuntu. Another reason for not using this any more is that I'm moving to PowerShell as my main shell.
But I'm not sure how to achieve the same kind of thing on Windows specifically with PowerShell and with Win32-OpenSSH.