n8n 是一个 Fair-code 工作流自动化平台,原生支持 AI Agent 能力。通过可视化画布结合自定义代码,连接 1500+ 集成,支持自托管或云端部署。本文从源码层面深入分析其架构设计。
1. 版本化节点系统(VersionedNodeType)
n8n 采用版本化节点架构,所有节点(包括 AI Agent)都通过 VersionedNodeType 基类管理多版本。这种设计允许节点在不破坏现有工作流的情况下持续演进。
源码位置: packages/@n8n/nodes-langchain/nodes/agents/Agent/Agent.node.ts
export class Agent extends VersionedNodeType {
constructor() {
const baseDescription: INodeTypeBaseDescription = {
displayName: 'AI Agent',
name: 'agent',
icon: 'node:ai-agent',
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'],
},
},
defaultVersion: 3.1,
};
const nodeVersions: IVersionedNodeType['nodeVersions'] = {
1: new AgentV1(baseDescription),
1.1: new AgentV1(baseDescription),
// ... 1.2-1.9 均为 AgentV1
2: new AgentV2(baseDescription),
2.1: new AgentV2(baseDescription),
// ... 2.2-2.3 均为 AgentV2
3: new AgentV3(baseDescription),
3.1: new AgentV3(baseDescription),
};
super(nodeVersions, baseDescription);
}
}
架构洞察: 版本映射表将语义版本号映射到具体实现类。V1 系列(1.0-1.9)共享同一实现,V2 和 V3 各有独立实现。defaultVersion: 3.1 表示新建工作流默认使用最新版本。这种设计使得旧工作流可以继续运行,同时新功能只在新版本中提供。