agentsociety.message.messager

Module Contents

Classes

MessageKind

Message

Messager

A class to manage message sending and receiving.

Data

API

agentsociety.message.messager.__all__

[‘MessageKind’, ‘Message’, ‘Messager’]

class agentsociety.message.messager.MessageKind

Bases: str, enum.Enum

AGENT_CHAT

‘agent-chat’

USER_CHAT

‘user-chat’

AOI_MESSAGE_REGISTER

‘aoi-message-register’

AOI_MESSAGE_CANCEL

‘aoi-message-cancel’

class agentsociety.message.messager.Message

Bases: pydantic.BaseModel

from_id: Optional[int]

None

sender id

to_id: Optional[int]

None

target agent id or aoi id

day: int

None

day

t: float

None

tick

kind: agentsociety.message.messager.MessageKind

None

message kind

payload: dict

None

message payload

created_at: datetime.datetime

‘Field(…)’

message created at

extra: Optional[dict]

None

extra information

__hash__()
class agentsociety.message.messager.Messager(exp_id: str)

A class to manage message sending and receiving.

  • Attributes:

    • _message_interceptor (Optional[ray.ObjectRef]): Reference to a remote message interceptor object.

    • _pending_messages (list): List to store pending messages.

    • _received_messages (list): List to store received messages.

    • _lock (asyncio.Lock): Lock for thread-safe operations.

Initialization

Initialize the Messager.

  • Args:

    • exp_id (str): Experiment ID.

    • message_interceptor (Optional[ray.ObjectRef], optional): Reference to a message interceptor object.

property message_interceptor: Optional[ray.ObjectRef]

Access the message interceptor reference.

  • Returns:

    • Optional[ray.ObjectRef]: The message interceptor reference.

set_message_interceptor(message_interceptor: ray.ObjectRef)

Set the message interceptor reference.

  • Args:

    • message_interceptor (ray.ObjectRef): The message interceptor reference to be set.

async send_message(message: agentsociety.message.messager.Message)

Send a message.

  • Args:

    • message (Message): Message to send.

async fetch_pending_messages()

Fetch messages from the pending messages list. (Called by AgentSimuation)

async set_received_messages(messages: list[agentsociety.message.messager.Message])

Set the received messages. (Called by AgentSimuation)

async fetch_received_messages()

Fetch messages from the received messages list. (Called by AgentSociety)

get_subtopic_channel(agent_id: int, subtopic: str)
get_aoi_channel(aoi_id: int)
get_user_survey_channel(agent_id: int)
get_user_chat_channel(agent_id: int)
get_agent_chat_channel(agent_id: int)
get_user_payback_channel()