The MadKit team recruits

(last modification March 2003)


The MadKit team is recruiting!! : if you want to help the development of MadKit in the following areas (see the list of some of our interest below) and even take in charge part of it, then email Jacques who is in charge of the coordination of the project.

If you already have developped tools and/or agents/organizations in MadKit and you want to see them being part of the MadKit distribution, then email Jacques to get how to do it. You must be aware that your software will be distributed with a GLP/LGPL licence.


Communication and distribution

  1. The communicator agent is the central component of distributed computation and remote connection in MadKit. It is written as a single agent. It should be rewritten as a multiagent system, each agent would responsible for its connection with another kernel. This would lead to a better integration of the communicator with the rest of MadKit.

  2. For the moment, the communicator uses directly sockets and employs a specific protocol to send messages to remote kernels and to synchronize distributed organizations. It would be interesting to provide other communication channels such as http. One idea would be to integrate Jetty with MadKit in order to get a good http server. Jetty is interesting because it is possible to embed it with an application!
    On top of that, Jetty is a JSP server.Thus in one hand we could have remote communications with http and a JSP server in MadKit!!

  3. Communication are handled in a stream-like channels: a socket is opened all the time two kernels are linked. The need of connection resources is high if we want to connect hundreds of Kernels altogether. Thus we should develop other communicating schemes:

Integrated Development Environment for the design of agents and organizations

The development environment of MadKit is still too simple. Designing a Java agent (it is a bit better with scripting agents) still requires a lot of work. You need to go into your preferred Java IDE tool (which could be a simple editor and shell commands or a big GUI IDE with windows everywhere), create an agent compile it, taking care of this &#$%@ classpath, jar it, put the jar in the autoload directory (for example), run MadKit and test your agents. I would like to have tools to help the development process and not leave MadKit each time.

It could be a good idea to help this process by integrating the java compiler to MadKit and agent classes and related jars when MadKit is running.

  1. Using the jEdit fantastic editor would be a good idea. This editor is already (more or less) integrated with MadKit but the integration is rather clumsy. I would like this editor to be a real MadKit agent and be able to control the whole development process from it. It could also be done for other Java editors such as Jext.
  2. The Java compiler should be integrated to MadKit somehow and agent classes loaded at run time.
  3. Obviously, this IDE would be connected to the following item (building a library of agent architectures)
  4. Use SEdit to develop graphical formalisms to build agents and organizations...
  5. Design templates to build agents very easily when one has to start a new agent/organization/configuration in Java or in any scripting language (this is quite easy to do...)

Building and updating tools to observe, analyze and report the behavior of MadKit

There are many tools which are missing in MadKit and that we would like to develop, and we would like to modify and improve some of the already available tools. Here are some of the missing tools:

- An agent that graphically view the messages between agents in a group, using an UML like sequence diagram.

- An improvement of org grapher, in order to do not show all agents and to be able to hide/show the groups and role the user want to see. It should also be possible to view messages between agents if the user want to see it.

- An agent which shows the different kernels that are connected and their respective internal organization. This may be part of an extension of the GroupObserver agent.

- Improve the small notepad/editors of MadKit in order to give them: syntax coloring, undo, wrap/unwrap mode, etc. It is sometimes very handy to have a simple tool to modify simple expression without having to resort to a big program such as jEdit.


Building a library of agent architectures

A library of agent architecture should be built: BDI, constraint based, subsumption, neural network, etc.. should be made available to the developer of multiagent systems.

This is an important development because having such a library would ease the development of multiagent systems. This also would help the teaching of multiagent systems by comparing several approaches on a same problem.


FIPA compliance

For the moment (version 3.1) MadKit is not FIPA compliant. There is already an ACLMessage class which allows for the development of applications using ACL, but this is all. Even if I am not sure that FIPA standards, for the moment, are quite practical and efficient, it could be interesting to make FIPA agents communicate with MadKit agents. Why not consider MadKit as a good tool to develop AgentCities nodes...

We are working on FIPA compliance: the main idea is to have a subset (a group) of MadKit being FIPA compliant. These agents (FIPAagents) would be part of the FIPA group and have some ability to communicate directly with FIPA platforms such as FIPA-OS or JADE. We need people to help us to do this job!!

Anyway, I Hope FIPA will recognize that 1) multiagent systems should be immersed into organizations, 2) multiagent systems should rely on their own forces to develop distributed platforms and not being built on stacks of technologies (I don't see the reason why RMI/IIOP, etc.. which are based on synchronous communications, should be technology to make agent communicate by message passing!!). Maybe MadKit could make the people of FIPA change their mind and see the interest of "thin" agents evolving in organizations...