matrx.messages.message_manager
¶
Module Contents¶
-
class
MessageManager
¶ A manager inside the GirdWorld that tracks the received and send messages between agents and their teams.
This provides several advantages: - an easier connection between MATRX Core, MATRX API, and the Front-end for messages (e.g. to differentiate between messages send between agents and to teams in the Front-end through a simple api call: ‘get_team_messages’). - an easy way to log communication (as the messages are easily obtained from a GridWorld instance, through some methods).
-
preprocess_messages
(self, tick, messages, all_agent_ids, teams)¶ Preprocess messages for sending, such that they can be understood by the GridWorld.
- For example: if the receiver=None, this means it must be sent to all agents. This function will process
the receiver=None to a seperate message directed at every agent.
- Parameters
- tickint
Current tick of the gridworld
- messagesdict
All messages sent from the agent brains in the gridworld, and received via the api
- all_agent_idslist
IDs of all the agents
- teamslist
…
- ——-
-
fetch_chatroom_ID
(self, chatroom_type, agent_IDs=[], team_name=False)¶ Fetch the ID of a chatroom using various bits of info
- Parameters
- chatroom_typestr
Either “private” for private charooms send between 2 agents, or “team” for messages between teams.
- agent_IDslist (optional)
List of the agent IDs part of that chatroom
- team_namestr (optional)
The name of the team, which is used as chatroom name
-
fetch_chatrooms
(self, agent_id=None)¶ Fetch all the chatrooms, or only those of which a specific agent is part.
- Parameters
- agent_idstr (optional, default, None)
ID of the agent for which to fetch all accessible chatrooms. if None, all chatrooms are returned.
- Returns
- chatroomsdict
A dictionary containing a list with all “private” chatrooms, all “teams” chatrooms, and a “global” key, accessible via likewise named keys.
-
fetch_messages
(self, agent_id=None, chatroom_mssg_offsets=None)¶ Fetch messages, optionally filtered by start tick and/or agent id.
- Parameters
- agent_idstring (optional, default=None)
Only messages received by or sent by this agent will be collected. If none, all messages will be returned.
- chatroom_mssg_offsets: dict (optional, default=None)
A dict of chat IDs, with for each ID from which message onward to send new messages.
- Returns
- Chatroomsdict
Dictionary with as key the chatroom IDs, followed by the chatroom objects containing among others the chatroom messages.
-
copy_message
(self, mssg, from_id, to_id)¶ Copy a message while keeping the potentially custom message type and custom message properties. Global and team messages have to be subdivided into individual messages for each receiving agent. This function copies a message while paying attention to any custom message classes used and their custom properties, in addition to making sure the message has a unique message ID.
- Parameters
- mssg(Custom)Message
original message instance. Can be the default Message() class, or a class that inherits from it.
- from_idstr
the new sender ID.
- to_idstr
the new receiver ID.
- Returns
- new_mssg(Custom)Message
the new message instance with the same class and custom properties as mssg, with the provided from_id and to_id.
- ——-
-