Specification of Coordinated Agent Behaviour
(the Simple Team Approach)
by Andrew Hodgson, Ralph Rönnquist and Paolo Busetta
Abstract and Introduction only
Team oriented programming indicates a number of different approaches
to the formation of teams of agents and their coordination in order
to achieve common goals. A common characteristic of these approaches
is that the activity involved is seen from the abstract point of
view of the team as a whole. This paper presents a framework, called
SimpleTeam, aimed at team oriented programming. SimpleTeam is an
extension to an existing Java-based multi-agent framework, JACK , which supports the Belief-Desire-Intention
(BDI) agent architecture.
SimpleTeam supports the writing of team plans, which represent the
activity of a group of agents or sub-teams in order to achieve a
team goal, and provides a set of primitives to control concurrency,
exception handling and so on. Team members are referred within a
plan by their role, which is associated to a specific agent during
the formation of the team. Team formation and team plan execution
is controlled at run-time by two special types of agents called
team manager and team instance. SimpleTeam does not commit to a
specific approach to the formation of teams and distribution of
beliefs; it can be developed by the programmer to follow the paradigm
most appropriate to the task at hand. In the specific domain of
agent-based simulations, SimpleTeam enables the programmer to choose
the fidelity level of a simulation of a group by allowing the collapsing
of single entities within the team instance.
This paper introduces the software architecture of SimpleTeam, discusses
its most important concepts and shows some of its primitives. An
example application is presented.
1 Introduction
Team Oriented programming is a nuance of Agent Oriented programming
wherein agent collaboration is specified from the abstract viewpoint
of the group as a whole. The concept behind this approach is that
coordinated
behavior
is specified, i.e., programmed, from a high-level (bird's-eye) perspective
and that the underlying machinery maps such specifications into the
individual activities of the agents concerned.
Within Artificial Intelligence research, team work as an agent programming
activity has been studied since the early 90s (Cohen 1991), and is
a rapidly developing field. The objective is to find a general-purpose
model of team work which simplifies the implementation of any particular
mode of coordination.
JACK is a Java-based multi-agent framework
developed by Agent Oriented Software Pty. Ltd. JACK enables the development
of complex agents in Java and supports the Belief-Desire-Intention
(BDI) architecture (Rao & Georgeff 1992). It is further designed to
allow extensions that implement new or extended agent models through
a plug-in paradigm with the core JACK framework.
JACK allows for the development of robust intelligent agent systems
following the BDI agent model. The BDI model is applicable to a wide
range of applications and can be extended to introduce team work concepts.
In particular, modeling principles regarding specifications of teams
(Cavedon et al,1997, Tambe,1997) and schemes for centrally specifying
multi-agent dialogs/protocols (Haddadi1996) can be introduced. We
believe that these abstractions are valuable for developing complex
systems involving many collaborating agents.
In this paper, we suggest a plug-in extension to JACK that allows
for the specification of simple teams and the coordination of joint
activities among the team members. We then focus on providing the
most valuable and practical aspect regarding teams; the centralized
specification of coordinated behavior, and its realization through
actual coordinated activity. The suggested extension is implemented
as a JACK plug-in without modifying the core. It results in an addition
of new concepts, and as an extension of the JACK capability concept
to abstract the definition of behavior (role) from the implementation
(capability).
Following the JACK paradigm, team concepts are brought in as a strictly
typed language. This is an accepted practice within mainstream Software
Engineering, as it allows early detection of inconsistencies during
the compilation and initialization process. In order to specify coordinated
behavior in a type-safe way, we have introduced a number of new entities
(concepts) to JACK. Their role is to provide a consistent scheme for
specifying the abstract behavior of teams, specifying the coordination
of activities between the various components of teams, and providing
an infrastructure for instantiating particular instances of teams.
Many different theories and types of teams, ranging from strictly
hierarchically structured teams to collaborating teams without formal
structure, have been proposed in the literature. Also, theories have
been proposed regarding mutual beliefs and goals, where individual
members of a team attempt to achieve what they believe the team as
a whole is attempting to achieve.
The work presented here is neutral to the nature of the structure
of a team (i.e., hierarchical and imposed from the top, or resulting
from spontaneous collaboration from the bottom), and to how team formation
is achieved. Our only assumption is that, after formation, it is possible
to classify the members of a team in terms of abstract roles. Our
goal is to provide a software infrastructure for the specification
of coordinated
behavior
which can then be used for pursuing applied studies on social organization.
New in Jack v5.0:
The JACK Development Environment (JDE) has been extended to provide
the ability to trace execution using JACK Design Diagrams.
After configuring the JDE to trace certain diagrams, it can connect to a running JACK™ application and when any transitions occur that match links in the diagram, they will be highlighted.