13. A method for assisting a user in an execution of a task, where the task comprises one or more workflows required to accomplish a goal defined by the user, the method comprising: identifying, using a workflow tracker, a current workflow executing on a machine used by the user, where the current workflow is one of the one or more workflows and wherein the identifying is performed automatically by the machine in an absence of a manual identification of the current workflow by matching data related to the current workflow to a stored task model, wherein the identifying comprises: receiving, from one or more instrumented applications executing on the machine used by the user, the data related to the current workflow; and identifying the stored task model in a workflow library as one of a plurality of task models that most closely matches the current workflow, based on the data, wherein the stored task model encodes a set of workflows for accomplishing a corresponding task; tracking, using the workflow tracker, a progress of the current workflow in accordance with the stored task model, wherein the stored task model comprises a variablized version of a previous workflow that is customized during the execution for the current workflow; generating a suggestion based on the progress of the current workflow and on the stored task model, where the suggestion assists the user in progressing toward a completion of the task; manipulating an application on the machine used by the user to carry out the suggestion; and learning the stored task model from a user demonstration, wherein the learning comprises: discovering a loop in the user demonstration previous workflow, wherein the user demonstration previous workflow comprises a plurality of actions, and wherein the loop comprises at least one repeated sequence of actions occurring in the plurality of actions, wherein at least one of: the workflow tracking, the generating, or the manipulating is performed using a processor.
13. A method for assisting a user in an execution of a task, where the task comprises one or more workflows required to accomplish a goal defined by the user, the method comprising: identifying, using a workflow tracker, a current workflow executing on a machine used by the user, where the current workflow is one of the one or more workflows and wherein the identifying is performed automatically by the machine in an absence of a manual identification of the current workflow by matching data related to the current workflow to a stored task model, wherein the identifying comprises: receiving, from one or more instrumented applications executing on the machine used by the user, the data related to the current workflow; and identifying the stored task model in a workflow library as one of a plurality of task models that most closely matches the current workflow, based on the data, wherein the stored task model encodes a set of workflows for accomplishing a corresponding task; tracking, using the workflow tracker, a progress of the current workflow in accordance with the stored task model, wherein the stored task model comprises a variablized version of a previous workflow that is customized during the execution for the current workflow; generating a suggestion based on the progress of the current workflow and on the stored task model, where the suggestion assists the user in progressing toward a completion of the task; manipulating an application on the machine used by the user to carry out the suggestion; and learning the stored task model from a user demonstration, wherein the learning comprises: discovering a loop in the user demonstration previous workflow, wherein the user demonstration previous workflow comprises a plurality of actions, and wherein the loop comprises at least one repeated sequence of actions occurring in the plurality of actions, wherein at least one of: the workflow tracking, the generating, or the manipulating is performed using a processor. 21. The method of claim 13 , wherein the tracking comprises: identifying a step of the stored task model that corresponds to a current step of the current workflow; and following the progress of the current workflow in accordance with the set of workflows encoded in the stored task model, starting from the step of the stored task model.