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:

  1. Most principles can be recast at both the intra- and inter- (architectural and organizational) levels.
  2. Drive toward reusing models and particular behaviors conceptually, in reusable implementations, and in the creation of generic infrastructure components.
  3. Structuring individual or multi-agent knowledge and behaviors includes techniques for composition, layering, and abstraction.
  4. 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:

  1. 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.
  2. 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.
  3. 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.
  4. Develop Verification and Validation: Methods for verifying and validating multi-agent systems appear in many lines of work as common methodological components.
  5. 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.

  1. 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.
  2. Communication Languages:
    1. 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.
    2. 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.
    3. 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.
  3. 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.
  4. Commercial Transfer:
    1. 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.
    2. 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.

  1. 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.
  2. Communication Languages:
    1. Transmission protocol: a level of protocol easier to agree on than that of core agent communication languages.
    2. 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.).
  3. 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.

  1. Agent Languages: As has been discussed several times, the semantics of agent communication languages is quite the controversial area.
    1. 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.
    2. Architectural Independence: Another question is how separate the semantics of an agent communication language can be from the internal architecture of the agents.
    3. Purpose: Some are true "programming" languages, while others might be more properly characterized as "modeling" languages.
    4. 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.
    5. 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?
  2. 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.
  3. 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:
    1. 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.
    2. 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.
  4. 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.
  5. Internal Architecture: Another perennial controversy involves the structure of the agent's internal architecture: how many layers? Should it be application dependent?
  6. Other: Arguments also ensue over

Prognosis

The current prospects and outlook for this segment of the field is good.

References

[Searle 1969]
John R. Searle. Speech acts: an essay in the philosophy of language. London: Cambridge University Press, 1969.

end