diff --git a/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx b/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx
index 221ce479d0..a96654c4d9 100644
--- a/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx
+++ b/web/app/components/workflow/nodes/_base/components/agent-strategy-selector.tsx
@@ -99,7 +99,7 @@ export const AgentStrategySelector = memo((props: AgentStrategySelectorProps) =>
if (!list) return []
return list.filter(tool => tool.name.toLowerCase().includes(query.toLowerCase()))
}, [query, list])
- const { strategyStatus } = useStrategyInfo(
+ const { strategyStatus, refetch: refetchStrategyInfo } = useStrategyInfo(
value?.agent_strategy_provider_name,
value?.agent_strategy_name,
)
@@ -178,13 +178,13 @@ export const AgentStrategySelector = memo((props: AgentStrategySelectorProps) =>
:
}
{showSwitchVersion &&
{t('workflow.nodes.agent.strategyNotFoundDescAndSwitchVersion')}
}
onChange={() => {
- // TODO: refresh all strategies
+ refetchStrategyInfo()
}}
/>}
diff --git a/web/app/components/workflow/nodes/agent/use-config.ts b/web/app/components/workflow/nodes/agent/use-config.ts
index 64a666d82f..88c793723f 100644
--- a/web/app/components/workflow/nodes/agent/use-config.ts
+++ b/web/app/components/workflow/nodes/agent/use-config.ts
@@ -49,10 +49,15 @@ export const useStrategyInfo = (
isExistInPlugin: strategyExist,
}
}, [strategy, marketplace, strategyProvider.isError, strategyProvider.isLoading])
+ const refetch = useCallback(() => {
+ strategyProvider.refetch()
+ marketplace.refetch()
+ }, [marketplace, strategyProvider])
return {
strategyProvider,
strategy,
strategyStatus,
+ refetch,
}
}