In the software industry, designers are forever trying to “improve” their products by adding ever more features to them, producing bloated software systems that are capable of doing just about anything. However, these systems often make it increasingly difficult for their users to perform their tasks as they are forced to wade through a mess of unwanted features to find the few that they actually need. We believe that a fruitful area of research is in building intelligent systems for particular tasks and then having the systems actively try to assist their users in performing these tasks. Such a system knows the plans (and the problems associated with those plans) that their users are likely to pursue. These competent assistants can use their expertise on their particular tasks to guide their users through their tasks, provide better help, or perhaps even volunteer to take over some part of the task. Such an assistive agent is able to helpful because, through its task knowledge, ...
David Franklin, Kristian J. Hammond