The next challenge to meet is that of messages that require responses from several teammates. However, not all messages are of this type. For example, a message meaning ``where are you?'' requires a response, while ``look out behind you'' does not. Therefore it is first necessary for agents to classify messages in terms of whether or not they require responses as a function of the <message-type> field. Since the low-bandwidth channel prevents multiple simultaneous responses, the agents must also reason about the number of intended recipients as indicated by the <target> field. Taking these two factors into account, there are six types of messages, indicated here as a1,a2,a3,b1,b2, and b3:
When hearing any message, the agent updates its internal beliefs of the other agent's status as indicated by the <time-stamped-team-strategy> and <selected-internal-state> fields. However, only when the message is intended for it does it consider the content of the message. Then it uses the following algorithm in response to the message:
if (response-flag set and communicate-delay==0) then say(
response)
where say is an actuator primitive. Players also set the
communicate-delay variable in the event that they need to send
multiple messages to the same agent in a short time. This
communication paradigm allows agents to continue real-time acting
while reasoning about the appropriate time to communicate.