An autonomous system that receives information from its environment, processes it, and performs actions on that environment. Agents may have different degrees of intelligence or rationality, and may be implemented in software, hardware, or both.
Software agents operate in symbolic environments, and perceive and act upon strings of symbols; examples include personal assistant agents that enhance and customize facilities for computer users, and data mining agents that search for interesting patterns in large databases. In a distributed system, the agent for a remote procedure call is in a different computer from the caller; its environment is the network and the procedure body. A robot (see robotics) is an example of an agent that perceives its physical environment through sensors and acts through effectors.