From 4fc3c70f778b6ea0efb512ac46e7082b9c572c60 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 19:30:53 +0000 Subject: [PATCH] feat(frontend): Add agent creation checklist in CoPilot chat Co-authored-by: itsababseh <36419647+itsababseh@users.noreply.github.com> --- .../backend/api/features/chat/tools/models.py | 17 ++++++ .../copilot/tools/CreateAgent/CreateAgent.tsx | 38 ++++++++++++++ .../components/AgentCreationChecklistCard.tsx | 52 +++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/AgentCreationChecklistCard.tsx diff --git a/autogpt_platform/backend/backend/api/features/chat/tools/models.py b/autogpt_platform/backend/backend/api/features/chat/tools/models.py index 69c8c6c684..1e5c9001dd 100644 --- a/autogpt_platform/backend/backend/api/features/chat/tools/models.py +++ b/autogpt_platform/backend/backend/api/features/chat/tools/models.py @@ -40,6 +40,8 @@ class ResponseType(str, Enum): OPERATION_IN_PROGRESS = "operation_in_progress" # Input validation INPUT_VALIDATION_ERROR = "input_validation_error" + # Agent creation steps + AGENT_CREATION_STEPS = "agent_creation_steps" # Base response model @@ -286,6 +288,21 @@ class ClarificationNeededResponse(ToolResponseBase): questions: list[ClarifyingQuestion] = Field(default_factory=list) +class AgentCreationStep(BaseModel): + """A single step in the agent creation process.""" + + title: str + description: str + status: str = "pending" # pending, in_progress, completed + + +class AgentCreationStepsResponse(ToolResponseBase): + """Response showing the steps for agent creation as a checklist.""" + + type: ResponseType = ResponseType.AGENT_CREATION_STEPS + steps: list[AgentCreationStep] = Field(default_factory=list) + + # Documentation search models class DocSearchResult(BaseModel): """A single documentation search result.""" 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 0d023d0529..81acd4bfd2 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 @@ -16,6 +16,10 @@ import { } from "../../components/ToolAccordion/AccordionContent"; import { ToolAccordion } from "../../components/ToolAccordion/ToolAccordion"; import { useAsymptoticProgress } from "../../hooks/useAsymptoticProgress"; +import { + AgentCreationChecklistCard, + AgentCreationChecklistStep, +} from "./components/AgentCreationChecklistCard"; import { ClarificationQuestionsCard, ClarifyingQuestion, @@ -153,6 +157,9 @@ export function CreateAgentTool({ part }: Props) { {isOperating && ( + This could take a few minutes, grab a coffee ☕ @@ -233,3 +240,34 @@ export function CreateAgentTool({ part }: Props) { ); } + +function getAgentCreationSteps( + progress: number, +): AgentCreationChecklistStep[] { + return [ + { + title: "Analyzing your request", + description: + "Understanding your requirements and breaking down the goal into actionable steps", + status: progress > 10 ? "completed" : "pending", + }, + { + title: "Searching for relevant blocks", + description: + "Finding the best building blocks to accomplish your agent's tasks", + status: progress > 30 ? "completed" : "pending", + }, + { + title: "Designing the workflow", + description: + "Creating the agent structure and connecting blocks together", + status: progress > 60 ? "completed" : "pending", + }, + { + title: "Validating and optimizing", + description: + "Ensuring the agent works correctly and optimizing the workflow", + status: progress > 85 ? "completed" : "pending", + }, + ]; +} diff --git a/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/AgentCreationChecklistCard.tsx b/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/AgentCreationChecklistCard.tsx new file mode 100644 index 0000000000..a606856cf1 --- /dev/null +++ b/autogpt_platform/frontend/src/app/(platform)/copilot/tools/CreateAgent/components/AgentCreationChecklistCard.tsx @@ -0,0 +1,52 @@ +import { CheckCircleIcon, CircleIcon } from "@phosphor-icons/react"; + +export interface AgentCreationChecklistStep { + title: string; + description: string; + status: "pending" | "completed"; +} + +interface Props { + steps: AgentCreationChecklistStep[]; +} + +export function AgentCreationChecklistCard({ steps }: Props) { + return ( +
+

+ Creating your custom agent... +

+
+ {steps.map((step, index) => ( +
+
+ {step.status === "completed" ? ( + + ) : ( + + )} +
+
+
+ {step.title} +
+
+ {step.description} +
+
+
+ ))} +
+
+ ); +}