These guidelines start at a very high level and assume minimal prior knowledge of the IBM Agent Building Environment Developer's Toolkit. Terms and concepts are incrementally introduced and examples carry you through the process of writing an adapter and the rules on which the adapter depends. The tutorial begins at a very high level and moves all the way to the code level. You can follow it to the level of your needs. In later sections some additional detail is provided on rule writing and adapter writing but not before the concepts are clear and not before you have followed the flows of a sample adapter, the Stock Adapter.
Figure 1-1. Thumbnail Architecture
![]() |
As illustrated above, the IBM Agent Building Environment Architecture provides for a toolkit of parts for building intelligent agents:
Also illustrated are the components that support application interfaces for using and controlling the agent and its components:
Refer to Chapter 2. "Agent Reference" of the Components and Adapter Reference book for a description of this application interface.
Refer to Chapter 3. "Adapter Reference Material" of the Components and Adapter Reference book for a description of this application interface.
Refer to Chapter 4. "Library Reference" of the Components and Adapter Reference book for a description of this application interface.
The primary characteristic of this architecture is the plug-and-play of its component parts. It allows for run-time configuration of adapters, engines, and library components, as well as independent use of views to manage the agent instructions. Plug-and-play makes possible the dynamic substitution of parts to allow for the incremental growth of applications, dynamic reaction to the needs of the world in which the agent works, as well as the migration to different platforms.
The architecture also emphasizes the logical separation of the view component from the main body of the agent, whereby the substitution of new and more user-friendly and/or application-specific facilities for instructing the agent can occur without disruption of the operation, design or structuring of the agent proper. This independence of the views from the body of the agent is only possible because the views bind to the agent only through the Library interface. For inference engines this involves a common, and standard KIF (Knowledge Interchange Format) for storing rules and facts. By focusing on a common interface (of the Library Component), which is also used by the agent proper, high level changes in the views are shielded from the operation of the agent.
Finally, each aspect of the architecture represents a significant specialization. This is significant because the architecture supports autonomy between the components such that specialist can build a new part for one component without being required to also be an expert in the other components. Logicians can concentrate on engines, while usability experts specialize on views, device or application experts concentrate on adapters, and data management experts specialize on Libraries.
Further, each adapter is responsible only for its own domain, so each specialists can be independent of the other specializations.
Adapters and engines relate to each other through events and attached procedures. Adapters only relate to other adapters through the engine's interpretation of agent instructions (currently rules). This autonomy preserves the specialization, as well as the plug-and-play flexibility.
Finally, applications are represented to the agent by adapters. In some cases the adapter represents the entire application. In other cases, the adapter represents only part of an application. The architecture does not specify how an adapter binds to parts of an application because this varies considerably from application to application.
With this architecture in mind, the tutorial addresses the following questions about the practical application of the architecture to the current IBM Agent Building Environment Developer's Toolkit.