1. A system for providing electronic assistance to a plurality of users, the system comprising: one or more virtual assistant platforms; a plurality of virtual assistants, each of the virtual assistants being accessible by one of the plurality of users and being configured to use one or more of the virtual assistant platforms to communicate with another of the plurality of virtual assistants; one or more shared data stores accessible by each of the virtual assistants, the shared data stores providing the virtual assistants with shared capabilities; and a network topology within which the one or more virtual assistant platforms are arranged, the network topology determining parameters for communication between each of the plurality of virtual assistants.