The current state of user interfaces for large information spaces imposes an unmanageable cognitive burden upon the user. Determining how to get the right information into the right form with the right tool at the right time has become a monumental task. Interface agents address the problem of increasing task load by serving as either an assistant or associate, extracting and analyzing relevant information, providing information abstractions of that information, and providing timely, beneficial assistance to suers. Interface agents communicate with the user through the existing user interface and also adapt to user needs and behaviors. User modeling, on the other hand, is concerned with how to represent users' knowledge and interaction within a system to adapt the system to the needs of users. The inclusion of a user model within the overall system architecture allows the system to adapt its response to the preferences, biases, expertise level, goals and needs.