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, laptop).

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 Objects

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 Agents

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


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 and Subscribe

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

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 known requirements).

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

OAA's Delegated Computing Model

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

OAA's delegation model relieves human and software agents from the responsibility of interfacing, task planning, and execution monitoring. This has several benefits, including

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

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.

Application Areas

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


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


[Active Software  99] "The ActiveWorks 4.0 Integration System."

[Cohen 1994] Cohen, Philip R., Adam J. Cheyer, Michelle Wang, and Soon Cheol Baeg, "An Open Agent Architecture." In book Readings in Agents, Huhns,M.N. and Singh, M.P. (Eds.), Morgan Kaufmann Publishers, San Francisco, pp. 197-204. Also available online at

[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

[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

[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 at

[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

[Microsoft 1998] Microsoft Corporation, "Distributed Component Object Model Protocol -- DCOM/1.0," January 1998. Available online at

[OMG 1998] Object Management Group (OMG), "CORBA/IIOP 2.2 Specification," February 1998. Available online at

[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

[Schwartz 1995] Schwartz, David G., "Cooperating Heterogeneous Systems," Kluwer Academic Publishers, Dordrecht, Germany, 1995.

[Sun 1999] Sun Microsystems Inc., "Jini(TM) Technology Architectural Overview," Available online at

SRI International | Artificial Intelligence Center | Open Agent Architecture