Understanding Agents

 < Day Day Up > 

Characteristics of Agents

Software agents have many different characteristics. Table 8.1 lists some characteristics commonly associated with agents. In the author's opinion, software should possess at least three of these characteristics if it is to be considered an agent but may assume all of them.

Table 8.1. Characteristics common to software agents. Although an agent need not possess all these characteristics, it will generally possess the first three.



Function independently

Able to function alone with little or no user intervention required.

Able to communicate

Can communicate with the user or with other agents. Communication with the user usually involves the notification of desired outcomes or events. Communication with other agents allows the agents to retrieve additional information or to distribute processing of specialized tasks.

Reactive to its environment

In addition to operating independently, agents should be able to react to events without the need for specific instructions from their users.


Tailored to fit the specific needs to their users. This usually involves the use of configuration files or personal information stored in a database. Personalization can also involve agents with human-friendly interfaces, such as those that utilize a speaking character.

Able to learn

This characteristic is generally associated with agents that possess intelligent capabilities. Agents that are able to learn from their users and therefore adapt their behaviors are the most complex and useful.

Readers may observe that the characteristics associated with agents are common to some modern-day software programs. Chapter 1 described a phenomenon known as the "AI effect." This is an effect that occurs once a technology becomes widely accepted and from then on is no longer considered AI. In much the same way, the ideas behind software agents have been absorbed into modern-day programming. Therefore, many programs not labeled as agents may assume many, if not all, of the characteristics listed in Table 8.1.

In order to work properly, it is necessary for most agents to be autonomous and able to function independently. They must also be able to react to the environment so that they can quickly act in the best interest of their user. And they will usually need to communicate with the user or another program. The Internet not only allows for greater access to data, but provides a vehicle for communication with other agents. Because of this, many software agents exist as tools and resources on the World Wide Web. Multiple agents, or those that communicate with other agents, are especially useful because they can often perform complex tasks.

Perhaps the most debated characteristic associated with agents is the ability to learn. This is also the characteristic that can give software its greatest value and is generally used to identify those that are "intelligent." An intelligent agent can learn from the user's behavior and modify its own behavior accordingly. For instance, consider an agent used to browse the Internet. Such an agent can be particularly effective if it is able to modify the content returned to the user based on pages the user has previously visited. Imagine a user who is a computer programmer and frequently browses Web pages from software companies. If this user initiated a Web search for the word "Agent," it is very likely that the preferred results would be from computer-related Web sites rather than from online travel agencies.

Commercially Available Agents

Today, most commercially available agents perform very specific tasks. They are quite limited in their domains of knowledge and ability. Most agents deal with automating redundant tasks or making Web surfing more efficient. Table 8.2 lists functions that many of these agents perform.

Table 8.2. Categories that some commercially available software agents fall into. The description gives specific examples of how these categories can be implemented.

Agent Category


Efficient Web surfing

Many products, ranging from those that remove spyware to those that speed up your connection, allow users to get more from the Internet.

Observation tools

Inconspicuous agents can be used to monitor a remote computer and take control of it if necessary. These agents can watch for a specific activity to occur and are sometimes used by parents to monitor their children's Web surfing.

Process automation

Agents can be very useful at automating redundant tasks and making business processes more efficient.

Network Management

Managing a large number of computers on a network is a perfect task for agents. They can automate many of the maintenance and monitoring tasks involved in managing multiple servers.

E-commerce tools

Every year, the amount of products sold and bought over the Internet increases. To help users make the most of their online shopping experience, e-commerce agents can be configured to search for specific deals or products that the user desires.

Friendly interfaces

Some agents are designed to provide entertainment or companionship rather than perform a specific task. These agents usually communicate with the user through an animated character and natural language.

Information access

Agents that help users retrieve specific information and filter out unwanted information are perhaps the most popular for instance, agents that filter a user's e-mail to remove spam.

The increased usage of the Internet has contributed greatly to the popularity of agents. Many Web users are overwhelmed by the vast amounts of information available on the Internet. They need better ways to find and organize this information.

Copernic Agent Professional (www.copernic.com/en/products/agent/professional.html) is a tool that allows users to search for information on the Internet. The primary difference between this tool and other search engines is that it combines search results from thousands of search engines. It also allows you to keep track of changes made to certain Web pages and notifies you via e-mail when changes have been made.

One of the most annoying drawbacks to using the Internet today is the proliferation of spyware or adware. Spyware is software intended to reside on a user's computer for the purpose of collecting information about the user or redirecting the user to certain Web sites. Adware can be used to initiate popup boxes displaying advertisements. Both spyware and adware can result in a user's computer slowing down and/or in the user's suddenly receiving unwanted advertisements. There are now a variety of products, such as Ad-Aware Plus, version 6.0 (www.lavasoftusa.com) that can safely remove these sometimes unwanted intruders. Ad-Aware includes a real-time monitoring system that can watch for the installation of new spyware/adware and alert you to when an intrusion is detected.

The paradox here is that many of the programs considered to be spyware and adware could also qualify as agents. They are programs intended to act in the best interest of the advertiser or marketer by collecting useful information for them. They act independently and are able to communicate with both the targeted computers and their original users. They are also able to propagate themselves without specific instructions and in many cases mask their identities to avoid detection.

Some companies offer software-development toolkits designed to build agents. These kits allow developers with very little knowledge of software agents to develop them quickly. Of course, it is not necessary to utilize an agent toolkit when building agents. Essentially, any programming language can be used.

An Example of Using Multiple Agents

This chapter will examine multiple software agents designed to assist remote users in maintaining a local repository of company files available from the corporate Web server. The Agent solution file (available for download from the book's Web site at http://www.awprofessional.com/title/0321246268) contains two Windows service projects. One of the Windows services executes independently on the remote user's laptop and utilizes a "pull method" to retrieve information. This allows it to assume the first characteristic listed in Table 8.1 function independently. The files will be pulled asynchronously from a remote server utilizing Microsoft's Background Intelligent Transfer Service (BITS).

The other Windows service project is designed to execute on a central server and is responsible for independently publishing data used by the client-based agents. Utilizing Microsoft's File System Watcher functionality, it will watch for changes to published files and directories. Finally, there is a Web service project that exposes two methods. The Web service will be used by the remote agent and is used to determine when updates have occurred.

The agent solution presented in this chapter is one example of how multiple agents can work together to achieve a common goal. In this case, the goal is simple: keep the user up to date. Agents can be especially effective in more complex systems because each agent can assume a specific task. Breaking up the tasks into manageable items allows each agent to specialize in a specific task. It also distributes the processing among multiple sources, thereby giving the entire system more power. In today's distributed work environments, these types of solutions will become increasingly more important.

     < Day Day Up > 

    Building Intelligent  .NET Applications(c) Agents, Data Mining, Rule-Based Systems, and Speech Processing
    Building Intelligent .NET Applications(c) Agents, Data Mining, Rule-Based Systems, and Speech Processing
    ISBN: N/A
    EAN: N/A
    Year: 2005
    Pages: 123

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net