from .agent import Agent from ..actions.task_planning import TaskPlanning from ..prompts.task_planner import TASK_PLANNER class TaskPlanner(Agent): """An agent responsible for planning and decomposing high-level tasks into smaller sub-tasks. The TaskPlanner agent analyzes complex goals and breaks them down into a structured sequence of smaller, more manageable tasks. It serves as a critical component in the workflow by creating execution plans that other specialized agents can follow. Attributes: name (str): Name of the task planner agent, defaults to the value in TASK_PLANNER description (str): Description of the agent's purpose and capabilities, defaults to the value in TASK_PLANNER system_prompt (str): System prompt guiding the agent's behavior, defaults to the value in TASK_PLANNER actions (List[Action]): List of actions the agent can perform, defaults to [TaskPlanning()] """ def __init__(self, **kwargs): name = kwargs.pop("name") if "name" in kwargs else TASK_PLANNER["name"] description = kwargs.pop("description") if "description" in kwargs else TASK_PLANNER["description"] system_prompt = kwargs.pop("system_prompt") if "system_prompt" in kwargs else TASK_PLANNER["system_prompt"] actions = kwargs.pop("actions") if "actions" in kwargs else [TaskPlanning()] super().__init__(name=name, description=description, system_prompt=system_prompt, actions=actions, **kwargs) @property def task_planning_action_name(self): """Get the name of the TaskPlanning action associated with this agent. Returns: The name of the TaskPlanning action in this agent's action registry """ return self.get_action_name(action_cls=TaskPlanning)