diff --git a/packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts b/packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts index 45c83627fc5..e56583f99d7 100644 --- a/packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts @@ -28,7 +28,7 @@ export class Agent extends VersionedNodeType { ], }, }, - defaultVersion: 3, + defaultVersion: 3.1, }; const nodeVersions: IVersionedNodeType['nodeVersions'] = { @@ -45,7 +45,9 @@ export class Agent extends VersionedNodeType { 2: new AgentV2(baseDescription), 2.1: new AgentV2(baseDescription), 2.2: new AgentV2(baseDescription), + 2.3: new AgentV2(baseDescription), 3: new AgentV3(baseDescription), + 3.1: new AgentV3(baseDescription), // IMPORTANT Reminder to update AgentTool }; diff --git a/packages/@n8n/nodes-langchain/nodes/agents/Agent/V1/AgentV1.node.ts b/packages/@n8n/nodes-langchain/nodes/agents/Agent/V1/AgentV1.node.ts index b046e52c5b6..390ab5a7e86 100644 --- a/packages/@n8n/nodes-langchain/nodes/agents/Agent/V1/AgentV1.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/agents/Agent/V1/AgentV1.node.ts @@ -12,7 +12,7 @@ import type { } from 'n8n-workflow'; import { - promptTypeOptions, + promptTypeOptionsDeprecated, textFromGuardrailsNode, textFromPreviousNode, textInput, @@ -374,7 +374,7 @@ export class AgentV1 implements INodeType { default: 'toolsAgent', }, { - ...promptTypeOptions, + ...promptTypeOptionsDeprecated, displayOptions: { hide: { '@version': [{ _cnd: { lte: 1.2 } }], diff --git a/packages/@n8n/nodes-langchain/nodes/agents/Agent/V2/AgentV2.node.ts b/packages/@n8n/nodes-langchain/nodes/agents/Agent/V2/AgentV2.node.ts index 3a6a9380a54..4538ed4a013 100644 --- a/packages/@n8n/nodes-langchain/nodes/agents/Agent/V2/AgentV2.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/agents/Agent/V2/AgentV2.node.ts @@ -8,7 +8,7 @@ import type { } from 'n8n-workflow'; import { - promptTypeOptions, + promptTypeOptionsDeprecated, textFromGuardrailsNode, textFromPreviousNode, textInput, @@ -58,7 +58,7 @@ export class AgentV2 implements INodeType { }, default: '', }, - promptTypeOptions, + promptTypeOptionsDeprecated, { ...textFromGuardrailsNode, displayOptions: { diff --git a/packages/@n8n/nodes-langchain/nodes/agents/Agent/V3/AgentV3.node.ts b/packages/@n8n/nodes-langchain/nodes/agents/Agent/V3/AgentV3.node.ts index 19183d20ea0..e3c14db106f 100644 --- a/packages/@n8n/nodes-langchain/nodes/agents/Agent/V3/AgentV3.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/agents/Agent/V3/AgentV3.node.ts @@ -11,6 +11,7 @@ import type { import { promptTypeOptions, + promptTypeOptionsDeprecated, textFromGuardrailsNode, textFromPreviousNode, textInput, @@ -27,7 +28,7 @@ export class AgentV3 implements INodeType { constructor(baseDescription: INodeTypeBaseDescription) { this.description = { ...baseDescription, - version: [3], + version: [3, 3.1], defaults: { name: 'AI Agent', color: '#404040', @@ -47,7 +48,14 @@ export class AgentV3 implements INodeType { type: 'callout', default: '', }, - promptTypeOptions, + { + ...promptTypeOptionsDeprecated, + displayOptions: { show: { '@version': [{ _cnd: { lt: 3.1 } }] } }, + }, + { + ...promptTypeOptions, + displayOptions: { show: { '@version': [{ _cnd: { gte: 3.1 } }] } }, + }, { ...textFromGuardrailsNode, displayOptions: { diff --git a/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/SqlAgent/description.ts b/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/SqlAgent/description.ts index 68e9ec28172..4f4d11f4476 100644 --- a/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/SqlAgent/description.ts +++ b/packages/@n8n/nodes-langchain/nodes/agents/Agent/agents/SqlAgent/description.ts @@ -1,7 +1,7 @@ import type { INodeProperties } from 'n8n-workflow'; import { - promptTypeOptions, + promptTypeOptionsDeprecated, textFromGuardrailsNode, textFromPreviousNode, textInput, @@ -110,7 +110,7 @@ export const sqlAgentAgentProperties: INodeProperties[] = [ }, }, { - ...promptTypeOptions, + ...promptTypeOptionsDeprecated, displayOptions: { hide: { '@version': [{ _cnd: { lte: 1.2 } }], diff --git a/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/ChainLlm.node.ts b/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/ChainLlm.node.ts index 66d102e4058..1b8b1398f24 100644 --- a/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/ChainLlm.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/ChainLlm.node.ts @@ -27,7 +27,7 @@ export class ChainLlm implements INodeType { icon: 'fa:link', iconColor: 'black', group: ['transform'], - version: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7], + version: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8], description: 'A simple chain to prompt a large language model', defaults: { name: 'Basic LLM Chain', diff --git a/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/methods/config.ts b/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/methods/config.ts index 322d7b016aa..3946732eff0 100644 --- a/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/methods/config.ts +++ b/packages/@n8n/nodes-langchain/nodes/chains/ChainLLM/methods/config.ts @@ -8,6 +8,7 @@ import { NodeConnectionTypes } from 'n8n-workflow'; import { promptTypeOptions, + promptTypeOptionsDeprecated, textFromGuardrailsNode, textFromPreviousNode, } from '@utils/descriptions'; @@ -95,10 +96,18 @@ export const nodeProperties: INodeProperties[] = [ }, }, { - ...promptTypeOptions, + ...promptTypeOptionsDeprecated, displayOptions: { hide: { - '@version': [1, 1.1, 1.2, 1.3], + '@version': [{ _cnd: { lte: 1.3 } }, { _cnd: { gte: 1.8 } }], + }, + }, + }, + { + ...promptTypeOptions, + displayOptions: { + show: { + '@version': [{ _cnd: { gte: 1.8 } }], }, }, }, diff --git a/packages/@n8n/nodes-langchain/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.ts b/packages/@n8n/nodes-langchain/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.ts index f4b9c71d4a8..a93ac5433db 100644 --- a/packages/@n8n/nodes-langchain/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.ts +++ b/packages/@n8n/nodes-langchain/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.ts @@ -8,6 +8,7 @@ import { import { promptTypeOptions, + promptTypeOptionsDeprecated, textFromGuardrailsNode, textFromPreviousNode, } from '@utils/descriptions'; @@ -23,7 +24,7 @@ export class ChainRetrievalQa implements INodeType { icon: 'fa:link', iconColor: 'black', group: ['transform'], - version: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6], + version: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7], description: 'Answer questions about retrieved documents', defaults: { name: 'Question and Answer Chain', @@ -100,10 +101,18 @@ export class ChainRetrievalQa implements INodeType { }, }, { - ...promptTypeOptions, + ...promptTypeOptionsDeprecated, displayOptions: { hide: { - '@version': [{ _cnd: { lte: 1.2 } }], + '@version': [{ _cnd: { lte: 1.2 } }, { _cnd: { gte: 1.7 } }], + }, + }, + }, + { + ...promptTypeOptions, + displayOptions: { + show: { + '@version': [{ _cnd: { gte: 1.7 } }], }, }, }, diff --git a/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/v1/actions/assistant/message.operation.ts b/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/v1/actions/assistant/message.operation.ts index 4a209ba43ed..9c90bf616f5 100644 --- a/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/v1/actions/assistant/message.operation.ts +++ b/packages/@n8n/nodes-langchain/nodes/vendors/OpenAi/v1/actions/assistant/message.operation.ts @@ -18,7 +18,7 @@ import { } from 'n8n-workflow'; import { OpenAI as OpenAIClient } from 'openai'; -import { promptTypeOptions } from '@utils/descriptions'; +import { promptTypeOptionsDeprecated } from '@utils/descriptions'; import { getConnectedTools, getPromptInputByType } from '@utils/helpers'; import { getTracingConfig } from '@utils/tracing'; @@ -29,7 +29,7 @@ import { getProxyAgent } from '@utils/httpProxyAgent'; const properties: INodeProperties[] = [ assistantRLC, { - ...promptTypeOptions, + ...promptTypeOptionsDeprecated, name: 'prompt', }, { diff --git a/packages/@n8n/nodes-langchain/utils/descriptions.ts b/packages/@n8n/nodes-langchain/utils/descriptions.ts index b420264db13..890dbb84002 100644 --- a/packages/@n8n/nodes-langchain/utils/descriptions.ts +++ b/packages/@n8n/nodes-langchain/utils/descriptions.ts @@ -100,7 +100,7 @@ export const buildInputSchemaField = (props?: { export const inputSchemaField = buildInputSchemaField(); -export const promptTypeOptions: INodeProperties = { +export const promptTypeOptionsDeprecated: INodeProperties = { displayName: 'Source for Prompt (User Message)', name: 'promptType', type: 'options', @@ -126,6 +126,26 @@ export const promptTypeOptions: INodeProperties = { default: 'auto', }; +export const promptTypeOptions: INodeProperties = { + displayName: 'Source for Prompt (User Message)', + name: 'promptType', + type: 'options', + options: [ + { + name: 'Connected Chat Trigger Node', + value: 'auto', + description: + "Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger", + }, + { + name: 'Define below', + value: 'define', + description: 'Use an expression to reference data in previous nodes or enter static text', + }, + ], + default: 'auto', +}; + export const textInput: INodeProperties = { displayName: 'Prompt (User Message)', name: 'text',