Agents

Agents are at the heart of every Agent.Workbench project. Consequently, if you want to work with Agent.Workbench you will deal with agents at some point of time. The following text covers the topics:

  • What is an agent?

  • What are Mulit-Agent-Systems (MAS)?

  • About agents in Agent.Workbench

What is an agent?

There have been several definitions of the term "agent" over the years. A widely accepted one comes from M. Wooldridge and Jennings (1995) [1]:

“An agent is a computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its delegated objectives”

To put it in simple words, an agent is a autonomous software component that performs various actions in order to accomplish certain tasks that are assigned to him. The following quote gives a good summary of the characteristics and potentials of agents:

"...an agent is autonomous, because it operates without the direct intervention of humans or others and has control over its actions and internal state. An agent is social, because it cooperates with humans or other agents in order to achieve its tasks. An agent is reactive, because it perceives its environment and responds in a timely fashion to changes that occur in the environment. And an agent is proactive, because it does not simply act in response to its environment but is able to exhibit goal-directed behavior by taking initiative. Moreover, if necessary an agent can be mobile, with the ability to travel between different nodes in a computer network." [2]

To illustrate this concept, think of agents as football players during a match. Each football player represents an agent. Although the football player is free to go wherever he likes (autonomous) inside the boundaries of the football field (environment), he has the game plan for the match on his mind and plays accordingly. Each football player can communicate with his teammates to corrdinate the next move (social). A football player always has to perceive his environment (where are my opponents? How much time is left on the clock?) and react to changes (reactive). But if a football player is in possession of the ball, he tries to actively enforce his goals (proactive).

What are Mulit-Agent-Systems (MAS)?

Multiple agents acting in the same environment form a multi-agent systems (MAS). These agents can have common, but also conflicting goals. To continue the football match analogy, all 22 players on the football field create a complex system (MAS), with each football player (agent) having common goals with his teammates and conflicting goals with his opponents.

About agents in Agent.Workbench

Agent.Workbench builds upon the Java Agent DEvelopment framework JADE. JADE provides the basic infrastructure for operating MAS, and comes with a class library as a foundation for building your own MAS. All agent-systems created with Agent.Workbench are executed on the JADE platform.

In Agent.Workbench, MAS are handled as projects that can be configured via the application. In order to create your own agents for an Agent.Workbench project, all you have to do is extending the Agent superclass provided by the JADE library. Detailed instructions on how to create an agent and how to execute it from inside Agent.Workbench can be found in this tutorial.

Further Readings

[1] Michael Wooldridge, Nicholas R. Jennings (1995) "Intelligent agents: Theory and Practice"

[2] Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood (2007) "Developing Multi-Agent Systems with JADE". The book provides a comprehensive explanation of the features provided by the Java Agent Development framework JADE.