The tracer is accessible from the Jadex Control Center tool
menu. It is a tool inspired by
the Ph.D. work of Dung N. Lam
working on agent software comprehension with abductive
reasoning.
The tracer provides basically an interface and means to log the
internal state of a BDI agent, and to analyze and visualize the
logged information. It is made of two components. The first one
is the TracerAdapter placed in front of an agent as a tool
adapter. It is responsible for filtering messages concerning the
tracing process away from the message queue of an agent and it
collects the information about agent's internal state changes
and other occurrences in the system. The information is then
sent to the Tracer Agent, if an instance is present on the
platform. The latter has the duty to analyze the traces, store
them, and to present them to the user in a graphical form.
The main window of the tracer agent may be seen in Figure 6.1, “Tracer Main Window”. The traces presented here are from the Blocksworld example. In order to indicate a type of traces, they are marked with icons and their different meaning is explained in Table 6.1, “Information logged by the tracer”. The tracer perspective is split into three views including a tree view of agents and traces, a tabular view of traces and a 2D trace space exploring panel.
Table 6.1. Information logged by the tracer
|
Actions describe internal processes of an Agent and are by default ignored by the tracer. |
|
Beliefs are meta traces, that collect all traces concerning the use of beliefs and their change. |
|
Belief read and write access indicate that an agent or its plans have accessed a belief and possibly changed it. |
|
The icons stand for message receive or send events respectively. |
|
Goals are traced when they are adopted by the agent. |
|
Plans are shown, when created in response to a goal or event. |
|
Events represent any agent state changes. |
At the left there is a tree view showing all Jadex BDI agents known to the tracer. The meaning of a particular icon depicting an agent is shown in Table 6.2, “State of an agent”. Descending from the BDI agents, all traces are linked beneath nodes identified to be their cause.
Table 6.2. State of an agent
|
The agent did not send any traces yet. |
|
The agent sends its traces to the tracer. |
|
The agent is ignored by the tracer. |
|
The agent died. |
The functionality provided by the tree popup menu is similar to the functionality from the (Section 6.2.1, “Agent Menu”) and concerns the currently selected trace or agent. In the case of an agent the user may choose to observer it and to adjust the trace filter and history limit ( ). The other options allow to show or hide traces in the graph or table. With the last menu item the trace or the agent may be removed from the tracer perspective.
On the right there are two views. The upper one shows a tabular view of the traces. The traces are ordered in sequence they arrive. The table shows information like a unique trace id. For plans and goals it is the instnace name. For beliefs it is the name of the belief. Also shown is the value, causes and the time this trace happened. The value show the content of a specific trace. For beliefs it is the value of the beliefs. For plans and goals, the string representation of the runtime instance.
The user may select traces in the table based on different criteria, remove them from the table, show them in the graph panel or delete from the tracer perspective. All the fuctionality is accessible under the Section 6.2.2, “Table Menu”) and a coresponding popup menu.
(The lower of the two right views is the graph panel allowing to explore the space of traces. It also allows to multiple presentation options, navigation and choice of among the traces. All this functionality may be accessed from the Section 6.2.3, “Graph Menu”) and a graph popup menu (Figure 6.5, “Graph Popup Menu”).
(