diff options
Diffstat (limited to 'autogpt/core/planning/strategies/name_and_goals.py')
-rw-r--r-- | autogpt/core/planning/strategies/name_and_goals.py | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/autogpt/core/planning/strategies/name_and_goals.py b/autogpt/core/planning/strategies/name_and_goals.py deleted file mode 100644 index c4f1e764a..000000000 --- a/autogpt/core/planning/strategies/name_and_goals.py +++ /dev/null @@ -1,139 +0,0 @@ -from autogpt.core.configuration import SystemConfiguration, UserConfigurable -from autogpt.core.planning.base import PromptStrategy -from autogpt.core.planning.schema import ( - LanguageModelClassification, - LanguageModelPrompt, -) -from autogpt.core.planning.strategies.utils import json_loads -from autogpt.core.resource.model_providers import ( - LanguageModelFunction, - LanguageModelMessage, - MessageRole, -) - - -class NameAndGoalsConfiguration(SystemConfiguration): - model_classification: LanguageModelClassification = UserConfigurable() - system_prompt: str = UserConfigurable() - user_prompt_template: str = UserConfigurable() - create_agent_function: dict = UserConfigurable() - - -class NameAndGoals(PromptStrategy): - DEFAULT_SYSTEM_PROMPT = ( - "Your job is to respond to a user-defined task by invoking the `create_agent` function " - "to generate an autonomous agent to complete the task. You should supply a role-based " - "name for the agent, an informative description for what the agent does, and 1 to 5 " - "goals that are optimally aligned with the successful completion of its assigned task.\n\n" - "Example Input:\n" - "Help me with marketing my business\n\n" - "Example Function Call:\n" - "create_agent(name='CMOGPT', " - "description='A professional digital marketer AI that assists Solopreneurs in " - "growing their businesses by providing world-class expertise in solving " - "marketing problems for SaaS, content products, agencies, and more.', " - "goals=['Engage in effective problem-solving, prioritization, planning, and " - "supporting execution to address your marketing needs as your virtual Chief " - "Marketing Officer.', 'Provide specific, actionable, and concise advice to " - "help you make informed decisions without the use of platitudes or overly " - "wordy explanations.', 'Identify and prioritize quick wins and cost-effective " - "campaigns that maximize results with minimal time and budget investment.', " - "'Proactively take the lead in guiding you and offering suggestions when faced " - "with unclear information or uncertainty to ensure your marketing strategy " - "remains on track.'])" - ) - - DEFAULT_USER_PROMPT_TEMPLATE = "'{user_objective}'" - - DEFAULT_CREATE_AGENT_FUNCTION = { - "name": "create_agent", - "description": ("Create a new autonomous AI agent to complete a given task."), - "parameters": { - "type": "object", - "properties": { - "agent_name": { - "type": "string", - "description": "A short role-based name for an autonomous agent.", - }, - "agent_role": { - "type": "string", - "description": "An informative one sentence description of what the AI agent does", - }, - "agent_goals": { - "type": "array", - "minItems": 1, - "maxItems": 5, - "items": { - "type": "string", - }, - "description": ( - "One to five highly effective goals that are optimally aligned with the completion of a " - "specific task. The number and complexity of the goals should correspond to the " - "complexity of the agent's primary objective." - ), - }, - }, - "required": ["agent_name", "agent_role", "agent_goals"], - }, - } - - default_configuration = NameAndGoalsConfiguration( - model_classification=LanguageModelClassification.SMART_MODEL, - system_prompt=DEFAULT_SYSTEM_PROMPT, - user_prompt_template=DEFAULT_USER_PROMPT_TEMPLATE, - create_agent_function=DEFAULT_CREATE_AGENT_FUNCTION, - ) - - def __init__( - self, - model_classification: LanguageModelClassification, - system_prompt: str, - user_prompt_template: str, - create_agent_function: str, - ): - self._model_classification = model_classification - self._system_prompt_message = system_prompt - self._user_prompt_template = user_prompt_template - self._create_agent_function = create_agent_function - - @property - def model_classification(self) -> LanguageModelClassification: - return self._model_classification - - def build_prompt(self, user_objective: str = "", **kwargs) -> LanguageModelPrompt: - system_message = LanguageModelMessage( - role=MessageRole.SYSTEM, - content=self._system_prompt_message, - ) - user_message = LanguageModelMessage( - role=MessageRole.USER, - content=self._user_prompt_template.format( - user_objective=user_objective, - ), - ) - create_agent_function = LanguageModelFunction( - json_schema=self._create_agent_function, - ) - prompt = LanguageModelPrompt( - messages=[system_message, user_message], - functions=[create_agent_function], - # TODO - tokens_used=0, - ) - return prompt - - def parse_response_content( - self, - response_content: dict, - ) -> dict: - """Parse the actual text response from the objective model. - - Args: - response_content: The raw response content from the objective model. - - Returns: - The parsed response. - - """ - parsed_response = json_loads(response_content["function_call"]["arguments"]) - return parsed_response |