There has been a recent explosion in the commercial use of intelligent agents (IA) and agent prototypes, causing much confusion. With each entering a different application niche and promotes the particular decision technology. The future will likely see further confusion, created by masses of non-standard and non-communicating agents absorbing network resources. As a result, users are requesting intelligent agent standards and toolkits. The IBM Agent Building Environment Developer's Toolkit is based on a general architecture designed to ease agent-enabling of applications.
This toolkit consists of five frameworks or components. This introduction outlines the general role of each framework and its relationships to the other frameworks. The adapter framework is critical to the success of those agents.
The following diagram illustrates frameworks:
Figure 1. Thumbnail Architecture
![]() |
As illustrated above, the IBM Agent Building Environment Architecture provides for a toolkit of parts (frameworks or components) for building intelligent agents:
The illustration also shows which of these components 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.
In some cases the adapter represents the entire application. In other cases, the adapter represents only part of an application. This varies considerably from application to application.
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.
Plug-and-play 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.
View Separation 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 developing 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.
Component Separation and Autonomy 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.
For further discussion of the initial architecture, design points, etc., refer to the Appendix of the Overview book.
The following are the supported platforms for the Level 6 of the &itak.:
This level of the IBM Agent Building Environment Developer's Toolkit comes with the following components:
Also included is an application programming interface for designing your own agent program. In addition, there is a Reminder Sample agent which illustrates using that agent application programming interface through a Reminder Application, illustrating a comprehensive application/agent integration in a common server environment using Java.
Note: For this adapter to work, you need web access.
Note: For this adapter to work, you need access to an internet news server.
Note: For this adapter to work, you need web access.
Additional adapters can be written in either C++ or Java. Included also is a tutorial for writing an adapter.
With the above components, there here are some things that you can do with the toolkit:
In addition to the following topical guidelines, it may also be helpful to refer to the glossary of the Overview book.
Following is suggested reading material for the topics listed above
If you want to know more about the details of how the sample Stock Adapter works, you can read Chapter 4. "Writing an Adapter" of the User's Guide book, but only if you are interested in quite a bit of detail on writing adapters.
Then you will want to use the generic rule editor to enter the rules as described in Chapter 8. "Using the ABE Rule Editor" of the User's Guide book.
You will probably also need to understand the supplied adapters that are used by and triggered by your rules. For this you should read the chapters that describe the adapters of interest. For example, if you need to set alarms to drive your rules, you would want to read "Time Adapter Reference" of the Components and Adapter Reference book.
Other supplied adapters are described in the adjacent chapters of the Components and Adapter Reference book. To configure and run the sample agent, you should read "Using the Sample Agent Programs" of the User's Guide book
Then you should read the tutorial on writing an adapter that uses the sample Stock Adapter as a comprehensive illustration (refer to Chapter 4. "Writing an Adapter" of the User's Guide book. The reference material for this is in Chapter 3. "Adapter Reference Material" of the Components and Adapter Reference book).
Additional guidelines can be found in Chapter 12. "Additional Guidelines for Writing an Adapter" of the User's Guide book.
You will also need to understand the way rules are stored in the IBM Agent Building Environment Developer's Toolkit Library (refer to Chapter 9. "How Your Application Provides Rules for ABE" of the User's Guide book and the reference material in Chapter 4. "Library Reference" of the Components and Adapter Reference book.
Also become familiar with Chapter 7. "Using the ABE Library" of the User's Guide book, at least the parts relating to rules and facts storage.
This effort will probably also require writing your own agent program in which you formulate the rules, store them in the IBM Agent Building Environment Developer's Toolkit Library, initialize the agent, inform the agent when rules are to be loaded, etc.. This is discussed in "Writing Your Own Agent Program" of the User's Guide book, Chapter 10. "Adding an Agent to Your Application" of the User's Guide book, and the associated reference material in Chapter 2. "Agent Reference" of the Components and Adapter Reference book. It is also illustrated by the Reminder Agent/Server sample (see Chapter 3. "Agent Server Sample" of the User's Guide book and the companion code in Appendix A. "Reminder Agent Sample Formatted Code"of the User's Guide book).