Content area
Abstract
The word agent has many meanings. Even if we restrict ourselves to computer science, the word agent is not uniquely defined.
Intuitively, an agent is an entity that acts on someone's behalf. An agent is autonomous in its decision-making. It possesses some intelligence and knowledge about the problem domain it is used for. An agent can behave reactively in its environment as well as proactively, in order to satisfy its goals.
An important feature of agents is their ability to communicate. An agent communicates with its user and/or other agents.
A system with two or more agents that cooperate or compete with each other in order to solve some problem or perform some task(s) is called a multi-agent system(MAS).
There are two notions of computer agents: a weak notion and a strong notion.
A Weak Notion of Agency
The weak notion of agent is, among other areas, often used within a new software engineering approach called agent-based software engineering.
Wooldridge and Jennings [105], [106] define an agent as
"... a hardware or (more usually) software based computer system that enjoys the following properties:
autonomy: agents operate without the direct intervention o f humans or others, and have some kind o f control over their actions and internal state;
social ability: agents interact with other agents (and possibly humans) via some kind o f agent-communication language;
reactivity: agents perceive their environment (which may be the physical world, a user via a graphical user interface, a collection o f other agents, the Internet, or perhaps all o f these combined), and respond in a timely fashion to changes that occur in it;
pro-activness: agents do not simply act in response to their environment, they are able to etdiibit goal-directed behavior by taking the initiative.
Michael Coen [48] defines agents as:
"... programs that engage in dialogs and negotiate and coordinate transfer o f information."
The definition above puts very small restrictions on a program that is considered to be an agent
In IBM [45], intelligent agents are defined as:
"...software entities that cany out some set o f operations on behalf o f a user or another program with some degree o f independence or autonomy, and in so doing, employ some knowledge or representation o f the user's goals or desires."
In [92], two features of agents are stressed: persistence and special purpose.
"Let us define an agent as a persistent software entity dedicated to a specific purpose. 'Persistent' distinguishes agents from subroutines; agents have their own ideas about how to accomplish tasks, their own agendas. 'Special purpose' distinguishes them from entire multifunction applications; agents are typically much smaller."
The Software Agents Group at MTT [46] compares software agents to conventional software and emphasizes the following differences: "Software agents differ from conventional software in that they are long-lived, semi-autonomous, proactive, and adaptive."
A collection of various agent definitions (including those listed above) can be found in [37]. All of these definitions are based on the weak notion of agency. Authors of [37] gave their own definition of an autonomous agent:
"An autonomous agent is a system situated within and a part o f an environment that senses that environment and acts on it, over time, in pursuit o f its own agenda and so as to effect what it senses in the future."





