Bugfix/Disable default user input if memory is disabled for first node (#4530)

disable default user input if memory is disabled for first node
This commit is contained in:
Henry Heng
2025-05-28 15:04:45 +01:00
committed by GitHub
parent 3d6bf72e73
commit da8d0f12d6
2 changed files with 30 additions and 6 deletions
@@ -756,7 +756,7 @@ class Agent_Agentflow implements INode {
/*
* If this is the first node:
* - Add images to messages if exist
* - Add user message
* - Add user message if it does not exist in the agentMessages array
*/
if (options.uploads) {
const imageContents = await getUniqueImageMessages(options, messages, modelConfig)
@@ -767,7 +767,7 @@ class Agent_Agentflow implements INode {
}
}
if (input && typeof input === 'string') {
if (input && typeof input === 'string' && !agentMessages.some((msg) => msg.role === 'user')) {
messages.push({
role: 'user',
content: input
@@ -977,7 +977,19 @@ class Agent_Agentflow implements INode {
inputMessages.push(...runtimeImageMessagesWithFileRef)
}
if (input && typeof input === 'string') {
inputMessages.push({ role: 'user', content: input })
if (!enableMemory) {
if (!agentMessages.some((msg) => msg.role === 'user')) {
inputMessages.push({ role: 'user', content: input })
} else {
agentMessages.map((msg) => {
if (msg.role === 'user') {
inputMessages.push({ role: 'user', content: msg.content })
}
})
}
} else {
inputMessages.push({ role: 'user', content: input })
}
}
}
+15 -3
View File
@@ -410,7 +410,7 @@ class LLM_Agentflow implements INode {
/*
* If this is the first node:
* - Add images to messages if exist
* - Add user message
* - Add user message if it does not exist in the llmMessages array
*/
if (options.uploads) {
const imageContents = await getUniqueImageMessages(options, messages, modelConfig)
@@ -421,7 +421,7 @@ class LLM_Agentflow implements INode {
}
}
if (input && typeof input === 'string') {
if (input && typeof input === 'string' && !llmMessages.some((msg) => msg.role === 'user')) {
messages.push({
role: 'user',
content: input
@@ -545,7 +545,19 @@ class LLM_Agentflow implements INode {
inputMessages.push(...runtimeImageMessagesWithFileRef)
}
if (input && typeof input === 'string') {
inputMessages.push({ role: 'user', content: input })
if (!enableMemory) {
if (!llmMessages.some((msg) => msg.role === 'user')) {
inputMessages.push({ role: 'user', content: input })
} else {
llmMessages.map((msg) => {
if (msg.role === 'user') {
inputMessages.push({ role: 'user', content: msg.content })
}
})
}
} else {
inputMessages.push({ role: 'user', content: input })
}
}
}