An agent's set of possible actions is conditioned on its environment, other NPCs as well as the players actions. Even for a finite number of variables you can quickly see how the problem becomes computationally expensive for a single agent.
You want to to build unsharded persistent worlds with complex character behaviours and allow millions of online simultaneous players all sharing the same game state? Then you need to take a page from architects building scalable cloud computing infrastructure and applications that serve billions of request per second with low latency.
Companies like improbable.io are abstracting game state and logic with SpatialOS. But I think there is still a lot of room here for some startup to combine "Unreal Engine + AWS". Creating a true "cloud native game engine". Even if its just HTML5 based and targeting games such as Slither.io.
Quest - An iOS "io" Game from Improbable