A computer program (running code) or software agent that operates autonomously or in a dialog with the user.