Open Agent Architecture:
Technical White Paper
"Rapidly changing" may best describe today's network computing environment.
An ever-increasing number of individuals and businesses are being added
to the Internet daily. But, as new data and services are added, others
change, move, or disappear. In this dynamic, unstable environment, software
systems are challenged to not only continue to offer basic services, but
to provide improved services when new or better capabilities arrive. To
meet this challenge, underlying software designs must support agile, flexible
composition using available distributed computing and information elements.
The Post-PC Movement, also called ubiquitous or pervasive computing,
predicts scenarios wherein networked computers in almost every daily-used
device support and link our lives [Levy 1999]. This
movement represents explosive growth in the number of dynamically available
hardware devices that, although capable, must be tasked, managed, and monitored.
To provide value without undue burden, it will be essential that software
infrastructures assume responsibilities for these devices, promote cooperative
behavior among them, and permits users to express their needs as high-level
directives as opposed to device-oriented tasks.
Along with the spread of computers and information access comes a heightened
need to provide interfaces embracing all users from children to elderly,
novice to advanced, disabled, and so forth. This presents a renewed challenge
to provide approachable, intuitive, easy-to-use user interfaces spanning
individual access requirements. The familiar direct manipulation model
of interaction will be insufficient for interacting with distributed, multi
component systems. What is required is efficient, natural methods for interacting
with collections of computer-based services, and capabilities to adapt
the style of interaction to the user's needs, preferences, devices, and
abilities. Adaptable presentation and interaction styles become even more
essential as mobile professionals become equipped with the latest suite
of new networked communication devices (e.g., smart phone, palm computer,
Today's software architectures, in which the interaction among components
is predefined or which requires reprogramming to add or remove capabilities,
are too inflexible to meet these demands. What is needed is a software
architecture that enables agile, flexible, dynamic composition of resources
and permits their use in a variety styles to match present and changing
computing needs. The Open Agent Architecture (OAA) [Martin
1999], a framework for building flexible, dynamic communities of distributed
software agents, is ideally suited for exploring and meeting these challenges.
OAA enables a truly cooperative computing style wherein members of an agent
community work together to perform computation, retrieve information, and
serve user interaction tasks. OAA's approach to distributed computing shares
common characteristics with current distributed computing models, but is
distinct in very important ways. The following section summarizes related
distributed computing models and compares them with OAA.
A Comparison of Distributed Computing Models
Distributed computing models permit components to be spread across multiple
computers to yield the benefits of increased scalability, better performance,
and varying degrees of component reuse. Two areas of distinction among
these models, which highlight their adaptability and extensibility, are
whether interactions among components are preconfigured (hard-wired) and
where control for using the component or service lies (e.g., requester/client,
provider/server, mediator). We will focus on these issues for describing
related distributed computing models and comparing OAA with them.
Distributed Object technologies are best typified by the Object Management
Group's Common Object Request Broker Architecture (CORBA) [OMG
1998], and Microsoft's Distributed Component Object Model (DCOM) [Microsoft
1998]. In these approaches, interaction control among components lies
solely with the requesting object -- an explicit method call using a predefined
interface specification initiates service access. The service is provided
by a remote object through a registry that finds the object, and then mediates
the request and its response. Although Distributed Object models offer
a powerful paradigm for creating networked applications composed of objects
potentially written in different programming languages, hard-coded communication
interactions make it difficult to reuse an object in a new application
without bringing along all services on which it is dependent, and reworking
the system to incorporate new services that were not initially foreseen
is a complex task.
Conversational Agent technologies model communication and cooperation among
autonomous entities through message exchange based on speech act theory.
The best-known foundation technology for developing such systems is the
Knowledge Query and Manipulation Language (KQML) [Labrou
1997], which is often used in conjunction with the Knowledge Interchange
Format (KIF) [Genesereth 1992]. In these systems,
service access control also lies with the client, which requests a service
from a service broker or name server, and then initiates peer-to-peer communication
with the provider at an address provided by the broker. Although language-enriched
interchanges occur, Conversational Agents suffer from the same restriction
as Distributed Objects in that the interactions among components are hard-coded
in the requester, thus making services inflexible and difficult to reuse
Sun Microsystems' Jini [Sun 1999] extends the Java
runtime environment from a single virtual machine to network of virtual
machines. In Jini, control for resource access lies with the client who
requests a service based on type and attributes from a Lookup Service that
holds a collection of Service Objects (Java object and methods) and attributes
posted by providers. Clients filter responses from the Lookup Service,
download the Service Object for the selected service, and invoke remote
methods within the provider to obtain the service. Although the affordance
of downloading the interface between service requester and provider permits
dynamic and extensible assembly of resources, Jini's model still places
burden and responsibility for selecting, acquiring, and managing access
with the client.
Figure 1. In distributed object and conversational agent approaches
(CORBA, DCOM, KQML, Jini), an object reference is retrieved from a registry,
and code in the requesting object specifies how interactions with service
objects will occur.
Blackboard, and Publish
Blackboard approaches such as FLiPSiDE [Schwartz
1995] or LINDA [Gelernter 1993] allow multiple
processes to communicate by reading and writing requests and information
to a global data store. Requesters post requests on the Blackboard and
poll for available results; providers poll to obtain service requests,
and use the Blackboard to post results. The Blackboard enables team problem-solving
approaches as it can be used for posting problem subcomponents and partial
Publish and Subscribe approaches such as ActiveWorks [Active
Software 99] use a centralized broker as a clearinghouse for requests
and information. Clients issue a request to the broker that broadcasts
it to available providers; their responses are reflected through the broker
to the client. This approach is well-suited to time-critical problems,
as its broadcast model facilitates quick responses.
Common to these approaches is their ability to enable dynamic and flexible
composition of distributed components because the interaction among components
is not predefined at codetime or tightly bound at runtime. But, with this
flexibility comes a potential inherent disadvantage because neither approach
provides programmatic control for guiding operation, and at times this
control is needed or desired (e.g., to task a provider that best meets
Figure 2. In blackboard and publish/subscribe systems, producers
generate data that is operated on by consumer processes. New producers
and consumers can be added on the fly, but fine-grained control is not
OAA's Delegated Computing
OAA is similar to the above distributed computing models in that it encourages
creation of networked applications like Distributed Objects, permits rich
and complex interactions like Conversational Agents, and enables building
dynamic, flexible, and extensible communities of components like Jini,
Blackboard, and Publish and Subscribe.
A key distinguishing feature of OAA is its delegated computing model
that enables both human users and software agents to express their requests
in terms of what is to be done without requiring specification of
is to do the work or how it should be performed, for example, "When
a message for me arrives about security, notify me immediately." A requester
delegates control for meeting a goal to the Facilitator -- a specialized
server agent within OAA that coordinates the activities of agents for the
purpose of achieving higher-level, often complex problem-solving objectives.
The Facilitator meets these objectives by making use of knowledge distributed
in four locations in OAA:
This knowledge is employed to foster cooperation among a set of OAA agents.
The Facilitator matches a request to an agent or agents providing that
service, delegates the task to them, coordinates their efforts, and delivers
the results to the requester. This style of cooperation among agents can
be applied to perform both straightforward and compound, multi step tasks.
In addition to delegation, OAA also provides the ability to make direct
calls to a specific agent (like Distributed Objects and Conversational
Agents) and to broadcast requests (like Publish and Subscribe).
the requester, which specifies a goal to the Facilitator and provides advice
on how it should be met,
providers, who register their capabilities with the Facilitator, know what
services they can provide, and understand limits on their ability to do
the Facilitator, which maintains a list of available provider agents and
a set of general strategies for meeting goals
meta-agents, which contain domain- or goal-specific knowledge and strategies
that are used as an aid by the Facilitator
OAA's delegation model relieves human and software agents from the responsibility
of interfacing, task planning, and execution monitoring. This has several
reducing complexity for users and agents. Requesters need only specify
the work to be done and advice on its execution. Agents then focus on performing
their specialized task, not on coordinating execution and results.
precipitating a more open and dynamically extensible computing style wherein
agents written in many languages and styles can work together. New or different
agents can be added or replaced on the fly without requiring reprogramming
to take advantage of their capabilities.
encouraging reuse across applications and domains because interagent interactions
are not pre-defined and their interfaces are not hard-coded.
Figure 3. In OAA, agent interactions are determined by a cooperative
process that combines (1) advice or constraints from the requesting agent,
(2) specifications provided by the service agents, (3) domain-independent
strategies for coordinating interagent cooperation provided by the Facilitator,
and (4) domain-relevant knowledge provided by meta-agents. New agents of
any type can be added at any time, increasing the collective capabilities
of the community.
OAA's Benefit for Users and User Interfaces
OAA was designed with human users in mind. It enables them to interact
with the collection of distributed agents and with each other (synchronous
multiuser collaboration) as equal members of the community, not as outsiders
to whom a result is presented once software agents have done the work.
This philosophy is reflected in that all agents in the community interact
using the InterAgent Communication Language (ICL), which is a logic-based
declarative language that expresses high-level, complex tasks and natural
Users convey their goals through flexible combinations of available
input devices (e.g., pen, telephone) and natural input modalities (e.g.,
speech, pointing). They can simultaneously point, speak, draw, handwrite,
or employ a standard graphical user interface to express a goal. Agents
compete and cooperate in parallel to translate a user's request into an
ICL expression to be handled. Subsequent presentation of results is adapted
by OAA to the output devices at hand (e.g., message is relayed by speech
if visual display is not available).
These techniques allow human users to closely interact with the ever-changing
community of distributed agents via easy-to-use, flexible, and adaptive
user interaction environments.
The characteristics of OAA yield a strength in building complex systems
in which there are many components, and for which flexibility and extensibility
are important. OAA has been used to implement more than twenty-five applications
integrating such diverse technologies as image processing, speech recognition,
multiuser collaboration, text extraction, planning, and virtual reality.
These applications include
Automated Office: By building on OAA's delegated computing model
and ability to express high-level tasks through natural language and speech
this application provides a proof-of-concept alternative to direct manipulation
interfaces. It provides mobile access (e.g., PDA with telephone) to an
integrated community of commercial office applications (calendar, database,
email) and AI technologies (speech recognition, speaker identification,
text to speech, natural language interpretation and generation) [Cohen
Multi robot Control: OAA facilitates the cooperation of a team of
robots to complete an office task. Robots and users can access OAA services
(e.g., speech, databases, text to speech), and task and monitor the robots
and their sensors. This demonstration won the 1996 AAAI Robot Competition,
Office Navigation Event [Guzzoni 1997].
Video Indexing and Retrieval: OAA orchestrates and provides a unified,
multimodal interface to a collection of image and speech analysis technologies
(e.g., speech recognition, named entity detection) for content-based indexing
and retrieval of multimedia information. Future work will build on OAA's
cooperative computing model to provide automated synergy of analysis technologies
and inferencing across multiple on line processing streams [Rivlin
Smart Spaces: OAA is being used to develop baseline models, infrastructure,
and concept prototypes exploring highly interconnected computing environments
in our daily lives (e.g., home, office). Our emphasis is on developing
an environment that fosters cooperation among services rather than simple
access to individual components.
OAA's delegated computing model, high-level tasking, and ability to foster
cooperative computing paradigms provides key, unique advantages for addressing
problems of growth, complexity, and ease of use on the forefront of computing
today. In addition, OAA's openness and extensibility fosters reuse,
and facilitates bringing together a diverse and dynamic population of services
to meet user needs.
OAA users reap special benefits -- its native support for multimodal
interaction and adaptive use of available input and output resources permits
ubiquitous access to services and dynamic presentation of information.
Also, by being included as agents within the agent community, users are
permitted (but not required) to closely interact with the agent community
to provide input to and guidance of the task at hand.
For additional information, please see the OAA
Home Page or contact the OAA
[Active Software 99]
"The ActiveWorks 4.0 Integration System." http://www.activesw.com/prod/prod.htm.
[Cohen 1994] Cohen, Philip R., Adam J.
Cheyer, Michelle Wang, and Soon Cheol Baeg, "An Open Agent Architecture."
Readings in Agents, Huhns,M.N. and Singh, M.P. (Eds.), Morgan
Kaufmann Publishers, San Francisco, pp. 197-204. Also available online
[Gelernter 1993] Gelernter, D., "Mirror
Worlds," Oxford University Press, New York, 1993.
[Genesereth 1992] Genesereth, Michael R.,
and Richard E. Fikes, "Knowledge Interchange Format Version 3.0 Reference
Manual," Technical Report Logic-92-1, Stanford University, Stanford, CA,
1992. Also available online at http://logic.stanford.edu/kif/kif.html.
[Guzzoni 1997] Guzzoni D., A. Cheyer,
L. Julia, and K. Konolige, "Many Robots Make Short Work. Report of the
SRI International Mobile Robot Team at AAAI96," AI Magazine, Spring 1997,
pp 55-64. Also available online at ftp://ftp.speech.sri.com/pub/people/julia/papers/aaai96.ps.gz
[Labrou 1997] Labrou, Yannis, and Tim
Finin, "A Proposal for a New KQML Specification," Technical Report CS-97-03,
Computer Science and Electrical Engineering Department, University of Maryland
Baltimore County, Baltimore, MD, February, 1997. Also available online
[Levy 1999] Levy, Steven, "The New Digital
Galaxy," Newsweek Magazine, May 31,1999, pp. 57-62.
[Martin 1999] Martin, D., A. Cheyer, and
D. Moran, "The Open Agent Architecture: A Framework for Building Distributed
Software Systems," Applied Artificial Intelligence, Volume 13, Number 1-2,
January-March 1999, pp. 91-128. Available online at http://www.ai.sri.com/pubs/papers/Mart:Open/document.ps.gz.
[Microsoft 1998] Microsoft Corporation,
"Distributed Component Object Model Protocol -- DCOM/1.0," January 1998.
Available online at http://www.microsoft.com/com/wpaper/default.asp#DCOMpapers.
[OMG 1998] Object Management Group (OMG),
"CORBA/IIOP 2.2 Specification," February 1998. Available online at http://www.omg.org/corba/corbiiop.html.
[Rivlin 1999] Rivlin, Z., B. Bolles, D.
Appelt, A. Cheyer, D. Hakkani-Tur, D. Israel, L. Julia, D. Martin, G. Myers,
K. Nitz, B. Sabata, A. Sankar, E. Shriberg, K. Sonmez, A. Stolcke, and
G. Tur, "MAESTRO: Conductor of Multimedia Analysis," Communications of
the ACM, To appear. Available online at http://www.chic.sri.com/projects/docs/maestro_paper.pdf.
[Schwartz 1995] Schwartz, David G.,
"Cooperating Heterogeneous Systems," Kluwer Academic Publishers, Dordrecht,
[Sun 1999] Sun Microsystems Inc., "Jini(TM)
Technology Architectural Overview," Available online at http://www.sun.com/jini/whitepapers/architecture.html.
SRI International | Artificial Intelligence Center | Open Agent Architecture