Implementing Multi-Agent Systems: Languages, Frameworks, and Standards
K. Decker, T. Finin, C. Manning, M. Singh, J. Treur
As multi-agent systems research nears the end of its second decade,
researchers have moved beyond stand-alone, one-of systems and have
begun to create the software infrastructure for creating new systems
quickly and for building systems that interoperate with one another.
However, the desire for seamless interoperability ("open" systems)
brings with it the push to standardize on agent communication
languages and related agent service facilities. Although a host of
theoretical and practical controversies surround the specification of
such standards, some shared, guiding principles have emerged.
Guiding Principles
Many researchers focus their work on the internal structures of agents
(architecture), while others focus more on the activities and structures
between agents (organization).
Common Principles:
- Most principles can be recast at both the intra- and inter-
(architectural and organizational) levels.
- Drive toward reusing models and particular behaviors conceptually,
in reusable implementations, and in the creation of generic infrastructure
components.
- Structuring individual or multi-agent knowledge and behaviors includes
techniques for composition, layering, and abstraction.
- Interoperability is central.
Research Methodologies
Methodologically, research in the area of agent frameworks and
languages has been pursued in both a theory-driven and
application-driven manner. Often there can be significant interaction
between theory and practice, as in the development of BDI-based
systems [Bratman,Rao95]. Although there are as yet no complete
solutions, multi-agent system development methodologies will be
important for the software engineering of commercial multi-agent
systems [cite ATAL-97??].
Common Methods:
- Develop ontological commitments: Most researchers place their work
in the context of a shared design ontology that defines what are the
important questions to consider and answer in the design of an
individual agent (e.g., planning and scheduling subcomponents, goal
specification mechanisms, mappings from desires to intentions, etc.)
or an agent organization (e.g., authority relations, cooperative vs.
self-interested stances, joint intentions [Cohen,Grosz], social
commitments [Castlefranchi]). Even if the answers to such questions
are very different, the set of issues indicated by these questions
can represent different conceptual approaches.
- Develop Agent Communication Languages: A second methdological issue
important to many researchers is the controversial issue of
designing appropriate agent communication languages. No matter
where a researcher stands on the issue of agent communication
language standardization, the centrality of the interoperability
issue causes all serious multi-agent systems researchers to at least
consider the agent communication language issue. The KQML
(Knowledge, Query, and Manipulation Language) [Finin94] is widely
used at a syntactical and very broad semantic level, but the
detailed semantics vary wildly between research groups.
- Develop Knowledge and Behavior Reuse Mechanisms: A third shared
feature of methodological approaches is a preoccupation with how to
specify agent knowledge and behaviors in a semantically meaningful
and practically reusable way.
- Develop Verification and Validation: Methods for verifying and
validating multi-agent systems appear in many lines of work as
common methodological components.
- Develop Graphical Representations: Finally, for each of these
varied concerns, graphical representations have been developed and
have proven to be helpful.
Current Practice (1997)
In current practice, many research systems, drawing from both
theoretical and application-oriented perspectives, have been
implemented. However, few of these systems see day-to-day use even in
non-industrial settings. Most such systems are implemented using
conventional programming languages (Java, C++, Lisp, and even Perl5)
rather than in languages developed exclusively for multi-agent systems
programming. Partial reuse of agent subcomponents, and even whole
agents (especially general service-oriented agents such as agent name
servers, matchmakers, facilitators, and brokers) has been demonstrated
many times (though mostly within particular research groups). Agent
communication languages are common, but usage is fairly idiosyncratic
within groups (e.g., many variations on KQML).
Clearly building good systems for simple applications is feasible
and is no longer an interesting research question. Similarly clearly,
there are frameworks and tools that are being used over extended
periods of time for multiple projects. However, not all available
theoretical results have been exploited by application or general
framework designers, and there exist some applications that are in
need of supporting theory.
Research Issues
Several research issues in the general area of agent languages and
frameworks are being actively pursued.
- Trust: An important issue is how agents should come to decide
how much trust to place in others, and whom to believe. This general
issue encompasses varied ideas, ranging from deciding between
cooperation or self-interest, to tracking the reliability of certain
information, to highly practical research in agent authentication
methods.
- Communication Languages:
- How useful are speech acts?: One issue is just how useful is it
for agent communication languages to be similar to human
languages. Most of the current popular approaches are based on
speech act theory [Searle69], but of course there is no necessity
for artificial languages to be limited by preceding human
languages.
- Integration with Distributed Protocols: As infrastructure
matures, an issue arises in how the developing multi-agent
infrastructure is integrated with existing distributed networking
technology. An example of this is how the use of UDP or other
network transport mechanisms (as opposed to TCP) would impact
popular agent communication languages such as KQML.
- Evolving Languages: Another issue is the question of agent
communication language evolution---even if agents could
interoperate initially with some standard, how could the agents
themselves automatically extend communication and content
languages appropriately.
- Intra-agent Components: Besides the agent communication
language issue, interoperability of internal agent architectural
components is an active issue. With the necessity in many
applications of agents that plan, schedule, reason about beliefs,
form coalitions, negotiate, etc. comes the desire to share and reuse
such reasoning components.
- Commercial Transfer:
- One issue is how best to facilitate industrial acceptance of
agents, which is made more complex by the use of the term "agent"
by some commercial software developers in contexts only very
tenuously related to any sense of the term as used in the
multi-agent systems field.
- Finally, multi-agent systems language designers face the need to
overcome the impression of industrial programmers that Java is
sufficient for all agent development needs. For the language and
framework researcher, it is not so much the rise of a "killer
multi-agent app" that is desired as the rise of a true hit toolkit
to spread use and attract interest.
Progress on Standards
Work on standards proceeds along several different fronts.
- Roles/capabilities: One level of standards is for standard agent
roles and capabilities. For example, how do agents find one another?
Such high level infrastructure can be built now, relying on
well-understood public services, such as agent name servers,
matchmaker/yellow-page services, service brokering, mediators,
facilitators, translation services, and so on.
- Communication Languages:
- Transmission protocol: a level of protocol easier to agree on than
that of core agent communication languages.
- Content languages: Most proposed agent communication languages
have at least some notion of a separate, extensible (or
retargetable) "content" language where domain-specific information
is communicated. These can be standardized on, even informally,
within common domains (for example, the agent services ontology
implied above of broker, matchmakers, mediators, etc.).
- Tagging content: Finally, there have been some proposals for
tagging data on the web with appropriate meta-data tags so that
web-searching agents would have an easier time of drawing out the
appropriate information from web pages formatted more for human
readability than for consumption by autonomous software agents.
Controversies
Finally, many controversies still range in the agent language and
framework area.
- Agent Languages: As has been discussed several times, the semantics
of agent communication languages is quite the controversial area.
- Simplicity vs. Expressivity: Arguments range from those who want
languages simple enough to be easily implemented and validated, to
those who desire the capabilities of much more complex agent
communication languages that can be extended on the fly.
- Architectural Independence: Another question is how separate the
semantics of an agent communication language can be from the
internal architecture of the agents.
- Purpose: Some are true "programming" languages, while others might
be more properly characterized as "modeling" languages.
- Single or Multi-Language: An orthogonal controversy revolves
around the need for different languages at different levels of a
multi-agent system: building individual behaviors of an agent,
building the agent's internal architecture, building inter-agent
communication languages and coherent coordination protocols, and
building multi-agent organizations.
- Languages vs. Extensions vs. Toolkits: Should work in the field
be more organized towards providing toolkits built in existing
languages (e.g. Java), or in extending existing traditional
programming languages, or in fact creating totally new languages?
- Scalability: Can Organizations (containing agents) be Agents?
Clearly organizations (take human organizations as an `example) have
some agent-like properties, for example the ability to make
commitments. An organizational commitment to deliver a particular
product is clearly not a commitment of any single individual in the
organization. On the other hand, it appears that some of the simple
models that we typically use to understand the actions of individual
agents (such as BDI models) may break down somewhat when trying to
cope with the observed actions of large organizations operating
mostly via standardized operating procedures and responses. An
"organizational goal" or desire is clearly not a simple function of
the goals of the organization's individuals, nor are the goals of the
individuals a simple function of the organizational goals.
- Mobility: Another controversy in the implementation area is the
impact of so-called "mobile" agents---in their purest form, software
agents that can suspend execution on one platform, transfer their
code, and resume execution on a remote platform. While the
technology to do this already exists, the question remains as to what
it is useful for. Tremendous numbers of test systems have been
built both in research and commercially, but few compelling
applications have appeared. The two most common:
- Overcoming intermittent connectivity: Hand-held computing devices
(PDAs) may be only intermittently connected to the network. A
mobile agent can clearly transfer off such a device to do work
while the device is not connected, and transfer back later.
- Overcoming insufficient bandwidth: The second involves running
complex data-dependent code (say, involving a large database)
without having to transfer the data over the network---instead,
the agent goes to the data.
The non-compelling nature of these examples appears when we consider
how these things actually get done: typically, the agent must be
running "on" some software platform that is providing some security
and otherwise protecting the underlying machine from rogue agents;
the agent then must transfer to another such platform. These
platforms can be considered as nothing more than non-mobile agents,
and the "mobile" agents are nothing more than fairly complex messages
that contain not only a description of a task to do, but also
specific code to carry out that task.
- Testbeds: A methodological controversy revolves around the usefulness
of testbeds for agent implementation research. Now that
non-simulated networks are so commonplace and easy to achieve, there
is a question of how much trust to put into limited testbeds. Even a
well-defined testbed problem can sometimes introduce regularities (or
irregularities) that are not present in the real problem domain, and
steps must be taken that this does not effect the resulting research
results. On the other hand, testbeds allow a remarkable amount of
comparability in results between different groups and approaches, and
also sometimes the ability to do careful, well-instrumented,
paired-response studies.
- Internal Architecture: Another perennial controversy involves the
structure of the agent's internal architecture: how many layers?
Should it be application dependent?
- Other: Arguments also ensue over
- whether and how to develop totally self-interested individual
agents,
- useful ways at arriving at socially constructed mutual beliefs, and
- how to cooperatively design multi-agent systems.
Prognosis
The current prospects and outlook for this segment of the field is good.
- New and different applications areas are being explored as larger
and more complex systems are constructed, moving from internet
information retrieval to more complex information gathering and
integration applications. Areas such as manufacturing are drawing
fresh attention in the multi-agent field.
- New software tools, especially graphical specification interfaces,
are being built and will be very important for spreading the use of
multi-agent techniques and enlisting new allies, especially among
industrial users.
- New methodologiesfor multi-agent system software engineering
promise quicker and more consistent design results.
- Finally, while standards are still emerging, even the relative
concentration on a few competing possibilities has and will continue
to enhance reusability and interoperability.
References
- [Searle 1969]
- John R. Searle. Speech acts: an essay in the philosophy
of language. London: Cambridge University Press, 1969.
end