17. A system comprising: memory storing one or more modules; one or more processors operably coupled to the memory to execute the one or more modules, the one or more modules being configured to perform operations including: determining that a query has been inputted into a first user interface of a first computer application; determining a first context of the query in view of contents displayed at the user interface of the first computer application; determining, based at least partly on the query and the first context of the query, a first scenario and a first desired type of input candidate; selecting a first input candidate engine from an engine pool of input candidate engines, the first input candidate engine being tuned to at least one of the first scenario and the first desired type of input candidate; utilizing the first input candidate engine to generate a first set of input candidates; presenting the first set of input candidates via an input method editor (IME); determining that the query has been inputted into a second user interface of a second computer application; determining a second context of the query in view of contents displayed at the user interface of the second computer application; determining, based at least partly on the query and the second context of the query, a second scenario and a second desired type of input candidate; selecting a second input candidate engine from the engine pool of input candidate engines, the second input candidate engine being tuned to at least one of the second scenario and the second desired type of input candidate; utilizing the second input candidate engine to generate a second set of input candidates; presenting the second set of input candidates via the IME, wherein at least one input candidate of the second set of input candidates is not included in the first set of input candidates.
17. A system comprising: memory storing one or more modules; one or more processors operably coupled to the memory to execute the one or more modules, the one or more modules being configured to perform operations including: determining that a query has been inputted into a first user interface of a first computer application; determining a first context of the query in view of contents displayed at the user interface of the first computer application; determining, based at least partly on the query and the first context of the query, a first scenario and a first desired type of input candidate; selecting a first input candidate engine from an engine pool of input candidate engines, the first input candidate engine being tuned to at least one of the first scenario and the first desired type of input candidate; utilizing the first input candidate engine to generate a first set of input candidates; presenting the first set of input candidates via an input method editor (IME); determining that the query has been inputted into a second user interface of a second computer application; determining a second context of the query in view of contents displayed at the user interface of the second computer application; determining, based at least partly on the query and the second context of the query, a second scenario and a second desired type of input candidate; selecting a second input candidate engine from the engine pool of input candidate engines, the second input candidate engine being tuned to at least one of the second scenario and the second desired type of input candidate; utilizing the second input candidate engine to generate a second set of input candidates; presenting the second set of input candidates via the IME, wherein at least one input candidate of the second set of input candidates is not included in the first set of input candidates. 19. The system as recited in claim 17 , where in the engine pool is separate from a client device where the query is received and the first set of input candidates and the second set of input candidates are presented.