From 625ed2a0e7e0b097d89d0f712a1deaf6b4dec5f4 Mon Sep 17 00:00:00 2001 From: yyh <92089059+lyzno1@users.noreply.github.com> Date: Thu, 23 Jul 2026 11:37:13 +0800 Subject: [PATCH] fix(workflow): hide Agent V2 in chatflow (#39439) --- .../__tests__/use-available-nodes-meta-data.spec.ts | 12 ++++++++++++ .../hooks/use-available-nodes-meta-data.ts | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/web/app/components/workflow-app/hooks/__tests__/use-available-nodes-meta-data.spec.ts b/web/app/components/workflow-app/hooks/__tests__/use-available-nodes-meta-data.spec.ts index d590ca4af56..e6e0927a6bf 100644 --- a/web/app/components/workflow-app/hooks/__tests__/use-available-nodes-meta-data.spec.ts +++ b/web/app/components/workflow-app/hooks/__tests__/use-available-nodes-meta-data.spec.ts @@ -40,6 +40,18 @@ describe('useAvailableNodesMetaData', () => { ) }) + it('should expose legacy Agent instead of Agent v2 in chat mode when Agent v2 is enabled', () => { + mockUseIsChatMode.mockReturnValue(true) + + const { result } = renderHook(() => useAvailableNodesMetaData()) + const nodeTypes = result.current.nodes.map((node) => node.metaData.type) + + expect(nodeTypes).toContain(BlockEnum.Agent) + expect(nodeTypes).not.toContain(BlockEnum.AgentV2) + expect(result.current.nodesMap?.[BlockEnum.Agent]).toBeDefined() + expect(result.current.nodesMap?.[BlockEnum.AgentV2]).toBeUndefined() + }) + it('should include workflow-specific trigger and end nodes outside chat mode', () => { mockUseIsChatMode.mockReturnValue(false) diff --git a/web/app/components/workflow-app/hooks/use-available-nodes-meta-data.ts b/web/app/components/workflow-app/hooks/use-available-nodes-meta-data.ts index 68abe79c966..53ef51f3bfb 100644 --- a/web/app/components/workflow-app/hooks/use-available-nodes-meta-data.ts +++ b/web/app/components/workflow-app/hooks/use-available-nodes-meta-data.ts @@ -31,6 +31,7 @@ export const useAvailableNodesMetaData = () => { const isChatMode = useIsChatMode() const docLink = useDocLink() const agentV2Enabled = isAgentV2Enabled() + const shouldUseAgentV2 = agentV2Enabled && !isChatMode const startNodeMetaData = useMemo( () => ({ @@ -45,7 +46,7 @@ export const useAvailableNodesMetaData = () => { const mergedNodesMetaData = useMemo(() => { const commonNodes = WORKFLOW_COMMON_NODES.filter((node) => - agentV2Enabled + shouldUseAgentV2 ? node.metaData.type !== BlockEnum.Agent : node.metaData.type !== BlockEnum.AgentV2, ) @@ -63,7 +64,7 @@ export const useAvailableNodesMetaData = () => { TriggerPluginDefault, ]), ] - }, [agentV2Enabled, isChatMode, startNodeMetaData]) + }, [isChatMode, shouldUseAgentV2, startNodeMetaData]) const availableNodesMetaData = useMemo( () =>