Agents
First of all, when talking about agents and multi-agent systems we should try to define what an agent is, however there is no one strict definition, a variety of different definitions exists. Some of them are quite simple, others are much more demanding. All strongly influenced by their background. A different definition will be used in area of artificial intelligence than in area of software engineering. A simple but clear and well understandable definition comes from S. Russel and P. Norvig:
“An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through effectors”.
Another, more precise definition that extends the one above is from P. Maess:
“Autonomous agents are computational systems that inhabit some complex dynamic environment, sense and act autonomously in this environment, and by doing so realize a set of goals or tasks for which they are deigned”
The second definition specifies the kind of agents we are interested in (it talks about computational agents which belongs to the area of engineering and has nothing to with natural agents from the field of biology such as human). It also says the agent are autonomous, which means they have a control over their actions and operate without direct interventions of other entities. Last difference from previous definition is that they are acting in order to achieve some specific goals.