Agent-based systems provide a way of conceptualizing sophisticated software applications that face problems involving multiple and (logically and often spatially) distributed sources of knowledge. In this way, they can be thought of as computational systems composed of several agents that interact with one another to solve complex tasks beyond the capabilities of an individual agent.
The development of agent-based systems can be regarded as a process composed of two well-defined, separate stages concerning respectively:
Notice that nowadays a large amount of time during the development of agent-based systems is devoted to the management of the aforementioned time-consuming, complex agents' interactions. Since most of these appear to be domain-independent, it would be desirable to devise general solutions at this development stage that can be subsequently reused for the deployment of other multi-agent systems. In this manner, and very importantly, agent engineers could exclusively concentrate on the domain-dependent agents' logics issues. And for this purpose, they can largely benefit from their previous experiences in the application of Artificial Intelligence techniques.
In this work we propose an infrastructure that eases the construction of agent-based systems by taking charge of the cumbersome interaction issues inherent to this type of systems. Such infrastructure relies upon two fundamental elements: conversation protocols, coordination patterns that impose a set of rules on the communicative acts uttered by the agents participating in a conversation (what can be said, to whom, and when) , and interagents, autonomous software agents that mediate the interaction between each agent and the agent society wherein this is situated. Very importantly, interagents employ conversation protocols for mediating conversations among agents, and so the management of conversation protocols is in fact their raison d'être.
In our infrastructure interagents constitute the unique mean through which agents interact within a multi-agent scenario (see Figure 1). Thus, as a rule, agents' external behavior is managed by interagents, while their individual logic, knowledge, reasoning, learning, etc. are internal to agents.
We have materialized the conceptualization of interagents through the design and development of JIM: a java-based implementation of a general-purpose interagent capable of managing conversation protocols and capable also of dealing with agent interaction at different levels. JIM has been successfully applied in the development of FM, our current implementation of an agent-mediated electronic auction market.
The other sections of this article are organized as follows. Section 2 provides an overview of our infrastructure by explaining the basics of both conversation protocols and interagents, and introduces an example of multi-agent conversation extracted from FM, which in turn is explained in depth in Section 5. Next section 3 explains in depth conversation protocols. We start introducing their conceptual and formal models, followed by a further analysis concerning the properties that they must exhibit to ensure sound conversations. Furthermore, the way of negotiating, instantiating, and employing conversation protocols are also presented. Section 4 sketches out JIM along with the SHIP protocol that it employs to handle agent interaction at different levels. Section 5 illustrates the valuable use of interagents in the development of FM, an actual agent-based system. Finally, Section 6 analyzes which features distinguish our approach from related approaches, whereas Section 7 presents some final remarks.