text: **kwargs) -> str:        # Get the intermediate steps (AgentAction, Observation tuples)        # Format them in a particular way        intermediate_steps = kwargs.pop("intermediate_steps")        thoughts = ""        for action, observation in intermediate_steps:            thoughts += action.log            thoughts += f"\nObservation: {observation}\nThought: "        # Set the agent_scratchpad variable to that value        kwargs["agent_scratchpad"] = thoughts        ############## NEW ######################        tools = self.tools_getter(kwargs["input"])        # Create a tools variable from the list of tools provided        kwargs["tools"] = "\n".join(            [f"{tool.name}: {tool.description}" for tool in tools]        )        # Create a list of tool names for the tools provided        kwargs["tool_names"] = ", ".join([tool.name for tool in tools])        return self.template.format(**kwargs)# Define a custom Output Parserclass SalesConvoOutputParser(AgentOutputParser):    ai_prefix: str = "AI"  # change for salesperson_name    verbose: bool = False    def get_format_instructions(self) -> str:        return FORMAT_INSTRUCTIONS    def parse(self, text: str) -> Union[AgentAction, AgentFinish]: