Reactive plans support action selection. At any given time step, most agents have a number of actions which could potentially be expressed, at least some of which cannot be expressed simultaneously, for example sitting and walking. In architectures without centralized action selection, such as the Subsumption Architecture (6) or the Agent Network Architecture (ANA) (27), the developer must fully characterize for each action how to determine when it should be expressed. This task grows in complexity with the number of new behaviors. For engineers, it is generally easier to describe the desired behavior in terms of sequences of events.
Of course, action-selection sequences can seldom be specified precisely in advance, due to the non-determinism of environments, including the unreliability of the agent's own sensing or actuation. Several types of events may interrupt the completion of an intended action sequence. These events fall into two categories:
Thus the problems of action selection can be broken into three categories: things that need to be checked regularly, things that only need to be checked in a particular context, and things that do not strictly need to be checked at all.
BOD uses reactive plans to perform action selection through behavior arbitration. Individual behavior modules should be simple enough to be programmed to only recommend one action at any particular instant. BOD reactive plans provide three types of plan elements corresponding (respectively) to the three categories of action selection above: drive collections, competences, and action patterns.
The rest of this section explains these three types of elements, in reverse of the above order. BOD reactive plans are described more formally elsewhere (10,11,7). This section gives a quick, informal introduction through examples.