Skip to content

Agent Background

ARIbemoss edited this page May 11, 2017 · 1 revision

[Back to BEMOSS Framework Layer]

Background on Agent and Multi-agent System


What is an Agent

Agent is a software entity residing in a certain environment and is able to autonomously react to changes in that environment to achieve its own target. An agent can be characterized by its behavior(s) which is a task(s) that agent performs based on its own objective(s). Typically, there are four outstanding characteristics of an agent:

  • Agent is autonomous – no direct humans’ intervention needed for agent to perform its task.

  • Agent is social – agent communicates and cooperates with other agents and humans in order to achieve its goal.

  • Agent is reactive – agent can respond very quickly with the change in its environment.

  • Agent is proactive – agent does not only react to its environment but also take initiative to adapt its own behavior to achieve the target.

Essentially, in BEMOSS, there are multiple agents called Multi-Agent Systems (MAS) working and communicating together to achieve the system target or their own targets. MAS is employed to breakdown a system goal into smaller targets and delegate them to agents based upon their characteristics. Hence, an overall system goal is achieved by communicating among agents.

In the MAS concept, there are two ways in which agents can interact with each other: direct and indirect interaction. For direct interaction, agents can communicate and negotiate to near-by agents or an agent which is specified to be a receiver of a sending message from a sender agent. For indirect interaction, in an arbitrary system, agents need to react to their environment interfered by other agents.

Agent Architecture

An agent architecture is the fundamental mechanism underlying autonomous software components that support effective behavior in dynamic, real-world and open environments. Theoretically, an agent architecture can range from a purely reactive (or behavioral) architecture that reacts to an environment in a simple stimulus-response fashion to a more deliberative architecture that reasons about its action based on Belief Desire Intention (BDI) model.

Therefore, an agent architecture can fall into four main categories:

  • Logic based - This architecture is based on the foundation of the traditional knowledge-based system technique in which agent’s environment is symbolically represented and manipulated through reasoning mechanisms

  • Reactive - This architecture is based on a stimulus-response mechanism triggered by a perception (sensor data) of an agent. An agent action is directly mapped from a current environment (situation). One of the best-known reactive architecture is Brooks’s subsumption architecture.

  • Belief Desire Intention (BDI) - This is the most popular agent architecture having their root in a philosophy using a modal logic which defines mental attitudes of belief, desire, and intention. One of the well-known BDI architectures is the Procedural Reasoning System (PRS). This architecture is based on four key data structures: beliefs, desires, intentions and plans, and interpreter. Fundamentally, beliefs represent information an agent has about its environment which can be either incomplete or incorrect. Desires represent the tasks delegated to an agent to accomplish its objectives or goals. Intensions represent desires that an agent has committed to achieve. Lastly, plans specify certain series of actions that an agent may follow in order to archive its intentions. The interpreter is used to manage these four data structures to update beliefs from an agent’s perceptions, to generate new desires (tasks) on the basis of new beliefs, to select a subset of currently active desires to act as intentions, and finally to select an action to perform on a basis of current agent’s intentions and procedural knowledge.

  • Layered - This agent architecture allows both reactive and deliberative agent behaviors by enabling subsystems to be arranged as the layers of a hierarchy. Typically, there are two types of control flows within a layered architectures: horizontal and vertical layering. In horizontal layering, all layers are directly connected to sensors and actuators. Thus, each layer acts like an agent. In vertical layering, sensors and actuators are dealt with by at most one layer each creating no inconsistent action suggestions as can be experienced in case of the horizontal layering.


[Back to Developer Resources]

Clone this wiki locally