An intelligent agent is a machine (either virtual or physically realized) that is provided input from its environment and generates output based on the input. An agent differs from a mathematical function or computer subroutine in that an agent interacts with its environment for an extended amount of time. Human beings are examples of intelligent agents. Human beings receive stimuli to their nervous systems from the world around them and respond with appropriate actions. A simple example seen in real life, is the robotic vacuum cleaner that changes its movements in response to readings taken from the environment, with the result that the robot appears to navigate intelligently around obstacles.
An agent's inner workings may either keep a record of past input or determine its output only from its current input. If an agent's output only depends on its current input, a simple acyclic arrangement of logic gates may determine the output, and hence the appropriate action, from the the values present at the current time on its input sensors. In this context acyclic implies that the outputs of the logic gates can't feed back into previous inputs. Cyclic logic gate arrangements allow circuits to act as memory (e.g. with flip-flops) and so make decisions based not only on the current state of the world, but also by considering things that have happened in the past. If an agent can store past inputs and its actions depend on past inputs, it can be described formally as a finite state automaton (FSA). A finite state automaton can be in one of a (finite) number of internal states. Each time a FSA receives an input, it may produce an output and may change its internal state. Both the output and the new internal state depend on both the current input and the internal state. Because a FSA has a limited number of internal states, an agent can only store a maximum amount of information about its past experiences. Because an agent cannot keep a memory of every input it has received, an agent must be able to determine what information is worth remembering.
Although any agent can be described in principle with a FSA, in practice the FSA model may not be the easiest way to understand an intelligent agent. It may be easier to understand some agents as consisting of neural networks or other computational components.