SMACE is a multi-agent system for electronic-commerce. In SMACE, users delegate buying or selling intentions to software agents, that are responsible for autonomously negotiating with other agents in order to accomplish their goal.
Click here to try the SMACE system.
Click here for instructions.
SMACE works as an open market where buying and selling agents negotiate, in order to make deals on the goods they are trying to trade. These software agents may be located in potentialy remote hosts, interacting with the market through the Internet.
The Negotiation Model
The system supports a negotiation model with the following characteristics:
In practical terms, this multilateral negotiation model works as many bilateral negotiations that can influence each other. A bilateral negotiation starts after the two parties - the buyer and the seller - match their objectives (i.e., they agree that what the buyer wants to buy is what the seller intends to sell), and
consists on a sequence of proposals and counter-proposals. It ends when one party accepts the other one's proposal or when it withdraws from the negotiation.
- multilateral: it allows for each buying or selling agent to simultaneously negotiate with many other selling or buying agents. In auction terms, it relates to the continuous double auction, where both buyers and sellers submit bids (proposals) simultaneously and trading does not stop as each auction is
concluded (as each deal is made);
- multi-issue: negotiation can be made over a set of variables (issues), instead of the single dimension of price as it is the case in most auctions.
The Market Agents
While accepting agents from anywhere to enter the market and trade (if they use the same negotiation protocol), SMACE allows the user to create a predefined agent by adjusting its parameters. These parameters include the agent's intention (buy or sell), the time deadline by wich to complete the trade, the
description of the product to trade and specifications on each issue of the negotiations that will take place: its weight factor on the overall negotiation, its range of acceptable values, its scoring function and the tactics to be used during the negotiations.
A tactic is a function that uses a certain criterion when generating a proposal value. The tactics implemented correspond to those described in the paper by P. Faratin, C. Sierra and N. Jennings, "Negotiation Decision Functions for Autonomous Agents". They can be sumarized as follows (a deeper explanation can be found in the paper):
These tactics can be differently combined and used by each agent, by assigning different weights to them.
- Time-dependent tactics: agents vary their offers as the time deadline aproaches. These tactics use a function depending on time that can be parameterized.
- Resource-dependent tactics: agents vary their offers based on the quantity of a resource available. These tactics are similar to the time-dependent ones, except that the domain of the function they use is the quantity of a resource other than time (eg. the current number of trading agents). This is done either by making the time deadline dynamic or by making the function depend on an estimation of the amount of the resource.
- Behaviour-dependent tactics: agents try to imitate the behaviour of their opponents in some degree. Different tipes of imitation can be performed, based on the attitude of the negotiation opponent in a sequence of his proposals: proportional imitation,
absolute imitation and averaged proportional imitation.
SMACE provides 3 types of predefined agents:
- Multiple Tactic Agent (MTA): a type of agent that allows the combination of three tactics, one from each of the above described families;
- Adaptive Behaviour Agent (ABA): a type of agent that combines the given tactics in an adaptive way, by using learning capabilities based on reinforcement learning technics;
- Enhanced Adaptive Behaviour Agent (ABAII): similar to the ABA, but with some important enhancements in regard to the learning algorithm implemented.
The User Interface
SMACE provides a user interface that allows for the creation of predefined market agents. Using the interface, the user can also monitor his agents actions and performance.
SMACE was totaly developed in Java (JDK 1.1.4). It uses the JATLite package to easily build agents that communicate over the Internet and exchange KQML messages. The marketplace itself was implemented as an enhanced JATLite router, which provides market agents brokering and message routing facilities.
As described in the previous section, the user can easily create an agent, using the SMACE interface. The user may also create his own agent, with his own tactics, in any language or platform he wishes. To help on constructing agents in Java, a SMACE API was developed. This set of packages allow the user not to worry about communication and negotiation protocol details, spending his efforts on building his own negotiation strategy.
Publications on SMACE
A complete report of the SMACE system, in portuguese, can be found here.
- "Using and Evaluating Adaptive
Agents for Electronic Commerce Negotiation" (96K,
sbia-iberamia2000.zip file), Henrique Lopes Cardoso and Eugénio
Oliveira, to appear in Proceedings of the International Joint
Conference IBERAMIA'2000/SBIA'2000, Springer-Verlag, November 2000.
- "A Platform for Electronic Commerce with
Adaptive Agents" (101K, ameciii_book.zip file), Henrique Lopes
Cardoso and Eugénio Oliveira, in AA'2000, Proceedings of the 3rd
Workshop on Agent Mediated Electronic Commerce, Barcelona, June
2000. To appear in AMECIII, LNAI, Springer-Verlag.
Multi-Agent System for Electronic Commerce including Adaptive Strategic
Behaviours" (90K epia99.zip file) Henrique Lopes Cardoso,
Max Schaefer, Eugénio Oliveira, in EPIA'99 - Portuguese
Conference on Artificial Intelligence, Évora, September 1999.
- An on-line version of this paper can be visited here
- A report on the learning mechanism used for implementing adaptive agents in SMACE, by Max Schaefer, can also be found in here