Task: Define Agent Capabilities and Behaviour
Identify the capabilities and responsibilities of the different agent types.
Disciplines: Architecture
Purpose
To identify and detail reusable building blocks of agent functionality and combine them to specify the agent behaviour.
Relationships
Parent Practices
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
    • None
    Outputs
      Main Description
      This task uses the requirements model to define the different types of agents and the capabilities they have to posess. These capabilities are then combined to yield the overall agent behaviour. Its main goal is to enable reuse of agent functionality among different types of agents and thus reduce implementation overhead. It also serves as a validation of the separation of concerns in the system design, especially with regard to the assignment of functionality to different types of agents.

      In ASPECS (Cossentino et al. 2010), the "Agent Identification" activity within the "Agent society design phase" serves a similar purpose, although it is more related to requirements engineering and assumes a hierarchical system structure: "Agent’s goals identification is mainly based on gathering organisation responsibilities located at the lowest level of the system organisational hierarchy. These responsibilities are expressed in term of requirements described by using a combination between a use-case driven and a goal-oriented approach. Agents are conceived to play these lowest-level roles; their personal goals should thus at least correspond to the union of the goals of these roles. To play these roles, agents have also to provide an implementation for the capacities required by these roles. [...] Besides, Agent Identification activity is also guided by the identification of ontology concepts that represent system individuals [...]. These latter are effectively considered as useful guidelines to identify agent responsibilities since an individual acts according to personal motivations and goals. We propose to use Tropos goal and actor diagram to describe the results of this activity. However, system and agent overview diagrams as proposed in Prometheus may also be used as an alternative solution."

      ADELFE (Cossentino & Seidita 2005) defines a similar activity called ”Agent Specification“: "This fragment, for every agent previously identified, aims to define its behavior: the skill, the aptitudes, an interaction language, a world representation and the Non-Cooperative Situations. Then, the identified behaviors are tested."

      Steps
      Identify agent types
      Determine which different kinds of agents there are. Most systems are not completely homogeneous, i.e., that the principle of separation of concerns prescribes that different agent types are responsible for specific duties. Often, agents are representatives of physical entities and can thus be categorised. The requirements are helpful in making these decisions.
      Specify agent type behaviour

      Based on the requirements, specify the overall complex behaviour the agent has to exhibit. Behaviour often correspond to goals that are assigned to the agents.

      As an example, a complex agent behaviour could be the processing of a workpiece in a manufacturing scenario.

      Assign capabilities to agent types

      The different agent types will posess different capabilities that have to be combined to form their overall behaviour. Identify the capabilities necessary to achieve the behaviour of each agent type. Keep reusabilitity and modularisation in mind.

      If "process a workpiece" was defined as a behaviour, this can now be decomposed into more fundamental building blocks that form the capabilites. For instance, processing a workpiece requires receiving it from another agent, applying a certain tool to it, and then handing it over to another agent. These building blocks can be interpreted as capabilities that are re-usable and self-contained.

      Detail functionality associated with the different capabilities

      The functionality of each agent capability has to be detailed to enable its design and implementation later on. Agent capabilities can in turn be combined to achieve an overall complex behaviour the agent has to exhibit according to the requirements.

      Alternatives
      This step can be skipped if the different agent types and their responsibilities have already been defined during requirements analysis. However, it might be worthwhile to refine the capabilities here and provide detailed functional definitions.
      More Information
      Concepts