I've prepared a checklist of agent communication properties that agent developers should look for. For developers who are familiar with knowledge bases and speech act theory, KQML is a good choice with its feature-rich communication primitives. However, if you're looking at writing your first agent, you're going to need a much simpler communication mechanism that meets your needs and experiences. My work in agent communication has focused on developing a simplified agent communication protocol that isn't tied to any one platform or language. SACP works by grouping agent communication into two roles, listening and talking.
Agents can both listen and talk concurrently, allowing for a great deal of versatility.
Figure 1.0 - Nodespace of an Agent, Containing Both Keys and Subnodes Under SACP, agent designers are free to choose whatever type of structure they want for their nodespaces, just as Web designers or FTP administrators are free to organise their directory structure in whatever manner they desire. Using a hierarchical approach and grouping nodes under logically related parent nodes is recommended, however, to allow easy access to information. Whether you use an approach like SACP or another agent communication mechanism, remember that ease of use for the developer is important. Organizations will have different levels of experience, so you need to strike a balance between ease of use and functionality. Text and Binary Data Exchange SACP supports reading and writing of both textual information and binary data.