text: ) -> None:        self.name = name        self.system_message = system_message        self.model = model        self.prefix = f"{self.name}: "        self.reset()    def reset(self):        self.message_history = ["Here is the conversation so far."]    def send(self) -> str:        """        Applies the chatmodel to the message history        and returns the message string        """        message = self.model(            [                self.system_message,                HumanMessage(content="\n".join(self.message_history + [self.prefix])),            ]        )        return message.content    def receive(self, name: str, message: str) -> None:        """        Concatenates {message} spoken by {name} into message history        """        self.message_history.append(f"{name}: {message}")class DialogueSimulator:    def __init__(        self,        agents: List[DialogueAgent],        selection_function: Callable[[int, List[DialogueAgent]], int],    ) -> None:        self.agents = agents