The documentation of the classes and methods involved in the implementation of the agent loop can be found here.
The agent loop is implemented in the agentLoop() method of your subclass. For example:
// The agent loop for the planning agent. public void agentLoop() throws Exception { ActionSequence plan; String goal; goal=getObservationsAndGoal(); // if agent sets goal autonomously, use: getObservations() and showSelectedGoal(goal) plan=findPlan(goal); performPartOfPlan(plan); }Observation gathering and execution of the plan should be performed by calls to method getObservationsAndGoal() (or to one of its variants), and to method performPartOfPlan(). All of these methods are defined in class AbstractAgent, and take care of the interaction with the graphical user interface.
Calls to the inference engine should be performed by calling methods computeOneTrajectory() and computeAllTrajectory(). The list of files that are required by these methods can be retrieved by applying method getFiles on fields aFiles (agent files) and dFiles (domain files) of class AbstractAgent. For example, a code fragment that computes one plan is:
MathSet files=new MathSet(); files.add(tempFile); files=files.union(dFiles.getFiles(DomainFiles.ACT_DESC)); files=files.union(dFiles.getFiles(DomainFiles.PROB_INST)); files=files.union(dFiles.getFiles(DomainFiles.HIDES)); files=files.union(aFiles.getFiles(AgentFiles.PLANNING)); files=files.union(aFiles.getFiles(AgentFiles.HIDES)); trj=computeOneTrajectory(files,currTime,lastTime);For further details on this topic, you can look at the sources of the PlanningAgent and DiagnosticAgent classes, which are contained (after the APLAgent Manager has been started for the first time) in your home directory, in subdirectory APLAgent/AGENTS/AGENT_CLASSES.
For example, PlanningAgent can be compiled as follows: (the instructions below assume that a Unix-like system is being used)
% cd $HOME % cd APLAgent/AGENTS/AGENT_CLASSES/ % javac -classpath /path/to/aplagentmgr/aplagentmgr-0.7.jar:$CLASSPATH PlanningAgent.javaWhen you create your agent classes, keep in mind that a current restriction of the APLAgent Manager is that the compilation of the agent class must result in a single .class file. (This restriction is expected to be lifted soon.)