What are the potential advantages and disadvantages of the use of agent communication languages such as KQML? How do they compare with method invocation in Python or Java?

Agent communication languages (ACLs) can be a vital and essential component in multi-agent systems, allowing heterogenous agents to work together to achieve the goal. They are used in protocols to negotiate and coordinate activity (Finin et al., 1994; Labrou et al., 1999).

However, one of the issues with ACLs has been inconsistent implementation, especially with KQML which ended up with many versions. In response, FIPA-ACL has overcome some of these limitations. In addition, implementing ACLs requires overheads such as message parsing, message routing, and this complexity must be balanced against the gains (Wooldridge, 2002).

Method invocation is another approach to the coordination of action. However, this only really works in homogenous systems where the method to be invocated is know. It does not permit negotiation or other more complex communication protocols (Wooldridge & Jennings, 1995).

References

Finin, T., Fritzson, R., McKay, D., & McEntire, R. (1994). KQML as an agent communication language. In Proceedings of the Third International Conference on Information and Knowledge Management (CIKM'94) (pp. 456-463). ACM. Labrou, Y., Finin, T., & Peng, Y. (1999). The current landscape of Agent Communication Languages. Intelligent Systems, 14(2), 45-52. Wooldridge, M. (2002). An Introduction to MultiAgent Systems. John Wiley & Sons. Wooldridge, M., & Jennings, N. R. (1995). Intelligent agents: Theory and practice. The Knowledge Engineering Review, 10(2), 115-152.