File size: 1,824 Bytes
5374a2d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)