FIPA Agents and PlatformM. Cossentino
Paradigm shift in programmingtimeassemblerproceduralobjectagentAbstraction level
How agent technology will progress over time according to Agentlink IISource: Agentlink II Roadmap
Past and futureSource: Agentlink II Roadmap
Past and futureSource: Agentlink II Roadmap
Not specifically agent concepts:servicesapplications
Where can you find agents todaydistributed artificial intelligence, robotics, artificial life (also in video game),distributed object computing, human-computer interaction,intelligent and adaptive interfaces, intelligent search and filtering, information retrieval, etc.
Different kind of agentsAn example of categorization
Autonomous agentsBiological agentsComputational agentsSoftware agentsTask specific agentsEntertainment agentsViruses Artificial life agentsRobotic agents
others to come
Different kinds of agentsAnother categorization:
Mobile agentsInterface agentsCollaborative agentsInformation agentsReactive agentsHybrid agentsHeterogeneous agents
What is an agentPerhaps the most general way in which the term agent is used is to denote a hardware or (more usually) software-based computer system that enjoys the following properties:
autonomy: agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state;
social ability: agents interact with other agents (and possibly humans) via some kind of agent-communication language [Genesereth and Ketchpel, 1994];
reactivity: agents perceive their environment, (which may be the physical world, a user via a graphical user interface, a collection of other agents, the INTERNET, or perhaps all of these combined), and respond in a timely fashion to changes that occur in it;
pro-activeness: agents do not simply act in response to their environment, they are able to exhibit goal-directed behaviour by taking the initiative.
From Intelligent Agents: Theory and Practice of M. Wooldridge and N. Jennings (http://www.csc.liv.ac.uk/~mjw/pubs/ker95/ker95-html.html)
BDI Agents ALL agents (except for purely reactive agents) maintain an internal representation of their world.There is an explicit mental stateCan be modified by some form of symbolic reasoning.
An example: BDI agents (BDI = Belief, Desire, Intention)a set of beliefs about the world;a set of goals that the agent is currently trying to achieve (Desires)a library of plans describing how to achieve goals and how to react to changes in beliefsan intention structure; describing how the agent is currently achieving its goals and reacting to changes in beliefs.
What is FIPAFIPA (Foundation for Intelligent Physical Agents) is a non-profit organization aimed at producing standards for the interoperation of heterogeneous software agents
Agent: FIPA definitionAn agent is a computational process that implements the autonomous, communicating functionality of an application. Typically, agents communicate using an Agent Communication Language.
FIPA Agents Agents communicate by exchanging messages which represent speech acts, and which are encoded in an agent-communication-language.
Services provide support services for agents. In addition to a number of standard services including agent-directory-services and message-transport-services the FIPA Abstract Architecture defines a general service model that includes a service-directory-service.
FIPA Agent: Relationships to Other Elements
Agent has an agent-name
Agent may have agent-attributes
Agent has an agent-locator, which lists the transport-descriptions for that agent
Agent may be sent messages via a transport-description, using the transport corresponding to the transport-description
Agent may send a transport-message to one or more agents
Agent may register with one or more agent-directory-services
Agent may have an agent-directory-entry, which is registered with an agent-directory-service
Agent may modify its agent-directory-entry as registered by an agent-directory-service
Agent may deregister its agent-directory-entry from an agent-directory-service.
Agent may search for an agent-directory-entry registered within an agent-directory-service
Agent is addressable by the mechanisms described in its transport-descriptions in its agent-directory-entry
Concrete implementation of the FIPA Agentan agent may be realized in a variety of ways, for example as a Java component, a COM object, a self-contained Lisp program, or a TCL script. It may execute as a native process on some physical computer under an operating system, or be supported by an interpreter such as a Java Virtual Machine or a TCL system. The relationship between the agent and its computational context is specified by the agent lifecycle.
Agents(FIPA) State-machine agent
Agents: a software engineering point of viewAn agent is a subsystemHigh decoupling with other subsystems (agents)High coherence of internal classes (behaviors of the same agent)It offers services to other agents
FIPA agents are communication orientedHigh Standardization in communications provide interoperability:OntologyAgent Interaction Protocols (and communicative acts)Content language
PASSI AgentThe instance of an agent class
It is the software implementation of an autonomous entity capable of pursuing an objective through its autonomous decisions, actions and social relationships.
An agent may occupy several functional roles to achieve its goals
The function temporarily assumed by the agent in the society while pursuing a sub-goalIn playing a role the agent uses one or more of its tasks.
A series of elementary pieces of behavior (actions) necessary for a specific purpose. Each task carries out one of the agents decisions/ actions/ social relationshipsElementary behaviorEach task is composed of several elementary behaviors
PlatformsWhat is a platformA place where agents livenot always neededPlatform responsibilities Agent managementcreation terminationsecurityAgent communication servicesAgent directory services
Agents interactions (FIPA point of view)Agents communicate by exchanging messages which represent speech acts2, and which are encoded in an agent-communication-language.
The simplest for of speech act (we can refer to it as a message) is: Where:i is the originator of the speech act (we can refer to it as a message), act is the name of the act (it communicates the speakers intention to the hearer)j is the target C the semantic content
Examples of communicative acts1 (also called performatives)Query, Inform, Request, Agree, Refuse
1FIPA Communicative Act Library Specification. Foundation for Intelligent Physical Agents, Document FIPA00037 (2000). http://www.fipa.org/specs/fipa00037/.2Searle, J.R., Speech Acts. Cambridge University Press, 1969.
Messages and performativesIs the door open?Open the door (for me)OK! Ill open the doorThe door is openI am unable to open the doorI will not open the doorSay when the door becomes openAnyone wants to open the door?I can open the door for you..at a priceDoor? Whats that? Dont understand...queryrequestagreeinformfailurerefuseSubscribecfpPropose
A layered modelOne conversation can be composed of several messages, each one addressing one different performative (or communicative act)
ConversationsConversations are composed by one or more messagesThey are ruled by agent interaction protocols (AIP, discussed later)Given a message (and its specific performative), the AIP defines which is the set of performatives that could be associated to the following messagesIf a message does not comply to this rule, the agent could not understand it
Components of a message
A layered model
Content and Content languageThe content denotes the content of the message; equivalently denotes the object of the action.
The content language denotes the language in which the content is expressed.
FIPA content languages:SL, CCL, KIF, RDF
A layered model
Agent communication Language
The structure of a message is a key-value-tuple and is written in an agent-communication-language, such as FIPA ACL. The content of the message is expressed in a content-language, such as KIF, SL or RDF. The content-language may reference an ontology, which grounds the concepts being discussed in the content.
ACL message example
A layered model
Transport Message When a message is sent it is transformed into a payload, and included in a transport-message. The payload is encoded using the encoding-representation appropriate for the transport.
A layered model
Message Transport ProtocolEach agent has an agent-name. This agent-name is unique and unchangeable. Each agent has one or more transport-descriptions, which are used by other agents to send a transport-message. Each transport-description correlates to a particular form of message transport, such as IIOP, SMTP, or HTTP. A transport-message is a message expressed in a format (or encoding) that is appropriate to the transport being used. A set of transport-descriptions can be held in a locator.
Example of transport descriptionDirectory entry for agent ABCAgent-name: ABCLocator :