Chapter 11: Agent-Based Software


 Download CD Content

In this chapter, we'll investigate the topic of agent computing. We'll discuss the broad range of software agents in terms of their applications as well as introduce their various attributes and models. To demonstrate some agent capabilities, we'll build a news-filtering agent that uses two standard Internet protocols to present targeted information to a user .

What is an Agent?

Alan Kay, an original proponent of agency, defined an agent as a software robot that given a goal could act in the place of a user within the domain of the computer's world. If the agent became stuck, it could ask for advice from its user to continue to act on the user's behalf [Kay 1984]. Recently, this concept has been adopted for the development of "Bots," which exist within the Internet to provide capabilities to their user's.

Agents are also called intelligent agents, as intelligence is a key component of agency. While agents can take a variety of forms, some consider agents to be surrogates on a network or the Internet that could fulfill some activity useful to their user in the real world [King 1995]. The agent would be endowed with the wishes of its user and then make any necessary decisions while communicating with other agents (possibly representing other users). An example selling agent of this type may find other buying agents at specially created auction hosts to sell goods for their user. These agents could also deceptively act as buyers , in order to identify the costs of a similar good for sale and adjust their prices accordingly .

These concepts can open the definition of agency to a large variety of programs. Therefore, rather than specify exactly what an agent is, we'll discuss some of the attributes of agents initially and then return to provide a taxonomy of agents.

Agent Attributes

Agents can have one or more attributes, as defined in Table 11.1. This section discusses each of these attributes.

 
Table 11.1: Common Attributes for Software Agents.

Attribute

Definition


Autonomous

Operate independently from its user

Adaptive

Learns while it operates

Communicative

Communicates with its user or other agents

Collaborative

Works with other agents to reach its goal

Personal

Exhibit believable character behavior (emotion)

Mobile

Can move around its environment

One of the primary attributes that is associated with software agents is autonomy. An agent is autonomous if it operates without the constant direction of a human. Being autonomous implies that the agent has one or more goals that can be achieved. While goal-orientedness can be viewed as a separate attribute, it is a necessary element of autonomy and therefore covered as a subordinate. Having goals can also imply that the agent has the ability to plan; this brings us to the adaptive characteristic.

An agent is adaptive if it can change its behavior based upon its experience. Being adaptive means that the agent has the ability to learn and reason about its environment and own knowledge. While this is the most intriguing aspect of agency, it is also the most difficult and therefore is commonly found only in very domain-specific agents.

The ability to communicate is also a very important characteristic of agents. The agent must be able to communicate with its user to identify its goals or initial information as well as communicate within its environment. For example, a search agent that identifies Web pages of interest must be able to communicate using the HTTP (HyperText Transfer Protocol) in order to connect to Web sites and gather Web pages. A related attribute is the ability to communicate with other agents.

An agent is collaborative if it communicates with other agents in order to achieve its goals. For example, agents that act on behalf of their users in auction environments can communicate to broker deals given information by their users. Collaborative agents are commonly studied under the name multiagent systems, as multiple agents are required for collaboration. This attribute is very important for software agents and is therefore a widely studied and researched characteristic.

For some special agents, the ability to exhibit a personality can be important. Such agents are commonly found in entertainment, but research in the domain of emotion has found that intelligence and emotion are linked. Therefore, allowing an interface agent to exhibit a personality that changes with the information to be portrayed can simplify our ability to understand what the agent is trying to communicate. For example, if we try to communicate information without changing our expression, it can be difficult for the receiver to understand exactly what we're trying to get across. The information encoded within our expression represents meta-data for our actual message and therefore providing this ability to certain classes of agents can be important.

Finally, some agents are provided with mobility, or the ability to move within their environment. This may seem like an odd attribute but can be important in some circumstances. For example, consider an agent that communicates with a remote database to gather information. In the traditional case, the host communicates with the remote database, gathers the defined information, and then filters this information for the user based upon the specific criteria. Given mobility, an agent could be dispatched to the remote database to automatically filter the results and then return only what was required by the end user. This provides both network-bandwidth savings and a simpler architecture, especially when the two hosts can be disconnected from one another for durations.

To be classified as an agent, not all of the attributes must be demonstrated. In most cases, only two or more are used. In our simple application, to be discussed later, the autonomous and communicative attributes will be applied to a news-filtering agent.

Agent Taxonomy

Let's now return to a broader scope of agents and identify some of the higher-level types that exist using the previously defined attributes (see Figure 11.1).

click to expand
Figure 11.1: Franklin and Graesser's agent taxonomy.

As we're interested only in agents that operate autonomously, we'll use Franklin and Graesser's 1996 taxonomy [Franklin and Graesser 1996]. While there are many other classifications, we'll focus specifically on the software-agents variety from Franklin and Graesser's taxonomy.

Task-Specific Agents

A task-specific agent is one that is deployed to solve a specific problem. An example of a task-specific agent is a Web search agent. In addition to performing searches given the user's constraints, a Web search agent also monitors which of the returned links the user follows . This provides a weighting scheme for searches to help better sort the results with the hope of providing the user what they want more quickly. The Web search agent could also operate in the background, doing earlier searches to see if new information has become available, and then presenting this to the user.

In addition to being autonomous, the Web search agent is adaptive as it learns what the user is most interested in based upon his behavior (i.e., what links they actually follow).

Another example of a task-specific agent is an auction agent. An auction agent could act on a user's behalf to purchase goods on the Internet with the goal of paying the lowest price possible. It could do this through collaboration with other auction agents. In trying to find other users that are attempting to purchase similar items, a cooperative bulk purchase could be made with the intent that a lower overall price would be paid.

Entertainment Agents

Entertainment agents are a new type of agent that exist for creating a socially intelligent agent. This type of agent is useful for acting in a social capacity, interacting in virtual worlds , or presenting a persona as a user interface to disseminate information. For example, the Ananova agent from Ananova Ltd. is a talking head that reads news using graphical lip-syncing. The Ananova agent also exhibits natural-looking head motion to make the character more believable.

The Ananova agent has personal and communicative characteristics. By its nature, the Ananova agent exhibits something of a personality, though it has difficulty exhibiting emotion while it provides the news. Ananova is also communicative, it lip-syncs with its text-to-speech interface to look like a newscaster reading the news.

Viruses

A virus could be called instead a malicious mobile software agent. While a virus may not be adaptive, it is autonomous and, more importantly, mobile. Instead of using a specific agent-based protocol to migrate around a network, the virus utilizes standard protocols to distribute itself. The most common protocol used is the mail transport protocol, SMTP (Simple Mail Transport Protocol).

Giving mobility to less malicious agents can also be provided through a mobile agent framework. One such framework is IBM's Aglet framework that is freely downloadable from the Internet (see the Resources section).




Visual Basic Developer
Visual Basic Developers Guide to ASP and IIS: Build Powerful Server-Side Web Applications with Visual Basic. (Visual Basic Developers Guides)
ISBN: 0782125573
EAN: 2147483647
Year: 1999
Pages: 175

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