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} 为特殊模块`}
+ />
+