feat: Enhance context variable handling for Agent and LLM nodes

This commit is contained in:
zhsama
2026-01-15 23:26:19 +08:00
parent f247ebfbe1
commit f43fde5797
8 changed files with 88 additions and 65 deletions

View File

@ -71,14 +71,35 @@ const useAvailableVarList = (nodeId: string, {
hideEnv,
hideChatVar,
}), ...dataSourceRagVars]
const availableNodesWithParent = [
...availableNodes,
...(isDataSourceNode ? [currNode] : []),
]
const llmNodeIds = new Set(
availableNodesWithParent
.filter(node => node?.data.type === BlockEnum.LLM)
.map(node => node!.id),
)
const filteredAvailableVars = llmNodeIds.size
? availableVars
.map((nodeVar) => {
if (!llmNodeIds.has(nodeVar.nodeId))
return nodeVar
const nextVars = nodeVar.vars.filter(item => item.variable !== 'context')
if (nextVars.length === nodeVar.vars.length)
return nodeVar
return {
...nodeVar,
vars: nextVars,
}
})
.filter(nodeVar => nodeVar.vars.length > 0)
: availableVars
return {
availableVars,
availableVars: filteredAvailableVars,
availableNodes,
availableNodesWithParent: [
...availableNodes,
...(isDataSourceNode ? [currNode] : []),
],
availableNodesWithParent,
}
}