The Open Agent Architecture (OAA), developed and used for several years at
SRI International, makes it possible for software services to be provided t
hrough the cooperative efforts of distributed collections of autonomous age
nts. Communication and cooperation between agents are brokered by one or mo
re facilitators, which are responsible for matching requests,from users and
agents, with descriptions of the capabilities of other agents. Thus it is
not generally required that a user or agent know the identities, locations,
or number of other agents involved in satisfying a request. OAA is structu
red so as to minimize the effort involved in creating new agents and "wrapp
ing" legacy applications, written in various languages and operating on var
ious platforms; to encourage the reuse of existing agents; and to allow for
dynamism and flexibility in the makeup of agent communities. Distinguishin
g features of OAA as compared with related work include extreme flexibility
in using facilitator-based delegation of complex goals, triggers, and data
management requests; agent-bused provision of multimodal user interfaces;
and built-in support for including the user as a privileged member of the a
gent community.
This article explains the structure and elements of agent-based systems con
structed using OAA. The characteristics and use of each major component of
OAA infrastructure are described, including the agent library, the Interage
nt Communication Language, capabilities declarations, service requests,faci
litation, management of data repositories, and autonomous monitoring using
triggers. To provide technical context, we describe the motivations for OAA
's design, and situate its features within the realm of alternative softwar
e paradigms. A summary is given of OAA-based systems built to date, and bri
ef descriptions are given of several of these.