|FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS||Yorktown|
|Source: D. Conolly, E. Mamdani, D. Sadek, D. Steiner||nyframework|
FIPA Agent Basic Capability (ABC) List
26 June 1996
This document has been developed in Yorktown. An ad-hoc group has been established to refine this document until the Tokyo meeting.
A very important aspect is that of communication and
interaction. We would like to divert briefly to go into this
aspect in more detail:
From an agent perspective there are 4 different components in
the environment with which the agent may interact: Humans, other
Agents, other non-agent Software (SW), and the Physical World
(PW). These interactions are at different levels due to the
differing complexity and capabilities of the components. We
classify agent interaction within the following table of
|Interaction||Examples||Constraints on Agent Characteristics||Intrinsic Requirements||Extrinsic Requirements|
|Human <-> Human||Natural Language|
|Human <-> Agent||Mono- / Multimodal Input/Output||Adaptive
|Knowledge/Info.Representation & Processing||Perception
|Agent <-> Agent||Agent Interaction Language||Reactive||Information
|Agent <-> SW||Agent API|
|SW <-> SW||API, CORBA|
|SW <-> PW||IEEE Standards?|
As an agent ultimately consists of software, its interaction
with the physical world must be via software. We assume that such
software (e.g. read-out of sensors, activation of effectors such
as robot arms) is already existing and indeed, in some cases
standardised by e.g. IEEE.
With this in mind, the initial classification of the Agent Basic Capability list (ABC List) is along the two dimensions of number of agents (single agent, two agents, agent society) vs. resources, interaction and cognitive capabilities.
For each item in the list we provide an initial definition and
further questions that need to be answered. These items
can/should/will be further refined through discussions in FIPA.
What are the underlying execution models of the agents? Why
are they needed? What standard program resources (processor,
memory, threading, ...) do they require at what costs? What
resources above and beyond those of standard programs do they
- Stand-alone program
- Client/server transaction
How does a single agent interact with its environment (other than with other software agents - this is to be considered separately)? It is highly probable that these interactions may be influenced by / can draw upon the agent-agent interaction (cf. 2.2).
This will largely be accomplished via interaction with software (1.2.b), as software is needed to control physical devices. However, the requirements imposed by the physical world must be considered.
Interfaces to sensors Needed to receive information from the physical environment.
Interfaces to actuators Needed to affect the physical environment. E.g. grasping and lifting, physical movement.
Agent Application Interface
The problem here is one of interfacing to existing applications that were not written with a user agent in mind, i.e., are totally agent-unaware. They were conceived with the notion of a human participating in the interaction. Current API´s are often insufficient to support the requirements for agentification.
Human-Agent interaction can be very complex, ideally humans should be able to interact with agents as they do with other humans (e.g. dialogues). However, it is not envisioned that current technology will allow the standardisation of such interaction within the near future. (Indeed, this may even be undesirable.) However, standardisation is possible at what the agent receives from the human. Two issues may be addressed here:
1. Cooperation and information exchange with humans
2. User authentication.
- audio input Establishing linguisitic, emotional and referential content
- audio output
- visual input Encompasses a large number of input possibilities. Substantial technical progress allows for many opportunites, e.g. identification of pre-specified objects and their position, hand-writing and graphics recognition, face,gesture and expression recognition. This includes gesture input, allowing for advanced control modes.
- visual output The essence of good human-computer
interaction design is to manage the cognitive complexity of the
information that is visually conveyed to the user. E.g. facial
animation, graphical object animation, use of the colour
How an agent processes information and "behaves" influences how it interacts with the environment and with other agents. The internal details need not be standardised, but a categorisation is necessary.
What is it your agent should know? Or does it suffice for this knowledge to reside with the designer who endows the agent with a procedural representation of what is relevant to control its behavior? This will make the resulting agent much more simple. Knowledge and information will also be exchanged between agents (see 2.2.b) - suitable mappings to this format must be supplied.
Despite the fact that the internal architectures of agents should not be specified, it is important to explore the scala of possibilites for agent interaction dependant upon their cognitive architectures (if present).
The agent gains information from many sources (cf. 1.2 and 2.2). It is necessary for this information to be composed for further processing. Fusion can take rather simple forms such as synchronisation of events to complex algorithmic multi-sensor data fusion.
The full advantage of using agents arises in the capability of agents to interact with eachother in order to more effectively carry out their tasks. This is done in the framework of cooperation among agents.
What physical communication links, which software communication protocols are required? (E.g. LAN, TCP/IP, ...) Message-passing must support point-to-point, broadcasting and multicasting. Are forms of communication other than message-passing (e.g. memory-sharing, environment changing) to be considered?
What are the contents of the messages (what do the transmitted symbols refer to) - what are the intended effects? This is a crucial element in the FIPA activities and impacts a variety of other issues, such as the interaction between agents and their environment (similar primitives may be used).
Formalised speech act based approach for the basic primitives supporting cooperation among agents. E.g. Knowledge Query and Manipulation Language (KQML) for information exchange.
Formalised approach for the representation of knowledge exchanged between agents. E.g. Knowledge Interchange Format (KIF)
Compositions of primitive messages into cooperation protocols in which several agents can participate over time. E.g. agents negotiating with each other for optimum use of resources
Semantics of primitive message types. How messages are
processed by the agents.
In order for many agents to exist and interact efficiently with each other in a society, certain constructs must be in place.
Mechanisms to govern the sharing of resources, coordination, effective interaction, etc. e.g. Agent hierarchies, Yellow & White pages (cf. CORBA)
Libraries of predefined agent types which can be easily incorporated in large systems.
Standard libraries of pre-determined cooperation protocols should be available for agents to draw upon when involved in cooperation. The libraries will consist of either domain-independent (e.g. Contract Net, Multistage Negotiation ) or domain-dependent dialogues. (e.g. Appointment Scheduling).
Authentication, Privacy, Safety aspects. Especially important for mobile agents.
- Rules guiding social interaction (agent behaviour, etiquette??, personality??)
- Cultural Diversity ??
It is not clear at the present where these issues fit in.
In use for developing specific agent applications.