Software agents are pieces of software that have embedded intelligence and have the ability to act on behalf of some entity. A key feature that distinguishes software agents from other types of software systems is their ability to monitor the environment and to act proactively in an autonomous fashion (Woodridge & Jennings, 1995). Software agents can form communities, just like the community of buyers and sellers in a B2B exchange and can model the behaviors of real-world entities such as humans, processes, departments, and enterprises. This makes software agents ideal for representing different entities in B2B commerce systems such as exchanges and enterprise B2B systems. Software agents use asynchronous modes of communications to communicate with other agents. They are mobile and can move from one system to the other carrying executable code and state information. Software agents are viewed as the next generation software components (Griss, 2001) that can be used as the building blocks for creating intelligent systems for intelligent enterprises. Agents are now being used in various e-commerce applications (Ye, Liu, & Moukas, 2001). Software agents have many features that enable them to be effective in various application domains. These features are as follows:
Software agents are typically goal driven and encapsulate logic that can range from being a set of artificial intelligence (AI) rules to specialized mathematical programming algorithms for realizing their goals. The software agent framework is general enough to allow agents belonging to the same agent system to encapsulate different types of logic and behaviors.
Software agents can exhibit autonomous or semi-autonomous behaviors whereby software agents execute their assigned tasks with no or minimal human intervention. The autonomous behavior of agents enables agents to be both proactive and reactive in their environment, thereby facilitating software agents to act as surrogates of their users. For example, agents have been developed to support automated negotiations (Chari, 2003) and to automate many tasks (Kozierok & Maes, 1993).
Software agents can perceive the environment and adapt accordingly. Sophisticated learning algorithms such as those based on neural networks, case-based reasoning and Bayesian learning could be incorporated into software agents so as to enable them to learn from past experiences. For example, agents developed in the Bazaar project use a Bayesian learning approach to learn about the opponents during negotiations (Zeng & Sycara, 1996).
Software agents can be mobile and can move from one computer to the other at runtime carrying executable code as well as state information. The mobility feature allows software agents to process data at data locations. This is helpful in conserving bandwidth and in realizing better response times especially when computations are data intensive. The mobility feature also facilitates software agents to act as surrogates of users as mobile agents can monitor events of users' interests at different locations.
Agents can coordinate with other agents to accomplish their goals. Coordination entails communications for which languages such as Knowledge Query and Manipulation Language (KQML) (Finin et al., 1997) are available. Coordination is viewed as a distributed search problem in the space of possible interacting behaviors of agents or a group of agents to find behaviors that enable agents to realize their important goals (Durfee, 1991). Coordination could involve the transfer of data as well as control. Various coordination protocols such as contract net protocol (Smith, 1980), hybrid distributed search-local search protocol (Durfee, 1991), and negotiations (Teich et al., 1999), and various coordination architectures such as mediator architecture (Shen et al., 2000), blackboard architecture (Hayes-Roth, 1985), etc., could be used. Readers are referred to Deugo et al. (2001) for discussions on the general pattern abstractions of coordination that are based on various protocols and architectures.
In contract-net protocol, different agents bid for a task and the task in then awarded to the agent with the best bid. A mediator is used in mediator architecture to mediate between two coordinating agents. Blackboard architecture is used in the context of distributed problem solving. In this case, the control agent of the blackboard distributes control to various agents to enable them to for perform various subtasks. It is important to note that use of different coordination protocols and architectures is made possible in agents by the underlying asynchronous mode of communications method used by agents.
Software agent features such as proactive behavior, mobility and coordination with other agents distinguish software agents from expert systems. Readers are referred to Bradshaw (1997) for a detailed introduction to software agents.
Most software agents can be classified on the basis of their functions into the following categories as shown in Table 1. As seen from Table 1, there are many types of agents. Automation assistants conduct various tasks for their users with the goal of reducing information as well as processing overloads for their users. These agents typically learn user preferences and then take actions based on these preferences. Guides have a high level of embedded intelligence. These agents guide their users in different task domains. When guides assist the user in operating an interactive interface, they are also known as interface agents (Lieberman, 1995). Neural networks, case-based reasoning, and Bayesian approaches are common methods employed for agent learning.
Open Sesame! (Caglayan et al., 1996), Calendar Agent (Kozierok & Maes, 1993)
Coach (Selker, 1994), Letizia (Lieberman, 1995)
Excite Product Finder (www.jango.com), PDA@shop (Zacharia et al., 1998), BargainFinder (Kurlwich, 1996), Roboshopper (www.roboshopper.com), Bargain Dog (www.bargaindog.com), Fido (www.shopfido.com), Personalogic (www.personalogic.com), BidFind (www.bidfind.com)
Kasbah (Chavez & Maes, 1996), Bazaar project (Zeng & Sycara, 1996), eMediator (Sandholm, 1999), AuctionBot (Wurman et al., 1998), Bidmaker (www.egghead.com/helpinfo/auctions/bidmaker.htm), T@T (Guttman & Maes, 1998)
Eyes (www.Amazon.com), Bidwatch(www.egghead.com/helpinfo/auctions/bidwatch.htm)
OASIS system for air traffic management (Georgeff, 1996), ARCHON system from process control (Cockburn & Jennings, 1996)
Information agents gather, classify and filter information over the Internet. These agents provide information to users or search engine databases. Some of these agents search cyberspace to recommend items of interests to users based on user preferences and needs. A popular application of information agents is in buying and selling (Maes et al., 1999).
Transaction agents assist their human users during online transactions. These agents can perform a variety of tasks that range from ordering items and making payments online to complex automated negotiations and bidding. Agents supporting automated negotiations or automated bidding typically encapsulate their human user preferences in the form of utility functions and then use various heuristics to automate transaction negotiations or bidding in the case of auctions.
Monitoring agents monitor systems for certain events and then notify users about the occurrence of those events. The function of monitoring is often done in conjunction with the control function. In which case, agents not only monitor events but also take appropriate actions when certain events occur.
Agents, like any other software, can be subjected to security attacks. Generally there are three goals of security attacks: information theft, denial of service and corruption of information. Information theft could involve the theft of credit card numbers, negotiation strategies and other sensitive information from a shopping transaction agent; denial of service attack by a competitor could make own seller agent in an electronic marketplace incapacitated; corruption of information attack can cause prices proposed by an agent during transaction negotiations to change.
It is therefore extremely important for agents to be secure from various attacks. The mobility of agents increases the security risks, for agents can be attacked at un-trusted foreign hosts by agent platforms or by other agents. Note that agents on foreign hosts have to depend on the foreign host supported agent platforms for execution. An agent can be attacked by a platform in the following ways. A platform can masquerade as another trusted platform, deny service, eavesdrop and alter agent's code, data or state information to cause information theft, corruption of information as well as denial of service. An agent can attack another agent by masquerading as a trusted agent to get sensitive information, by sending lots of messages to the victim agent to cause denial of service, and by modifying data or state information on the victim agent via unauthorized access.
There are many counter measures available to prevent security attacks on agents. These include: partial result encapsulation, itinerary recording, execution tracing, environmental key generation, computing with encrypted functions and obfuscated code. Readers are referred to Jansen and Karygiannis for a detailed description of agent security attacks and counter measures. For agents to be viable in B2B environments, it is imperative that agent security be extremely strong and robust.
The use of agents for conducting e-commerce introduces many contractual difficulties. First, it challenges the very notion that only persons, who have the capacity to give consent, may reach a contractual agreement. For autonomous agents can go beyond serving as mere conduits for electronic transactions and may initiate contractual offers without human involvement. Second, it challenges the notion of contractual capacity needed to enter into a contract. For agents do not have the intellectual capacity to understand the ramifications of entering into a contract. Third, the notion of consensus ad idem, i.e., mutual concordance between parties on the rights and obligations when a contract is reached is also challenged.
There are many legislative solutions proposed to handle the contractual difficulties that arise when agents are used in conducting e-commerce. The United Nations Commission on International Trade Law (UNCITRAL) has proposed a Model Law that is based on the attribution rule. According to this rule, the responsibility for an agent's action lies with its human principal. A Uniform Electronic Transactions Act (UETA 1999) provides a more detailed set of rules than the Model Law. UETA permits contract between two agents and between an agent and an individual. Readers are referred to Kerr (2001) for details on legal issues and solutions.
Previous discussions have indicated that the e-commerce domain is complex, where business relationships can often be established and dissolved "on the fly." The dynamics of the marketplace requires quick decisions to be made when transient market opportunities are sensed. This calls for collecting information from the external environment, processing it, and taking appropriate actions quickly without much delay. Intelligent software agents can meet these demands, as they are capable of sensing the environment, taking proactive actions quickly while adapting to new situations without the need for human intervention. Agents can use their intelligence to learn around loose business rules and structures and view seemingly unrelated external events as patterns in the larger context of the markets.
Integrated planning among business partners is critical in reducing costs and lead-time in a supply chain. Often short-term planning is required to be done to handle any unanticipated "spikes" in the customer demand. The coordination capability of agents could allow agents of business partners to share information and support joint optimization in the supply chain. This can greatly improve the efficiency in the supply chain. An agent-based architecture will support the scalability of the supply chain with more participants in the supply chain and with more events processing.
The requirements imposed on the information technology infrastructure to support business relationships can be very demanding especially when business partners and electronic exchanges use disparate protocols and data formats. Agents as integration modules can adapt to differences in protocols and data formats and provide a seamless link among trading partners and electronic markets.