The definition of a software agent is according to Wikipedia simply the following: software agent is used in computer science to refer to pieces of autonomous, or semi-autonomous proactive and reactive, computer software, see . Russell and Norvig say that an individual agent is just something that perceives and acts. Jürgen Lind says more precisely in his book "Iterative Software Engineering for multiagent systems" (Springer, 2001): an agent is a software system that is situated in an environment and that operates in a continuous perceive-reason-act cycle. In ABMs, an agent is the basic unit of modeling of a complex system.
The term "intelligent agent" was coined by Oliver G. Selfridge, an early innovator in AI, in the 1960s. According to Alan Kay ("Computer Software", Scientific American, Sep. 1984), he had software programs in mind capable of observing and responding to changes in their environment:
- "The idea of an agent originated with John McCarthy in the mid-1950's, and the term was coined by Oliver G. Selfridge a few years later, when they were both at the Massachusetts Institute of Technology. They had in view a system that, when given a goal, could carry out the details of the appropriate computer operations and could ask for and receive advice, offered in human terms, when it was stuck. An agent would be a 'soft robot' living and doing its business within the computer's world."