Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
A Tool for Agent Communication in Mozart/Oz
1. A Tool for Agent Communication in Mozart/Oz * Juan A. Suárez-Romero Amparo Alonso-Betanzos Bertha Guijarro-Berdiñas Cristina Durán-Sanlés Laboratory for Research and Development in Artificial Intelligence Department of Computer Science, University of A Coruña, Spain * PGIDT03TIC10501PR
2.
3. Tool Design CONTROL ConversationMaster Policy Manager Message Distributor Message Converter Transport Protocol Agent Facade Agent Name Service (ANS) INTERNAL PLATFORM MESSAGES MESSAGES TO/FROM OTHER PLATFORMS INTERNAL PLATFORM MESSAGES OUTSIDE MESSAGES Conversation SubManager Conversation SubManager Conversation SubManager Conversations Conversations Conversations Conversations Message Converter Message Converter Message Converter Transport Protocol Transport Protocol Transport Protocol SubMessage Distributor SubMessage Distributor SubMessage Distributor
4. Tool Design CONTROL ConversationMaster Policy Manager Message Distributor Message Converter Message Converter Message Converter Message Converter Transport Protocol Transport Protocol Transport Protocol Transport Protocol Agent Facade Agent Name Service (ANS) SubMessage Distributor SubMessage Distributor SubMessage Distributor MESSAGES TO/FROM OTHER PLATFORMS INTERNAL PLATFORM MESSAGES Conversation SubManager Conversation SubManager Conversation SubManager Conversations Conversations Conversations Conversations MESSAGES TO/FROM OTHER PLATFORMS
5. Tool Design CONTROL ConversationMaster Policy Manager Message Distributor Message Converter Transport Protocol Agent Facade Agent Name Service (ANS) MESSAGES TO/FROM OTHER PLATFORMS INTERNAL PLATFORM MESSAGES Conversation SubManager Conversation SubManager Conversation SubManager Conversations Conversations Conversations Conversations Message Converter Message Converter Message Converter Transport Protocol Transport Protocol Transport Protocol SubMessage Distributor SubMessage Distributor SubMessage Distributor
6. Tool Design CONTROL ConversationMaster Policy Manager Message Distributor Message Converter Transport Protocol Agent Facade Agent Name Service (ANS) MESSAGES TO/FROM OTHER PLATFORMS INTERNAL PLATFORM MESSAGES Conversation SubManager Conversation SubManager Conversation SubManager Conversations Conversations Conversations Conversations Message Converter Message Converter Message Converter Transport Protocol Transport Protocol Transport Protocol SubMessage Distributor SubMessage Distributor SubMessage Distributor
Thank you very much. I’m going to present here a tool that allows the communication of agents written in Mozart/Oz using the KQML language.
First of all, I’ll give a brief introduction about Mozart/Oz. Mozart is a development platform based on the Oz language. Among its features, we can remark the following ones. Like Java, it’s multiplatform. So we write once and run everywhere using the Oz virtual machines. It allows the programming of concurrent and distributed applications, using a data flow synchronization model and ultra-lightweight threads. It is network transparent. Any distributed application performs the same independently on how is distributed across the network. And lastly, it support multiple programming paradigms, like functional programming, object-oriented programming, constraint-based programming, logic programming, and son on. So these features, among others, makes Mozart/Oz a suitable platform to develop multiagent applications. The problem to do this is that there is no tool that allows the communication among agents using a standard agent communication language, like KQML or FIPA. For this reason we have developed such a tool that allows the communication using KQML.
We can see here the high level design of the tool. We have several agents at top that connect to the platform in order to interchange KQML messages among them. The interaction between the agents and the platform is done through the Agent Facade, that is the single entry point to the system. Next we have the control unit, that it’s the core of the system. Its goal is to distribute all the tasks among the components of the platform. The Agent Name Service is in charge of the registration of the agents connected to the platform. Besides this, there is a group of modules that manages all the messages interchanged between agents connected to the same platform. If it’s needed to send or receive a message from an external agent, there is also another group of modules entrusted with this.
An import issue about this tool is that the interchanged KQML messages are grouped into conversations. So when an agents needs to send a message to other agent, it must do it through a conversation. So the Conversation Master manages all the conversations that occur in the system. As there may be a huge amount of conversations in the system, to avoid a bottleneck in the Conversation Master each agent has a Conversation SubManager. That manages all the conversations of the corresponding agent. Finally, we have a Policy Manager, that checks if a message makes sense into a conversation. In this way we can define a communication protocol that suits our requirements.
When a message has to be sent to an agent that is in another platform, the system needs to convert the message into a format that can be understood by the remote system. So the Control send the message to the Message Distributor that is in charge of do this translation. Again, to avoid bottlenecks in this module there is a SubMessage Distributor for each remote platform with which our system connects to send a message. The Message Distributor picks the appropriate SubMessage Distributor and transfers the sending message to it. This module uses a Message Converter to serialize the message into a format that can be understood by the destination platform, like plain text or XML. And sends the result to the remote system using an suitable Transport Protocol. On the other hand, the ingoing messages from a remote platform are received through a Transport Protocol And the Message Distributor deserializes them using a Message Converter and delivers them to the Control.
So if we want to communicate with a new platform we only need to develop a suitable Message Converter and Transport Protocol. Also, we can modify or add a new Policy Manager that adapts to our requirements about the conversations.
Finally, we have checked the performance of our tool by comparing it with two other popular tools written in Java: JATLite and JADE. The experiment and the results of the comparison are more detailed in the paper. Roughly speaking, the test consisted in measuring the time that is needed to interchange a number of messages between agents in a full-loaded system as the number of couple of agents grows. We can notice in the figure that our tool performs the best, pointing out the scalability of the tool.
As a conclusion, we had presented here a tool that allows the KQML communication in Mozart /Oz It’s main features are: The modular design of the tool that let us to modify the functionality of the system or to add new functionalities. The flexibility and adaptability of the tool, so we can adapt the conversation policies or add new message converters and transport protocols to communicate with other new KQML-based tools. The scalability of the tool, in the sense that it performs well under load conditions. And last, but not less important, we inherit all the advantages of using Mozart/Oz. And that’s all. Thank you very much for your attention.