BBAI was first developed by Brooks (6), at a time when there were several prominent modular theories of natural intelligence being discussed (29,13,17). In BBAI, intelligence is composed of a large number of modular elements that are relatively simple to design. Each element operates only in a particular context, which the module itself recognizes. In Brooks' original proposal, these modules are finite state machines organized into interacting layers, which are themselves organized in a linear hierarchy or stack. The behaviors have no access to each other's internal state, but can monitor and/or alter each other's inputs and outputs. Layers are an organizational abstraction: the behaviors of each layer achieve one of the agent's goals, but a higher layer may subsume the goal of a lower layer through the mechanism of affecting inputs and outputs. This is the subsumption architecture (6).
BBAI has proved powerful because of the robustness and simplicity of the programs. Each behavior module is straight-forward enough to program reliably. BBAI is also strongly associated with reactive intelligence, because the subsumption architecture was both behavior-based and reactive. Reactive intelligence operates with no deliberation or search, thus eliciting the good response times critical for the successful operation of real-time systems such as robots or interactive virtual reality (34).
The cost of reactive intelligence is engineering. The agent's intelligence must be designed by hand since it performs no search (including learning or planning) itself. Although there have been some efforts made to learn or evolve BBAI programs off-line (e.g. 23,33), these efforts themselves take immense amounts of design, and have not proved superior to hand-designed systems (32,36). Although behavior modules are themselves definitionally easy to create, engineering the interactions between behaviors has proved difficult. Some authors have taken the approach of limiting behaviors to representations that are easily combined (e.g. 1,24), but this in turn limits the complexity of the agent that can be created by limiting its most powerful building blocks.