It does unfortunately look pretty non-human in both the attack and defend modes.
In defend mode, it seems to stand on the mound and just afk if there's nothing close by. It's not a huge deal because we can choose attack which is just a lot more active, but I imagine it could be improved by walking up to the fence and attacking some of the ranged enemies when there are no enemies on the mound.
In attack mode, it runs to a random portal - which may still have a shield up. At the beginning, this is fine, but if a different portal drops it's shield, legitimate players will all leave and run to the portal which is attackable, leaving the bot alone seemingly to just afk attacking enemies at a portal which is not attackable. Same thing after a portal is destroyed, if there is another portal which is attackable, all real players immediately leave to go attack that portal, but the bot often lingers around attacking things near the destroyed portal.
I think this bot would be 100x better with a bit better pathing logic around which portal to go to, and when. I suppose "always" running to the nearest non-shielded portal is also a bit too predictable, but right now it just looks very un-natural to be the only person standing around at a broken or shielded portal. Otherwise, great work and thanks!
An "even better if" might be if there was an "Auto" mode which switched between attack and defense irregularly. Perhaps if you've just destroyed a portal or died and there are enemies on the mound, instead of just running past, it could spend a bit of time defending. Similarly, if there are no enemies on the mound (or after some short time defending passes), it could switch back to attack portal mode.
I have also seen it occasionally get creep blocked - e.g. pathing to a spinner but there are other monsters blocking the path. This is a dead giveaway that it's a bot, because you just end up spinning in place awkwardly tracking something you cant reach. I imagine this might be harder to solve.