The phase "User Agent" has become common[ref Wikipedia], pareticularly as it is used in HTTP headers that name. It is well to think about it literally as well. When does software really act as an agent of the user? One way to think about this is that the program does, in each instance, exactly what the user would want it to do if asked specifically.
Looking at ounter examples, programs are not real User Agents if they advertize, if they distribute or sell user data, if they try to persude the user to make choices on soemone else's interests.
We as developers need to rediscover the concept of a user agent. I'd like there to be a standard for one. Operating systems are really important examples, and a very grave theat is the OS becomeing soemone else's agent.