A method may include receiving a goal of a user. The method may also include obtaining progress data related to accomplishment of the goal by the user from a sensor. The method may further include determining, based on the progress data, a progress level of the first user. The progress level may correspond to progress of the first user with respect to accomplishment of the goal. Moreover, the method may include generating a conversation with the user by a virtual agent based on the progress level.