Agent Communication Languages: Past, Present and Future
Agent Communication Languages: Past, Present and Future
Director of Technology
PowerMarket, Inc.
© 2000
Tutorial Objectives
• Present the general requirements of agent
communication languages
• Sketch their conceptual and theoretical
underpinnings
• Describe some current languages and
their realizations in software
implementations
• FIPA standardization efforts
• Discuss trends and future directions
Introduction to Agents
& Agent
Communication
Agents: A system-building paradigm
Distributed Information
Systems Retrieval
agents structured
objects programming
= = 1974
1998 1982
So, what’s a software agent?
• No consensus yet, but several key properties are
important to this emerging paradigm. Agents are:
– Autonomous, taking the initiative as appropriate
– Goal-directed, maintaining an agenda of goals which it pursues
until accomplished or believed impossible.
– Taskable: one agent can delegate rights/actions to another.
– Situated in an environment (computational and/or physical) which
it is aware of and reacts to.
– Cooperative with other agents (software or human) to
accomplish its tasks.
– Communicative with other agents (human
or software)
– Adaptive, modifying beliefs &
behavior based on experience
Some key ideas
• Software agents offer a new paradigm for very large scale
distributed heterogeneous applications.
• The paradigm focuses on the interactions of autonomous,
cooperating processes which can adapt to humans and
other agents.
• Mobility is an orthogonal characteristic which many, but
not all, consider central.
• Intelligence is always a desirable characteristic but is not
required by the paradigm.
• The paradigm is still forming.
Why is communication
important?
• Most, but not all, would agree that
communication is a requirement for cooperation.
• Societies can do things that no individual (agent)
can.
• Diversity introduces heterogeneity.
• Autonomy encourages disregard for other
agents’ internal structure.
• Communicating agents need only care about
understanding a “common language”.
What is communication?
• Communication almost always means “communication in
a common language”
• “Language” does not include natural languages only.
• Understanding a “common language” means:
– understanding of its vocabulary, i.e., understanding of the
meaning of its tokens
– knowing how to effectively use the vocabulary to perform tasks,
achieve goals, effect one’s environment, etc.
• For software agents, an Agent Communication Language
(ACL) is primarily concerned with the vocabulary
Some ACLs
•Is CORBA an ACL?
•Knowledge sharing approach
– KQML, KIF, Ontologies
•FIPA Shared
•Ad hock languages ? experiences
and strategies
– e.g., SGI’s OAA
e.g., ?
Intentional Shared beliefs, plans, goals,
Sharing
and intentions
e.g., KQML, FIPA,
KIF, Aglets
Knowledge Shared facts, rules, constraints,
Sharing
procedures and knowledge
Object
e.g., CORBA, Sharing
Shared objects, procedure calls
RPC, RMI and data structures
Agent Communication,
at the technical level
• Messages are transported using some lower-level
transport protocol (SMTP,TCP/IP, HTTP, IIOP, etc.)
• An Agent Communication Language (ACL) defines the
types of messages (and their meaning) that agents may
exchange.
• Over time, agents engage in “conversations.” Such
interaction protocols (negotiation, auction, etc.), defines
task-oriented, shared sequences of messages.
• Some higher-level conceptualization of an agent’s goals
and strategies drives the agent’s communicative (and
non-communicative) behavior.
What Comes Next
• Conceptual and theoretical foundations I
– The layered nature of communication, services, mobility issues,
Speech Act Theory, BDI
– Knowledge Representation and Ontology Issues
• The Knowledge Sharing Effort
– KIF, KQML, Ontolingua
• The Foundation for Intelligent Physical Agents
– FIPA ACL, FIPA Agent Platform
• Semantic accounts for ACLs
• Alternative approaches and languages
• APIs, Systems and Applications
• Trends and future directions
• Conclusions
Conceptual
and
Theoretical
Foundations
Historical Note:
Knowledge Sharing Effort
• Initiated by DARPA circa 1990
• Sponsored by DARPA, NSF, AFOSR, etc.
• Participation by dozens of researchers in
academia and industry.
• Developing techniques, methodologies and
software tools for knowledge sharing and
knowledge reuse.
• Sharing and reuse can occur at design,
implementation or execution time.
Knowledge Sharing Effort
• Knowledge sharing requires a communication
which requires a common language
• We can divide a language into syntax, semantics,
and pragmatics
• Some existing components that can be used
independently or together:
– KIF - knowledge Interchange Format (syntax)
Propositional
– Ontolingua - a language for defining sharable
ontologies (semantics)
– KQML - a high-level interaction
language (pragmatics) Propositional
attitudes
Knowledge Interchange Format
Sys 3 Know. Base
in
Know. Base
Lang3 in KIF
B + D => I B + D => I
I => A I => A
Units &
Measures
Ontology
Implicit vs. Explicit Ontologies
fruit fruit
fruit
fruit
apple citrus pear
tropical temperate
lime lemon orange
Knowledge
Sharing Effort
(KSE)
Knowledge
Interchange
Format (KIF)
KIF Syntax and Semantics
• Extended version of first order predicate logic
• Simple list-based linear ASCII syntax, e.g.,
(forall ?x (=> (P ?x) (Q ?x)))
(exisits ?person (mother mary ?person))
(=> (apple ?x) (red ?x))
(<<= (father ?x ?y) (and (child ?x ?y) (male ?x))
• Model-theoretic semantics
• KIF includes an axiomatic specification of large
function and relation vocabulary and a vocabulary
for numbers, sets, and lists
Big KIF and Little KIF
• That KIF is highly expressive language is a
desirable feature; but there are disadvantages.
– complicates job of building fully conforming systems.
– resulting systems tend to be “heavyweight”
• KIF has “conformance categories” representing
dimensions of conformance and specifying
alternatives within that dimension.
• A “conformance profile” is a selection of
alternatives from each conformance category.
• System builders decide upon and adhere to a
conformance profile sensible for their applications.
KIF Summary
• KIF is the only widely used interlingua for KB systems
– KIF is the focus of an ANSI standardization effort
– See KIF spec at <http://logic.stanford.edu/> and also
<http://www.cs.umbc.edu/kif> for more information.
• Its future outside the AI-related community is unclear
– It may not be acceptable to a wider community because its too
logic-oriented or not object-oriented or …
– Then again, it’s expressive power may win the day!
• Defining a mapping of KIF to XML might make it more
acceptable.
Knowledge
Query and
Manipulation
Language
(KQML)
KQML
Knowledge Query and Manipulation
Language
• KQML is a high-level, message-oriented, communication
language and protocol for information exchange
independent of content syntax and ontology.
• KQML is independent of
– the transport mechanism (e.g., tcp/ip, email, corba objects, IIOP,
etc.)
– Independent of content language (e.g., KIF, SQL, STEP, Prolog,
etc.)
– Independent of the ontology assumed by the content.
• KQML includes primitive message types of particular
interest to building interesting agent architectures (e.g.,
for mediators, sharing intentions, etc.)
KQML Specifications
• There are two KQML specification documents:
– Specification of the KQML Agent-Communication Language plus
example agent policies and architectures, The DARPA Knowledge
Sharing Initiative, External Interfaces Working Group, 1993.
http://www.cs.umbc.edu/papers/kqml93.pdf
– A Proposal for a new KQML Specification, Yannis Labrou and Tim
Finin, TR CS-97-03, Feb.1997, Computer Science and Electrical
Engineering Department, University of Maryland Baltimore
County, Baltimore, MD 21250.
http://www.cs.umbc.edu/kqml/papers/kqml97.pdf
• There are also many dialects and “extended” versions of
KQML plus lots of important concepts not addressed in
either specification document (e.g., security).
• We’ll mostly focus on the 1997 document plus other ideas
used in practice.
Multiple KQML dialects
1997
1997 1993
Spec
Spec
1993 Dialect
Dialect
Spec
Spec
Dialect
Dialect
Notional
KQML
ACLs
A KQML Message
(tell :sender bhkAgent
performative :receiver fininBot
:in-reply-to id7.24.97.45391
parameter :ontology ecbk12
value :language Prolog
:content
“price(ISBN3429459,24.95)”)
Represents a single speech act or performative
ask, tell, reply, subscribe, achieve, monitor, ...
with an associated semantics and protocol
tell( i,j, Bi ) = fp[Bi Bi Bi( Bifj Bi Uifj Bi )] re[Bj Bi] ...
tell(P) Sorry
A tell((p1 p2 p3...)) B A B
tell(P1)
tell(P2)
ask-all(P) tell(P3)
eos
Stream-all(P)
advertise(q3)
advertise(q2)
ask-all(advertise(P) advertise(q1)
A
C FAC B
advertise(p1)
advertise(p2)
A B ask(P) C A B C
fwd(adv(ask(P)))
tell(P) ask(P)
Recommendtell(P)
Recruit
Agent Names
• System for mapping agents into names is important in
most ACLs
• KQML assumes that names are local
– A can register with B under the name Alice
– A can register with C under the name Albert
• Doesn’t preclude the use of a central Agent Name
Server, an architecture used by most systems
• What gets registered under a name? Contact
information like:
name(albert, tcpip, [cujo.cs.umbc.edu,8080]).
Name(albert,smtp,[[email protected])
name(albert,http,[www.agents.umbc.edu:8090/kqml/albert])
KQML Semantics
• Myth: KQML doesn’t have a good semantic
description.
• Reality: This was true for the first few years of its use,
but has not been true since 1994.
• Yannis Labrou defined a semantics in
– Yannis Labrou and Tim Finin, A semantics approach for KQML -- a
general purpose communication language for software agents, Third
International Conference on Information and Knowledge
Management (CIKM'94), Nov. 1994.
– Yannis Labrou, Semantics for an Agent Communication Language,
Ph.D. Thesis, UMBC, 1996.
– Yannis Labrou and Tim Finin, Semantics and Conversations for an
Agent Communication Language, in "Readings in Agents", Michael
Huhns and Munindar Singh (editors.), Morgan Kaufmann, 1997.
(reprint of IJCAI-97 paper).
• Other approaches to defining the semantics have
been partially explored (more on this later).
KQML APIs and System Interfaces
query
not-understood inform
Agent-Standardization - FIPA
Cooperation between Agents
FIPA-Request - for task delegation
request(action)
reject-proposal accept-proposal
AMS DF ACC
IIOP
AMS DF ACC
IIOP
AMS DF ACC
IIOP
AMS DF ACC
IIOP
• (INTEND x a q) =
(P-GOAL x [DONE x (BEL x (HAPPENS a))?;a] q)
– x has the persistent goal of reaching a state at which it believes
that a will happen, after which (state) a does happen
• Intending is a special kind of commitment
• The agent is committed to arriving at a state in which he is
about to do the intended action next
• Thus an agent cannot be committed to doing something
accidentally or unknowingly
• “I intend for the sun to rise tomorrow” vs
“I intend to get an “A” in this course”
Thoughts on C &L Intention
• Just because an agent intends p, it does not mean
that the agent will even attempt to achieve p
– remember the “escape clause” in the P-GOAL definition
a “pessimistic” agent might drop all its goal because “the sky
is blue” or for any other reason
• The definition of intention does not guarantee a causal
relationship between the agent’s action and “an action
occurring”
– the agent is only required to reach a state that the agent
believes that will lead to “the action a occurring”
C& L on ACL
Semantics
ACLs a la Cohen & Levesque
http://java.sun.com/products/javaspaces/
Comparison of
DCOM/CORBA/Java
ORB Platform Applicable to Mechanism Implementations
Availability
COM/DCOM Originally PC "PC-centric" APIs to one
platforms, but distributed proprietary
Becoming systems system
available on other architecture
platforms
:sender jklabrou
</sender>
</messageparameter>
<messageparameter>