I know this is quite some work, but every time I update the server I always update the agents as well. I think it is feasible to create a check in the agents (run every x minutes?) as in: CheckNewVersion().
If there is a new version, download the right one (the agent knows if it’s a 32- or 64-bit version). Since the agent is running as a service with enough rights, it should be feasible to run the installer automatically (in silent mode, with keep existing settings).
Note that this is low priority but is a huge advantage of people managing several build agents. And because the agent is already running as a service, this should be “fairly easy” to implement.
Auto updating of agents is still on the todo list, definitely something we want to implement.