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 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.
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.