Multi-Agent Architecture

Problem

Open architecture components need to provide higher levels of adaptability, mobility, discovery, and intelligence in order to support applications that exhibit emergent behavior or that need to function in volatile environments.

Solution

In a multi-agent architecture components become agents embedded in an environment. An agent is an active component that plays one or more roles in the environment. Each role perpetually executes a control loop such as:

1. Observe state of the environment
2. If environment state = goal state, then quit
3. Select an action
4. Perform action
5. Goto 1

An agent may observe all or part of the environment in step 1. This may involve observing what the other agents in the environment are up to.

Different agents may have different goals.

The action selected in step 3 depends on the observation made in step 1. It may also depend on the internal state of the agent. This internal state could be a simple one-bit memory or a complex knowledge base system.

Performing the action in step 4 modifies the state of the environment. It may also modify the agent's internal state and goals. The action may involve sending messages to other agents.

Structure

In the FIPA reference architecture the environment consists of interconnected platforms. A platform provides communication services as well as white page and yellow page services.

An agent may play many roles. Each role has its own control loop like the one described earlier. An agent merely acts as a job scheduler for these roles. Roles are also called behaviors.

Roles are often defined by the communication protocols in which they can participate. A protocol defines the types of message exchanges between various roles.

Discussion

FIPA has defined a reference architecture for multi-agent systems. There are several implementations of the FIPA architecture, including JADE and Zeus. The Semantic Web Services Architecture (SWSA) is couched in the concepts of multi-agent architectures.