text: task_prioritization_chain: TaskPrioritizationChain = Field(...)    execution_chain: AgentExecutor = Field(...)    task_id_counter: int = Field(1)    vectorstore: VectorStore = Field(init=False)    max_iterations: Optional[int] = None    class Config:        """Configuration for this pydantic object."""        arbitrary_types_allowed = True    def add_task(self, task: Dict):        self.task_list.append(task)    def print_task_list(self):        print("\033[95m\033[1m" + "\n*****TASK LIST*****\n" + "\033[0m\033[0m")        for t in self.task_list:            print(str(t["task_id"]) + ": " + t["task_name"])    def print_next_task(self, task: Dict):        print("\033[92m\033[1m" + "\n*****NEXT TASK*****\n" + "\033[0m\033[0m")        print(str(task["task_id"]) + ": " + task["task_name"])    def print_task_result(self, result: str):        print("\033[93m\033[1m" + "\n*****TASK RESULT*****\n" + "\033[0m\033[0m")        print(result)    @property    def input_keys(self) -> List[str]:        return ["objective"]    @property    def output_keys(self) ->