( you can leave it if you want - I see your reasons - but normally you should escape using parts of your system as agents - it does not belong to the standard use case language) He has no his own acts, no initiative, he only reacts to actions of users.
On the other hand, your web-server is not an agent.
You should distinct registered users and guests.