from langchain_core.exceptions import OutputParserException class TaskRepeatedUsageException(OutputParserException): """Exception raised when a task is used twice in a roll.""" error: str = "TaskRepeatedUsageException" message: str = "I just used the {tool} tool with input {tool_input}. So I already know the result of that and don't need to use it now.\n" def __init__(self, tool: str, tool_input: str, text: str): self.text = text self.tool = tool self.tool_input = tool_input self.message = self.message.format(tool=tool, tool_input=tool_input) super().__init__( error=self.error, observation=self.message, send_to_llm=True, llm_output=self.text, ) def __str__(self): return self.message