In knowledge-based systems, agents choose actions based on the principle of rationality to move closer to a desired goal.
But for the agent to actually change its state, it must use whatever means it has available.
The term was coined by Allen Newell in 1982.
[1][2] For example, in a computer program, the knowledge level consists of the information contained in its data structures that it uses to perform certain actions.
The symbol level consists of the program's algorithms, the data structures themselves, and so on.