1. A method implemented using one or more processors and comprising: receiving, at a first client device that executes a first portion of a virtual assistant, input from a user, wherein the input is received during a first session between the user and the virtual assistant, and the input is based on user interface input generated by the user via one or more input devices of the client device; semantically processing, by the virtual assistant, the input from the user to determine a state expressed by the user to the virtual assistant; storing, by the virtual assistant in memory hosted on a cloud infrastructure that is accessible to the first client device and at least a second client device of the user, an indication of the state expressed by the user during the first session for future use by the virtual assistant; determining, by the virtual assistant based on one or more signals, that a second session between the user and the virtual assistant that is distinct from the first session is underway, wherein the one or more signals include the user invoking at least a second portion of the virtual assistant on the second client device; forming, by a third portion of the virtual assistant that executes on the cloud infrastructure or the second portion of the automated assistant, based on the stored indication of the state expressed by the user, a natural language output from a plurality of candidate words, phrases, or statements, wherein the natural language output raises the state expressed by the user during the first session; and outputting, by the virtual assistant via one or more output devices of the second client device, as part of the second session, the natural language output.
7. The method of claim 1 , wherein the one or more signals further include passage of a predetermined time interval since a last interaction between the user and the virtual assistant.