diff --git a/autogpt_platform/backend/backend/copilot/tools/create_agent.py b/autogpt_platform/backend/backend/copilot/tools/create_agent.py index 4f447d3dc3..efb7faa99e 100644 --- a/autogpt_platform/backend/backend/copilot/tools/create_agent.py +++ b/autogpt_platform/backend/backend/copilot/tools/create_agent.py @@ -200,10 +200,13 @@ class CreateAgentTool(BaseTool): if decomposition_result.get("type") == "vague_goal": suggested = decomposition_result.get("suggested_goal", "") + reason = decomposition_result.get( + "reason", "The goal needs more specific details" + ) return SuggestedGoalResponse( message="The goal is too vague to create a specific workflow.", suggested_goal=suggested, - reason="The goal needs more specific details", + reason=reason, original_goal=description, goal_type="vague", session_id=session_id, diff --git a/autogpt_platform/backend/backend/copilot/tools/models.py b/autogpt_platform/backend/backend/copilot/tools/models.py index bd6716daa4..f1a350dd23 100644 --- a/autogpt_platform/backend/backend/copilot/tools/models.py +++ b/autogpt_platform/backend/backend/copilot/tools/models.py @@ -2,7 +2,7 @@ from datetime import datetime from enum import Enum -from typing import Any +from typing import Any, Literal from pydantic import BaseModel, Field @@ -309,7 +309,7 @@ class SuggestedGoalResponse(ToolResponseBase): original_goal: str = Field( default="", description="The user's original goal for context" ) - goal_type: str = Field( + goal_type: Literal["vague", "unachievable"] = Field( default="vague", description="Type: 'vague' or 'unachievable'" ) diff --git a/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx b/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx index 6215f8796c..7741647f70 100644 --- a/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/CreateAgent.tsx @@ -263,6 +263,7 @@ export function CreateAgentTool({ part }: Props) { diff --git a/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/SuggestedGoalCard.tsx b/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/SuggestedGoalCard.tsx index 6e1400c301..9de4240881 100644 --- a/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/SuggestedGoalCard.tsx +++ b/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/SuggestedGoalCard.tsx @@ -7,6 +7,7 @@ import { ArrowRightIcon, LightbulbIcon } from "@phosphor-icons/react"; interface Props { message: string; suggestedGoal: string; + reason?: string; goalType: string; onUseSuggestedGoal: (goal: string) => void; } @@ -14,6 +15,7 @@ interface Props { export function SuggestedGoalCard({ message, suggestedGoal, + reason, goalType, onUseSuggestedGoal, }: Props) { @@ -33,7 +35,7 @@ export function SuggestedGoalCard({ : "Goal needs more detail"} - {message} + {reason || message} diff --git a/autogpt_platform/frontend/src/app/api/openapi.json b/autogpt_platform/frontend/src/app/api/openapi.json index 359a38addc..5315f416ca 100644 --- a/autogpt_platform/frontend/src/app/api/openapi.json +++ b/autogpt_platform/frontend/src/app/api/openapi.json @@ -11709,6 +11709,7 @@ }, "goal_type": { "type": "string", + "enum": ["vague", "unachievable"], "title": "Goal Type", "description": "Type: 'vague' or 'unachievable'", "default": "vague"