In [RG92,RG95], Rao and Georgeff propose an abstract architecture based on this formalism. The architecture maintains three dynamic data structures representing beliefs, desires and intentions of the agent and an event queue representing all events. The event queue is used to generate a list of options (desires) and a subset of this list of options is selected to be adopted (intentions). The agent then executes the atomic actions associated with the adopted intentions. Any external event that has occurred during the whole process is then added to the event queue. Finally, all achieved desires and intentions as well as all non-attainable desires and intentions are removed from the appropriate data structures. This abstract architecture
''is not a practical system for rational reasoning. The architecture is based on a (logically) closed set of beliefs, desires, and intentions and the provability procedures required are not computable [RG95].''
Consequently, a number of simplifications are suggested which while constraining the expressive power, provide a more practical system. First, they consider only those beliefs that relate to the current state of the world, but which can be expected to change over time. Second, the means for achieving certain desires and the options available are represented explicitly as plans. Plans are specified using the event necessary for plan invocation, the situation that must hold for the plan to be executable and the primitive actions or subgoals that have to be achieved for the plan to be successfully executed. Third, the intentions are represented implicitly as conventional run-time stacks of plans that are adopted to be performed.