Skip to content

EmmanuelADAM/jade

Repository files navigation

Programming agents in Jade

(web version) (french version)

Set of source codes for the course/tutorial on multi-agent programming with the JADE platform.

To run these codes, it is necessary to import the library "JadeUPHF.jar". This library is an update, with JAVA 17, of the last official version of [Jade] (https://jade.tilab.com) of Tilab and add functionalities to easier the implementation of agents.

The source of this new version, the library and notes, can be accessed from here : JadeUPHF".

The following codes need, thus, this library and Java >= 17.

NB. if you get this error in your prefered IDE while launching an example :

SEVERE: Communication failure while joining agent platform: No ICP active

The reason is that you have not closed the previous jade instance. Completely stop/close a jade run before launching another one


Basics: Agent, Behavior, and Sending Messages

Agents without behavior or communication

  • To test the installation of Jade, the classic HelloWorld
    • AgentHello : code for a simple agent displaying a message on the console
    • AgentHelloParametre : also code for a simple agent displaying a message on the console, but the message is passed as a parameter

Agents with behaviors

Communicating Agents

  • Classic example of a communication test between 2 agents: ping-pong
    • pingPong: Code that launches two agents that communicate with each other. The ping agent sends a ball to the pong agent which returns it to ping which in turn returns it, ...
    • AgentPingPlouf: code for an agent that sends a random message and waits for a response..! This will come from the white pages agent (AMS) telling him that there is no one at the address indicated...
  • Example with message filtering:
    • ticTac : an agent sends messages tagged with 2 different types; an agent receives them and treats them differently according to their types.

Interactive agents

  • Use of a small graphical interface to facilitate dialogue with the user
    • window : codes for agents linked to windows
    • radio : codes that illustrate broadcast communication. An agent no longer targets recipients, but a channel that other agents are listening to

Service Management

  • helloWorldService : Codes for agents each linked to a window. These agents discover each other by searching for services and send each other simple messages
  • serviceDetection : Some agents register to the yellow pages (DF) for a given service; little by little. Another agent has subscribed to (DF) to be notified when an agent registers or unsubscribes from this service.

Agents with FSM behaviors

  • Agents that have behaviors organized according to a finite state machine (FSM) : fsm. Two examples are given :
    • salutations : sequences of behavior for European greetings within an agent,
    • review : process of submitting and reviewing an article between an author agent, a journal agent and three reviewer agents

Interaction protocols

  • Requests : codes for communication of requests using the AchieveRE protocol.
  • English Auction: codes using the communication protocol ContractNet to simulate a sealed english auction (1 round).
  • Vote Borda : codes illustrating communication between agents by the ContractNet protocol for vote by Borda count.
  • (the following codes will be translated soon)
  • Vote DoubleBorda : codes illustrant la communication entre agents par le protocole ContractNet pour un vote de Borda augmenté pour être effectué en 1 tour.
  • Vote Condorcet : codes illustrant la communication entre agents par le protocole ContractNet pour un vote de Condorcet augmenté pour être effectué en 1 tour.
  • Negociation : codes à compléter pour coder la négociation 1-1.

Tutorials

Some tutorial : here


ISSIA 23 - Scenario

A (very) little scenario based on a true project about circular economy : here

About

Jade Agent-Oriented Programming Course Materials

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages