KQML is a common format for the messages being sent in the communication process; each KQML message is like an object (in the sense of object-oriented programming), which has a performative (this can be thought of as the class of the message), and a number of parameters (instance variables).
The idea at the time was that the agents that used KQML to communicate could be implemented using different programming languages, and any information that agents had could be represented internally in different ways. The internal representation of each agent would generally be unique, but for communication purposes, agents treated other agents as if they had some internal representation of knowledge. This idea is called a virtual knowledge base (VKB).
Though development and distribution of KQML-based implementations did take place, the language did have a number of drawbacks:
As a result of KQML's pitfalls, the Foundation for Intelligent Physical Agents (FIPA) started developing another communication standard in 1995, called the ACL language (Agent Communication Language), in competition with KQML. It differed from KQML in its greater precision, made up of 20 performatives for defining what the messages were to be interpreted as, including different performatives for exchange of information, and extra performatives for task exchange.
This is a language, created specifically to allow particular knowledge
to be represented, to express properties of some domain. It was to express KQML messages' content rather than being a language in which messages
themselves were expressed, and was closely related to first-order logic.
Using this, agents can express: