1. A query response device comprising: an input adapted to receive user queries; a memory adapted to store one or more routing rules; one or more live agent engines configured to support interactions with one or more live agents; one or more virtual assistant engines configured to support interactions with one or more virtual assistants instantiated by an artificial intelligence module; and a routing module coupled to said one or more live agent engines and to said one or more virtual assistant engines, the routing module comprising a processing device configured: to select, based on content of at least a first user message, from a first user and relating to a first user query, and based on said one or more routing rules, a first live agent engine, of said one or more live agent engines, or a first virtual assistant engine of said one or more virtual assistant engines, as a selected engine, and to route one or more further user messages relating to the first user query to the selected engine, wherein, when the selected engine is the first live agent engine, the processing device is further configured to: intercept one or more messages between the first live agent engine and the first user, and supply content of the one or more intercepted messages to a machine learning module in order to modify capabilities of the artificial intelligence module, and wherein, when the selected engine is the first virtual assistant engine, the processing device is further configured to: invite one of the one or more live agent engines to communicate with the first user following N further messages between the first user and the first virtual assistant engine, where N is a positive integer, wherein the processing device is further configured to determine a value of N based on a user satisfaction threshold level.