To be considered a bonafide agent, an agent (software, hardware or otherwise) must exhibit the behavioural qualities of agenthood. Essentially this means perceiving the software environment through sensors and acting on the environment through actuators. This must be accomplished autonomously.
Agents are one of the most prominent and attractive technologies in computer science at the beginning of the new millennium. The technologies, methods, and theories of agents and multiagent systems are currently contributing to many diverse domains such as information retrieval, user interfaces, electronic commerce, robotics, computer mediated collaboration, computer games, education and training, ubiquitous computing, and social simulation. They not only are a very promising technology, but are also emerging as a new way of thinking, a conceptual paradigm for analyzing problems and for designing systems, for dealing with complexity, distribution, and interactivity, while providing a new perspective on computing and intelligence.
A mail transfer agent for example decides when to transfer and deliver the mail, and does so asynchronously and independently from the behaviours of other agents in the system.
Agents generally --and including some software agents-- have the ability to learn and to reason, logically or otherwise. They may discover facts and rules about the world or about others and may assess and argue these truths and may alter their ontology.
Environments in which agents operate can be defined in different ways. It is helpful to view the following definitions as referring to the way the environment appears from the point of view of the agent itself.
Observable & partially observable
In order for an agent to be considered an agent, some part of the environment - relevant to the action being considered - must be observable. In some cases (particularly in software) all of the environment will be observable by the agent. This, while useful to the agent, will generally only be true for relatively simple environments.
An environment that is fully deterministic is one in which the subsequent state of the environment is wholly dependent on the preceding state and the actions of the agent. If an element of interference or uncertainty occurs then the environment is stochastic. Note that a deterministic yet partially observable environment will appear to be stochastic to the agent.
An environment state wholly determined by the preceding state and the actions of multiple agents is called strategic.
This refers to the task environment of the agent. If each task that the agent must perform does not rely upon past performance, and will not effect future performance then it is episodic. Otherwise it is sequential.
Static & dynamic
A static environment, as the name suggests, is one that does not change from one state to the next while the agent is considering its course of action. In other words - the only changes to the environment as those caused by the agent itself. A dynamic environment will change - and thus if an agent does not respond in a timely manner, this counts as a choice to do nothing.
This distinction refers to whether or not the environment is composed of a finite or infinite number of possible states. A discrete environment will have a finite number of possible states, however, if this number is extremely high, then it becomes virtually continuous from the agents perspective.
Single-agent & multiple agent
An environment is only considered multiple agent if the agent under consideration must act cooperatively or competitively with another agent to achieve some task or goal. Otherwise another agent is simply viewed as a stochastically behaving part of the environment.
Overview of environments
|rising order of complexity →|
- Control theory
- Free will and determinism
- Machine learning
- Semantic Web
- Simulated reality
- Social simulation