Unlike an expert system, an agent is embedded in its environment and can perceive and react to it using inputs of conditions. It can dynamically construct new rules as it works; in other words, some agents are capable of using sensors to monitor their surroundings, develop new rules, and then take action independently. For example, Doppelgaenger is an agent developed at MIT's Media Lab that uses sensors that provide many kinds of information about the user population in its computing network environment. These sensors can include active badges that provide location information about users, along with login information that detects their arrival and departure from the MIT computer network.
This agent can gauge user actions that reflect the frequency and duration of the use of applications, programs, and workstations and telephones. The system monitors what applications and data sets users tend to access in order to construct a profile of user preferences so that as it monitors their behavior, it dynamically creates new rules. Doppelgaenger uses this user information to construct profiles into statistical clusters; this type of intelligence is used by the agent to provide users with network-specific information likely to be of interest to them. It also uses this behavioral information to provide them with notification about databases and applications that meet their profile interests. It can also alert specific users about changes to data sets they have an interest in.