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.

The Market

      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.

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.
      SMACE provides 3 types of predefined agents:

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.

Implementation Details

      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.
Eugénio Oliveira
Henrique Lopes Cardoso