1. A method for operating an intelligent automated assistant, comprising: at an electronic device comprising a processor and memory storing instructions for execution by the processor: receiving a user request, the user request including at least a speech input received from the user; processing the user request to obtain a representation of user intent, wherein the representation of user intent associates the user request with a task flow operationalizing a requested task, and the task flow is operable to invoke a plurality of services each supporting functions according to a respective plurality of service parameters; based on the representation of user intent, identifying a plurality of relevant task parameters for the task flow, wherein the plurality of relevant task parameters including at least one task parameter explicitly expressed in the speech input and at least one task parameter inferred from context information associated with the speech input; and executing the task flow by selectively invoking a subset of the plurality of services in accordance with the plurality of relevant task parameters, wherein the execution of the task flow further comprises: after an unsuccessful attempt to complete the task in accordance with all of the plurality of relevant task parameters: selecting one or more task parameters from the plurality of relevant task parameters to relax in an additional attempt to complete the task, wherein the selecting is based on whether the one or more task parameters were inferred from the context information or explicitly expressed in the speech input.
1. A method for operating an intelligent automated assistant, comprising: at an electronic device comprising a processor and memory storing instructions for execution by the processor: receiving a user request, the user request including at least a speech input received from the user; processing the user request to obtain a representation of user intent, wherein the representation of user intent associates the user request with a task flow operationalizing a requested task, and the task flow is operable to invoke a plurality of services each supporting functions according to a respective plurality of service parameters; based on the representation of user intent, identifying a plurality of relevant task parameters for the task flow, wherein the plurality of relevant task parameters including at least one task parameter explicitly expressed in the speech input and at least one task parameter inferred from context information associated with the speech input; and executing the task flow by selectively invoking a subset of the plurality of services in accordance with the plurality of relevant task parameters, wherein the execution of the task flow further comprises: after an unsuccessful attempt to complete the task in accordance with all of the plurality of relevant task parameters: selecting one or more task parameters from the plurality of relevant task parameters to relax in an additional attempt to complete the task, wherein the selecting is based on whether the one or more task parameters were inferred from the context information or explicitly expressed in the speech input. 5. The method of claim 1 , wherein each service is associated with a respective service capability model comprising declarative descriptions of respective capabilities and properties of the service.