Pattie Maes has developed an agent architecture in which an agent is defined as a set of competence modules [Maes, 1991][Maes, 1990b][Maes, 1989]. These modules loosely resemble the behaviours of Brooks' subsumption architecture (above). Each module is specified by the designer in terms of pre- and post-conditions (rather like STRIPS operators), and an activation level, which gives a real-valued indication of the relevance of the module in a particular situation. The higher the activation level of a module, the more likely it is that this module will influence the behaviour of the agent. Once specified, a set of competence modules is compiled into a spreading activation network, in which the modules are linked to one-another in ways defined by their pre- and post-conditions. For example, if module has post-condition , and module has pre-condition , then and are connected by a successor link. Other types of link include predecessor links and conflicter links. When an agent is executing, various modules may become more active in given situations, and may be executed. The result of execution may be a command to an effector unit, or perhaps the increase in activation level of a successor module.
There are obvious similarities between the agent network architecture and neural network architectures. Perhaps the key difference is that it is difficult to say what the meaning of a node in a neural net is; it only has a meaning in the context of the net itself. Since competence modules are defined in declarative terms, however, it is very much easier to say what their meaning is.