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 |
|
Inputs | Mandatory:
| Optional:
|
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
|