An interagent allows interdependencies between agents' communicative acts, expressed as performatives of high-level agent communication language, to be serialized by means of conversation protocols which represent the conventions adopted by agents when interacting through the exchange of messages.
We have modeled and implemented conversation protocols as a special type of pushdown automata because unlike finite state machines, pushdown automata allow to store and subsequently retrieve the context of an ongoing conversation. On the one hand, each state in the finite state control of the pushdown automaton represents the situation of an agent during an ongoing conversation. On the other hand, each transition in the automaton indicates what message has to be either sent or received to produce a transition in the conversation protocol. Therefore, it can be said that interagents constrain what an agent can utter and hear, and when.
An interagent can support a wide range of conversation protocols that can be declaratively defined statically (before the user's run-time, as an element to be stored in the library of conversation protocols) and dynamically (the owner can interactively define new conversation protocols at run-time using a conversation protocol definition language). This capability of allowing agents to alter and define themselves their conversation protocols at run-time distinguishes them from other approaches like COOL [Barbuceanu and Fox, 1995] or JAFMAS [Chauhan, 1997].