diff --git a/frontend/app/[locale]/agents/components/agentInfo/AgentGenerateDetail.tsx b/frontend/app/[locale]/agents/components/agentInfo/AgentGenerateDetail.tsx index 81c138ce2..37687e1fb 100644 --- a/frontend/app/[locale]/agents/components/agentInfo/AgentGenerateDetail.tsx +++ b/frontend/app/[locale]/agents/components/agentInfo/AgentGenerateDetail.tsx @@ -247,6 +247,10 @@ export default function AgentGenerateDetail({ model_id: defaultLlmModel.id || 0, }); } + // Sync max_step to store in create mode (default to 5) + if (isCreatingMode && !editedAgent.max_step) { + updateProfileInfo({ max_step: 5 }); + } // Sync author to store if not already set (e.g., in create mode with default user email) const defaultAuthor = editedAgent.author || user?.email || (isSpeedMode ? "Default User" : ""); if (!editedAgent.author && defaultAuthor) { diff --git a/frontend/hooks/agent/useSaveGuard.ts b/frontend/hooks/agent/useSaveGuard.ts index 8275e2c18..131e1aa59 100644 --- a/frontend/hooks/agent/useSaveGuard.ts +++ b/frontend/hooks/agent/useSaveGuard.ts @@ -4,7 +4,7 @@ import { App } from "antd"; import { useQueryClient } from "@tanstack/react-query"; import { useConfirmModal } from "../useConfirmModal"; import { useAgentConfigStore } from "@/stores/agentConfigStore"; -import { updateAgentInfo, updateToolConfig, searchToolConfig } from "@/services/agentConfigService"; +import { updateAgentInfo, updateToolConfig, searchToolConfig, searchAgentInfo } from "@/services/agentConfigService"; import { Agent } from "@/types/agentConfig"; import log from "@/lib/logger"; @@ -152,11 +152,31 @@ export const useSaveGuard = () => { ); // Get the final agent ID (from result for new agents, existing currentAgentId for updates) + const isCreatingMode = useAgentConfigStore.getState().isCreatingMode; const finalAgentId = result.data?.agent_id || currentAgentId; if (!finalAgentId) { throw new Error("Failed to get agent ID after save operation"); } + // Handle create mode: exit create mode and select the newly created agent + if (isCreatingMode) { + try { + // Load the full agent details + const agentDetailResult = await searchAgentInfo(Number(finalAgentId)); + if (agentDetailResult.success && agentDetailResult.data) { + // Exit create mode and set the newly created agent as current + useAgentConfigStore.getState().setCurrentAgent({ + ...agentDetailResult.data, + permission: "EDIT", + }); + } + } catch (error) { + log.error("Failed to load newly created agent details:", error); + // Still exit create mode even if detail loading fails + useAgentConfigStore.getState().setCurrentAgent(null); + } + } + // Batch process tool configurations for both create and update modes const baselineTools = useAgentConfigStore.getState().baselineAgent?.tools || []; await batchUpdateToolConfigs(finalAgentId, currentEditedAgent.tools || [], baselineTools);