text: class that augments DialogueAgent to use tools.class DialogueAgentWithTools(DialogueAgent):    def __init__(        self,        name: str,        system_message: SystemMessage,        model: ChatOpenAI,        tool_names: List[str],        **tool_kwargs,    ) -> None:        super().__init__(name, system_message, model)        self.tools = load_tools(tool_names, **tool_kwargs)    def send(self) -> str:        """        Applies the chatmodel to the message history        and returns the message string        """        agent_chain = initialize_agent(            self.tools,            self.model,            agent=AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION,            verbose=True,            memory=ConversationBufferMemory(                memory_key="chat_history", return_messages=True            ),        )        message = AIMessage(            content=agent_chain.run(                input="\n".join(