![]() |
Reference Manual |
The AgentBuilder toolkit is designed to provide the agent software developer with an integrated environment for quickly and easily constructing intelligent agents.
The construction tools are divided into four major categories. They are described in detail in the following sections. Figure 1 illustrates the tools in the AgentBuilder Toolkit.
Note that not all tools are available in AgentBuilder Lite. For example, the Agency Viewer tools and the Protocol Editor are not a part of the Lite product.
Each user is provided a directory where all of their files and directories are stored. The location of the user's directory is system dependent. On UNIX systems the default location for the user's AgentBuilder directory is user-home-dir/.AgentBuilder (e.g., /home/flintstone/.AgentBuilder). On Windows systems the default location is drive:/Program Files/AgentBuilderLite1.0.1/users/user-name (e.g., C:/Program Files/AgentBuilderLite1.0.1/users/flintstone). AgentBuilder stores the user's properties file, the error log, and directories for RADL files, generated classes, and the repository in the user's AgentBuilder directory. With the exception of the properties files, the locations of the user's files and directories can be modified using the Project Manager's Options dialog.
The user's properties file describes the location of all user files and directories, the user's identity, and appearance preferences. The error log contains any errors generated by any of the AgentBuilder tools. The RADL directory contains agent definitions; the generated classes directory contains classes that have been generated for a particular agent; the repository contains the data for defined ontologies, projects, agencies, and agents.
The structure of the repository must not be modified. The repository contains separate directories for storing information about agencies, agents, ontologies, projects, protocols and the class table. Each directory is labeled information-typeStore, where information-type is used to indicate the type of information stored in the directory. For example, the agentStore contains information about all agents that have been defined by the user. Each time you select the Save menu item under the File menu, the respective store directory contents are updated.
Performing a Save operation in any tool that manipulates agents has special implications. A Save operation that updates an agent causes an update in any AgentBuilder tool that has the same agent loaded. This feature is needed because the agent tools are inter-dependent. This means you can modify an agent's name in the Agent Manager, and then have the project tree automatically refreshed based on the modified agent. This allows you to have any of the agent tools open simultaneously. For example, you can have the Rule Editor open while defining actions, commitments, and templates. When you save this information, the Rule Editor will automatically update itself to display the newly created actions, commitments, and templates. This frees the user from having to manually update the individual agent tools.
The various AgentBuilder tools share a number of common interface features. The following paragraphs describe common interface features of AgentBuilder. We use the Project Manager as an example. The Project Manager is shown in Figure 2.
Figure 2. AgentBuilder Project Manager
Each AgentBuilder tool includes a Windows menu. The contents of the Windows menu indicate which AgentBuilder tools are visible. The Windows menu is managed with a custom window manager. As tools are opened and closed, the Windows menu is dynamically updated. Selecting a menu item in the Windows menu brings the selected tool to the front. The current implementation limits the selection of windows to windows that are not iconified.
Each AgentBuilder tool contains an identical Help menu. Each Help menu contains the following menu items:
The About menu item displays information about the currently selected tool. The Index menu item provides an index to the help system. The Search menu item allows you to search the help system for a specific topic. The Tutorial menu item displays an on-line tutorial with information for using the AgentBuilder toolkit. The About AgentBuilder menu item brings up a dialog displaying general information about AgentBuilder. The AgentBuilder Home Page menu item displays the home page for the AgentBuilder product. With the exception of the About AgentBuilder menu item, all other menu items utilize your default web browser to display the Help pages.
Figure 3 below shows the Help Index for the AgentBuilder tools. The help system is organized as a series of HTML pages. You can navigate the help system using familiar browser controls. .
Figure 3. AgentBuilder Help Viewer
The Tools menu can be found in the Project Manager, Ontology Manager, Agent Manager, Agency Manager and Protocol Manager. Unlike the Help menu, the contents of the Tools menu is dependent on the AgentBuilder tool selected. For the Project Manager, the Tools menu provides a menu item for selecting the Agent Engine. The Ontology Manager contains menu items for its tools as does the Agent Manager, Agency Manager and the Protocol Manager.
The tree paradigm is used throughout the toolkit. Traditionally, the tree paradigm is used for displaying the contents of file systems. In the AgentBuilder toolkit, the tree paradigm has been extended to describe a containment hierarchy. In the Project Manager, the tree paradigm shows that projects contain agencies, which in turn, contain agents. In the Attributes dialog for the PAC Editor, the tree paradigm is used to show the contents of complex attributes that contain simple attributes, and possibly, other complex attributes.
AgentBuilder provides a very powerful agent construction mechanism that minimizes the amount of typing you must do. The actual agent programming language is generated automatically by the AgentBuilder tools. The objects and attributes you define in the analysis phase of your project are reused by graphical editors. These graphical editors are used to construct complex expressions that give your agents useful behaviors.
AgentBuilder uses an accumulator paradigm for constructing complex patterns and expressions. Several editors use an accumulator text field to accumulate pattern components as you enter them, and a pattern list to display the completed patterns (here "patterns" is used in the generic sense and is not restricted to patterns on the left-hand side of a rule). There is usually a row of buttons or pull-down menus above an accumulator text field; these provide the pattern components that you select for insertion into the accumulator. The pattern list for the completed patterns is usually situated below the accumulator text field. Figure 4 shows a portion of the Condition Pattern panel that is part of the Rule Editor used in AgentBuilder. It provides a good example of the use of the accumulator concept.
Figure 4. Accumulator Building Complex Patterns
The normal sequence of operations is to specify the components of the pattern (operators, variables, constant values, etc.) by using the row of buttons above the accumulator, then click on the Add button to the right of the accumulator text field. Clicking on Add will move the pattern from the accumulator to the associated pattern list. Clicking on the New button will clear the accumulator text field. (The New button does not clear the Pattern List).
In general, pattern components should be specified in a left-to-right order. One important exception to this general rule is the ordering for message conditions and mental conditions in the Rule Editor. To build these conditions you should first specify the conditional operator (e.g., EQUALS, <= , etc.) then specify the operands in left-to-right order. For example, to build the message condition:
(%message.performative EQUALS achieve)
you should first select EQUALS from the Operators pull-down menu. This will fill the accumulator with the template:
This template shows the operator and the <> slot markers which indicate that you need to select two operands. In this case, you would select %message.performative from the Defined Variable dialog (or first you may need to create the variable using the New Variable dialog) then select achieve from the Values dialog. As you select the operands the slot markers in the template will be filled in with the operands from left to right. Finally, click on Add to transfer the pattern from the accumulator to the message condition list below the accumulator.
After the patterns are placed in the pattern list, you can change the ordering of the patterns by using the Up and Down buttons. Clicking on a pattern in the pattern list will highlight the pattern and copy it into the accumulator for modification. Clicking on the Up or Down button will move the pattern up or down one slot in the list. You can delete a highlighted pattern by clicking on the Delete button.
You can find more detailed information about AgentBuilder in the Appendices to this volume. AgentBuilder intrinsics are described in Appendix A, Intrinsics. A detailed description and grammar for RADL is provided in Appendix B,Reticular Agent Definition Language. Operators and Patterns supported by the tools are described in Appendix C, Operators and Patterns.