“The variability and the adaptability of cognition comes from the knowledge that is encoded in a cognitive architecture.
Thus, a cognitive architecture provides the fixed processes and memories and their associated algorithms and data structures
to acquire, represent, and process knowledge about the environment and tasks for moment-to-moment reasoning, problem solving, and goal-oriented behavior.
This leads to a simple equation: architecture + knowledge = behavior. (…)
An environment, though it may be complex and dynamic, is not arbitrary.
The laws of interaction that govern the environment are constant, often are predictable, and lead to recurrence and regularity that affect the agent’s ability to achieve its goals.
There are different regularities at different time scales, which makes it possible and useful to organize knowledge about tasks, actions, and the environment hierarchically. (…)
Computation resources are limited so that an agent cannot perform arbitrary computation in the time it has available to respond to the dynamics of the environment.
Thus, an agent has bounded rationality and cannot achieve perfect rationality (or universal intelligence) in sufficiently complex environments and tasks when it has a large body of knowledge. (…)
Thus, to preserve reactivity, a cognitive architecture must constrain the types of knowledge that can be encoded and or the types of queries that can be made.
The architecture can include fixed methods for organizing its knowledge so that it can be searched quickly (relative to overall temporal scale of the agent),
possibly in bounded time, using data structures such as hash tables, heaps, or trees that avoid the exponential explosion inherent to problem-space search.”