1. A method for assisting a user with one or more desired tasks within a domain, the method comprising: receiving, by a computing system comprising one or more computing devices, a verbal language input and at least one of a plurality of different kinds of non-verbal input from the user; determining, by the computing system, from the verbal language input and the at least one of a plurality of different kinds of non-verbal input, an intention of the user with respect to the one or more desired tasks, by an executable generic language understanding module and a run-time specification comprising a model configured to a specific field of use; and performing, by the computing system, a domain-specific task in accordance with the intention of the user, by an executable generic task reasoning module and a run-time specification comprising a task flow configured to the specific field of use.