Developing and monitoring agents for a Multi-Agent System

A software agent needs a certain environment in order to be executed; just the way applications need an operating system (a platform on which many programs can be loaded and run). The agent framework will then provide some services with which agents can carry out their actions, such as communication between agents, preserving the current state of some executing agent, and choosing which execution path to take from a number of different paths.

The architecture behind agent systems is made up of autonomous units that have their own information and capabilities. In multi agent systems, local information and goals are not enough to achieve the larger goals, hence the need of communication between agents and concurrency, as well as language support (required while working on solutions and processing incoming messages at the same time) and testability.

This is where DECAF plays an essential role.


DECAF - Distributed, Environment-Centered Agent Framework

DECAF provides a stable way of designing, rapid development and execution of agents to achieve solutions in particularly complex software systems. It includes modules that perform all the necessary services of an intelligent agent: communication, planning, scheduling, execution monitoring, coordination, and finally, learning and self-diagnosis. The main ones are outlined below.

Properties of Agents

Building the DECAF framework does have one main objective, and that is to enable very rapid development of agent actions and task structures. For this to be achieved, the programmer shouldn't have anything to do with agent interaction details. The developer doesn't need to write any communication code, or worry about many invocations of the same agent; no API is needed to write and program an agent under the DECAF architecture.

DECAF does involve two middle agents (see Middleware) as well. One of them is Matchmaker, which helps agents to find other agents in the community that may provide a service that is useful for their tasks. An agent will "advertise" its capabilities with the Matchmaker and if these change or are no longer available, the agent will delete them. The Matchmaker then stores this information in a local database, so that requesters can formulate queries to it and "ask" for a set of matching advertisements, or even "subscribe" to it and hence be informed when new services of interest are either added or removed.

The other agent is the Broker, which advertises with the Matchmaker, an overview of its capabilities built from the providers that have registered with one Broker. So for example, a Broker may have all the capabilities needed to build a house (plumber, electrician, roofer,…), so it can provide a larger service than any single provider can, and can also manage a large group of agents more effectively.

Currently, DECAF is the basis for AI (Artificial Intelligence) projects, as well as those involving organizational development and bioinformatics information gathering. It has also been used as a programming tool for agent development.