diff --git a/app/(admin)/settings/agent-workflow/agent-workflow-settings-client.tsx b/app/(admin)/settings/agent-workflow/agent-workflow-settings-client.tsx index 0590a0d5b..3fb2aa861 100644 --- a/app/(admin)/settings/agent-workflow/agent-workflow-settings-client.tsx +++ b/app/(admin)/settings/agent-workflow/agent-workflow-settings-client.tsx @@ -55,6 +55,7 @@ import { findAgentWorkflowOptionByKey, findAgentWorkflowStepByKey, flattenAgentWorkflowOptionTree, + getAgentWorkflowSpecialModuleRootOptions, getEnabledAgentWorkflowOptionTree, getAgentWorkflowCategoryLabels, getAgentWorkflowConstraintSettings, @@ -508,6 +509,7 @@ function createWorkflowStepDraft( description: "", enabled: true, sortOrder: stepIndex, + specialModuleEnabled: false, options: [createWorkflowOptionDraft(stepKey, 0, [])], children: [], }; @@ -2115,17 +2117,12 @@ export function AgentWorkflowSettingsClient({ ); const workflowSpecialModuleOptions = useMemo( () => - flattenAgentWorkflowSteps(deferredWorkflowSteps || []).flatMap(({ step }) => - [...(step.options || [])] - .sort((left, right) => left.sortOrder - right.sortOrder) - .filter((option) => option.specialModuleEnabled) - .map((option) => ({ - option, - stepKey: step.key, - stepTitle: step.title || step.key, - path: `${step.title || step.key} / ${option.buttonName || option.key}`, - })) - ), + getAgentWorkflowSpecialModuleRootOptions(deferredWorkflowSteps || []).map((option) => ({ + option, + stepKey: option.key, + stepTitle: option.buttonName || option.key, + path: option.buttonName || option.key, + })), [deferredWorkflowSteps] ); const workflowOptionGapDetails = useMemo( @@ -4962,8 +4959,25 @@ export function AgentWorkflowSettingsClient({
{optionCardCount} 张卡片 卡片树结构 + {step.specialModuleEnabled ? 特殊模块 : null} {isTopLevelStep ? ( <> +
+ + 特殊模块 + + + updateStep(step.key, (currentStep) => ({ + ...currentStep, + specialModuleEnabled: checked, + })) + } + className="scale-75" + aria-label={`设置模块 ${step.title || step.key} 为特殊模块`} + /> +