John R. Graham and Keith Decker

University Of Delaware

Department of Information and Computer Science


An Introduction to DECAF

The following paragraphs provide an overview of the functionality of the DECAF agent architecture. If you need further details on the implementation, some of the agent that have been written using DECAF, or to actually download the software, use the links on left to navigate through the project.

DECAF (Distributed, Environment-Centered Agent Framework) is a toolkit which allows a well-defined software engineering approach to building multi-agent systems. The toolkit provides a stable platform to design, rapidly develop, and execute intelligent agents to achieve solutions in complex software systems. DECAF provides the necessary architectural services of a large-grained intelligent agent: communication, planning, scheduling, execution monitoring, coordination, and eventually learning and self-diagnosis . This is essentially, the internal "operating system" of a software agent, to which application programmers have strictly limited access.

The control or programming of DECAF agents is provided via a GUI called the Plan-Editor. In the Plan-Editor, executable actions are treated as basic building blocks which can be chained together to achieve a larger more complex goal in the style of an HTN (hierarchical task network). This provides a software component-style programming interface with desirable properties such as component reuse (eventually, automated via the planner) and some design-time error-checking. The chaining of activities can involve traditional looping and if-then-else constructs. This part of DECAF is an extension of the RETSINA and TAEMS task structure frameworks.

Unlike traditional software engineering, each action can also have attached to it a performance profile which is then used and updated internally by DECAF to provide real-time local scheduling services. The reuse of common agent behaviors is thus increased because the execution of these behaviors does not depend only on the specific construction of the task network but also on the dynamic environment in which the agent is operating. For example, a particular agent is allowed to search until a result is achieved in one application instance, while the same agent executing the same behavior will use whatever result is available after a certain time in another application instance. This construction also allows for a certain level of non-determinism in the use of the agent action building blocks. This part of DECAF is based on the design-to-time/design-to-criteria scheduling work at the Univesity of Massachusetts.

The goals of the architecture are to develop a modular platform suitable for our research activities, allow for rapid development of third-party domain agents, and provide a means to quickly develop complete multi-agent solutions using combinations of domain-specific agents and standard middle-agents and to take advantage of the object oriented-features of the JAVA programming language. DECAF distinguishes itself from many other agent toolkits by shifting the focus away from the underlying components of agent building such as socket creation, message formatting, and the details of agent communication. In this sense DECAF provides a new programming paradigm: Instead of writing lines of code that include system calls to a native operating system (such as read() or socket()) DECAF provides an environment that allows the basic building block of agent programming to be an agent action. Conceptually, we think of DECAF as an agent operating system. Code within that action can make calls to the DECAF framework to send messages, search for other agents or implement a formally specified coordination protocol. This interface to the framework is a strictly limited set of utilities that remove as much as possible the need to understand the underlying structures. Thus, the programmer does not need to understand JAVA network programming to send a message, or learn JAVA database functions to attach to the internal knowledge base of the framework.

Acknowledgement

This material is based upon work supported by the National Science Foundation under Grant No. IIS-9812764. Any opinions, findings and conclusions or recomendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation (NSF).