import type { INodeTypeBaseDescription, IVersionedNodeType } from 'n8n-workflow'; import { VersionedNodeType } from 'n8n-workflow'; import { AgentV1 } from './V1/AgentV1.node'; import { AgentV2 } from './V2/AgentV2.node'; export class Agent extends VersionedNodeType { constructor() { const baseDescription: INodeTypeBaseDescription = { displayName: 'AI Agent', name: 'agent', icon: 'fa:robot', iconColor: 'black', group: ['transform'], description: 'Generates an action plan and executes it. Can use external tools.', codex: { alias: ['LangChain', 'Chat', 'Conversational', 'Plan and Execute', 'ReAct', 'Tools'], categories: ['AI'], subcategories: { AI: ['Agents', 'Root Nodes'], }, resources: { primaryDocumentation: [ { url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/', }, ], }, }, defaultVersion: 2, }; const nodeVersions: IVersionedNodeType['nodeVersions'] = { 1: new AgentV1(baseDescription), 1.1: new AgentV1(baseDescription), 1.2: new AgentV1(baseDescription), 1.3: new AgentV1(baseDescription), 1.4: new AgentV1(baseDescription), 1.5: new AgentV1(baseDescription), 1.6: new AgentV1(baseDescription), 1.7: new AgentV1(baseDescription), 1.8: new AgentV1(baseDescription), 1.9: new AgentV1(baseDescription), 2: new AgentV2(baseDescription), }; super(nodeVersions, baseDescription); } }