The following components need to be developed to integrate planning capabilities into agents.
Specifying Cognitive State using PDDL
The ability to specify the cognitive state of an agent in PDDL, a language used and developed by the planning community. The PDDL specification consists of several language features, and a first step is to determine the subset of features that will be used.
Planner Module Syntax
The idea is to integrate a planner into a new type of planning module. A syntax option needs to be added to indicate a planner module needs to be created at run time. The module should specify all input required by the planner.
Planner Module Semantics
A new type of planning module needs to be implemented. The module should be able to take a planning problem as input, pass it to a planner, which after processing either should return a plan or an indication that no plan could be found. Elements of the cognitive state of the agent should be compiled into a planning problem to provide the planner with the input it requires. The execution of the plan that the planner returns needs to be integrated into the agent';s decision cycle, in such a way that the agent can monitor execution of the plan to be able to appropriately respond to failure to execute an action or to changes in the agent's enviroment and to decide whether it should replan (some mechanism that supports the ability to replan is needed here). The termination conditions of a planning module need to be specified, for example, the module should terminate if an action precondition fails.