n8n 深度实战:从工作流自动化引擎到 AI Agent 编排平台——源码架构、生产部署与性能优化的完整指南(2026)
n8n 是 2026 年工作流自动化领域最热门的开源项目之一,拥有 179K+ GitHub Stars。本文从源码架构、执行引擎、AI 集成、生产部署到性能优化,进行 12000 字深度解析。
目录
- n8n 是什么?为什么 2026 年必须关注?
- 架构全景:TypeScript 全栈与公平代码许可
- 核心概念深度解析
- 执行引擎源码分析
- AI Agent 与 LangChain 集成实战
- 自托管生产级部署
- 自定义节点开发指南
- 性能优化与高并发
- 安全架构与最佳实践
- 实战案例:构建 RAG Agent 工作流
- n8n vs 竞品:Zapier、Make、Dify 横向对比
- 2026 路线图与未来展望
- 总结
1. n8n 是什么?为什么 2026 年必须关注?
n8n(发音 "n-eight-n")是一个基于 公平代码(fair-code) 许可的开源工作流自动化工具。2026 年,n8n 的 GitHub Star 数已突破 179K,月下载量超过 200 万次,成为自托管自动化平台的事实标准。
1.1 核心定位
n8n 解决的核心问题是:把重复的、跨系统的、需要人工触发的任务,变成可视化编排的自动化工作流。
典型场景:
- 客户填写 Typeform → 自动写入 CRM + 发送 Slack 通知 + 创建 Trello 卡片
- 每天定时抓取 GitHub Trending → 用 AI 总结 → 推送到微信公众号
- 监控服务器日志 → 异常时自动触发 PagerDuty + 用 LLM 分析根因
1.2 2026 年的关键变化
2026 年 n8n 有几个重大进展,使其从"Zapier 替代品"跃升为"AI Agent 编排平台":
| 版本 | 核心变化 | 发布时间 |
|---|---|---|
| 1.34 | AI Agent 节点正式 GA | 2025 Q4 |
| 1.40 | LangChain.js 深度集成,支持 50+ LLM | 2026 Q1 |
| 1.45 | 队列模式生产就绪,支持 Redis Cluster | 2026 Q2 |
| 1.50 | MCP(Model Context Protocol)原生支持 | 2026 Q2 |
| 2.0(Roadmap) | 分布式执行引擎 + 原生版本管理 | 2026 Q3 |
2. 架构全景:TypeScript 全栈与公平代码许可
2.1 技术栈
前端:Vue 3 + Pinia + TypeScript
后端:TypeScript + Node.js + Express
执行引擎:自研 WorkflowEngine(支持队列/主从模式)
数据库:SQLite(默认)/ PostgreSQL(生产)
队列:BullMQ(Redis)
部署:Docker / Kubernetes / PM2
2.2 公平代码许可(fair-code)
n8n 采用 Sustainable Use License,属于 fair-code 许可:
- ✅ 源码始终可见
- ✅ 可免费自托管
- ✅ 可修改、扩展
- ❌ 不能作为 SaaS 竞品转售(需商业许可)
这种许可模式在 2026 年已被多家开源项目采用(类似 Valkey 从 Redis 分叉的哲学),平衡了开源与商业可持续性。
2.3 目录结构(源码导览)
n8n/
├── packages/
│ ├── core/ # 执行引擎核心
│ ├── workflow/ # Workflow 解析与验证
│ ├── cli/ # CLI 工具(@n8n/cli)
│ ├── editor-ui/ # Vue 前端
│ ├── backend/ # Express 后端 API
│ ├── nodes-base/ # 内置节点实现
│ ├── @n8n/nodes-langchain/ # AI Agent 节点
│ └── @n8n/composer/ # 队列模式协调器
3. 核心概念深度解析
3.1 Node(节点)
节点是 n8n 的基本单元,每个节点代表一个操作。n8n 有 200+ 内置节点,分为几类:
// 节点类型(源码:packages/workflow/src/NodeTypes.ts)
enum NodeType {
REGULAR = 'regular', // 普通节点(HTTP Request、Set 等)
TRIGGER = 'trigger', // 触发器(Webhook、Schedule)
WEBHOOK = 'webhook', // Webhook 专用
AGENT = 'agent', // AI Agent 节点
CHAIN = 'chain', // LangChain 节点
}
关键源码:packages/nodes-base/nodes/ 下每个目录对应一个节点,入口文件通常是 {NodeName}.node.ts。
3.2 Connection(连接)
连接定义了数据流向,是有向边:
{
"nodes": [
{"name": "Webhook", "type": "n8n-nodes-base.webhook"},
{"name": "OpenAI", "type": "n8n-nodes-base.openAi"}
],
"connections": {
"Webhook": {
"main": [["OpenAI", 0, 0]] // Webhook → OpenAI,output 0 → input 0
}
}
}
3.3 Workflow(工作流)
工作流是节点 + 连接的完整 DAG(有向无环图)。n8n 保证工作流是 DAG——不允许循环依赖(AI Agent 的循环通过特殊机制实现)。
3.4 Execution(执行)
每次工作流触发产生一次 Execution,包含:
executionId:唯一标识status:new | running | success | error | waitingdata:每个节点的输入输出数据mode:manual | trigger | webhook | retry
4. 执行引擎源码分析
这是 n8n 最核心的部分。执行引擎负责解析工作流 DAG、按序执行节点、处理错误和重试。
4.1 核心类:WorkflowExecute
// packages/core/src/WorkflowExecute.ts(简化)
class WorkflowExecute {
async run(nodeName: string, inputData: INodeExecutionData[]) {
const node = this.workflow.getNode(nodeName);
const nodeType = this.nodeTypes.get(node.type);
// 1. 解析凭据
const credentials = await this.getCredentials(node);
// 2. 执行节点
const result = await nodeType.execute.call(
this.helpers,
inputData,
node,
credentials
);
// 3. 传递数据到下游
await this.runDownstream(nodeName, result);
}
async runDownstream(sourceNode: string, inputData: INodeExecutionData[][]) {
const connections = this.workflow.connectionsBySourceNode.get(sourceNode);
for (const [outputIndex, targets] of inputData.entries()) {
for (const target of connections.get(outputIndex) || []) {
await this.run(target.node.name, targets);
}
}
}
}
4.2 并发控制
n8n 支持配置最大并发数,防止下游 API 被压垮:
// 配置项
{
"maxConcurrentExecutions": 5, // 全局最大并发
"timeout": 300000, // 单条执行超时(ms)
"errorWorkflow": "error-handler" // 错误时触发的工作流
}
4.3 队列模式(Production 必备)
默认模式(默认 SQLite)只支持单进程执行,生产环境必须用 队列模式:
# docker-compose.yml(队列模式)
services:
n8n:
image: n8nio/n8n:latest
environment:
- EXECUTIONS_MODE=queue # 启用队列模式
- QUEUE_BULL_REDIS_HOST=redis
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
deploy:
replicas: 3 # 3 个 worker
队列模式的架构:
┌─────────────────────────────────────────────────────┐
│ n8n 队列模式 │
│ │
│ ┌──────────┐ Redis Queue ┌──────────┐ │
│ │ Web │ ──────────────► │ Worker 1 │ │
│ │ (触发器) │ └──────────┘ │
│ └──────────┘ ┌──────────┐ │
│ │ │ Worker 2 │ │
│ └────────────────────── │ │ │
│ └──────────┘ │
│ ┌──────────┐ │
│ │ Worker N │ │
│ └──────────┘ │
│ │
│ PostgreSQL(持久化 Executions、Workflows、Credentials)│
└─────────────────────────────────────────────────────┘
5. AI Agent 与 LangChain 集成实战
2026 年 n8n 最强大的能力是 AI Agent 编排。n8n 通过 @n8n/nodes-langchain 包深度集成了 LangChain.js。
5.1 AI Agent 节点架构
┌─────────────────────────────────────────────────┐
│ n8n AI Agent 节点 │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Chat │ │ Tools │ │ Memory │ │
│ │ Model │ │ (工具) │ │ (记忆) │ │
│ │ (LLM) │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Agent Executor │ │
│ │ (ReAct / Plan │ │
│ │ and Execute) │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────┘
5.2 实战:构建一个 "GitHub Trending 日报" Agent
需求:每天自动抓取 GitHub Trending,用 LLM 总结,推送到飞书。
工作流设计:
Schedule Trigger (每天 9:00)
↓
HTTP Request (抓取 GitHub Trending)
↓
Code Node (解析 HTML,提取项目列表)
↓
AI Agent Node (用 GPT-4O 总结每个项目)
↓
Loop Node (逐个处理)
↓
Feishu Node (推送到飞书群)
AI Agent 节点配置:
{
"name": "AI Summary Agent",
"type": "n8n-nodes-base.agent",
"parameters": {
"model": {
"model": "gpt-4o",
"temperature": 0.3
},
"prompt": "你是一个技术资讯编辑。请对以下 GitHub 项目进行 200 字总结,包含:项目用途、技术栈、为什么值得关注。用中文回答。\n\n项目信息:{{ $json.projectInfo }}",
"memory": "window_buffer",
"memorySize": 10
}
}
5.3 Tool Calling 深度集成
n8n 支持 LLM 的 Tool Calling(函数调用),让 Agent 能主动调用工具:
// 自定义 Tool 节点(简化)
class MyCustomTool extends Tool {
name = "search_github";
description = "搜索 GitHub 仓库,输入关键词,返回 Top 5 结果";
async _call(keyword: string): Promise<string> {
const result = await githubSearch(keyword);
return JSON.stringify(result);
}
}
在 AI Agent 节点中配置 Tools 后,LLM 可以自主决定调用哪个工具:
User: "帮我找 2026 年最火的 AI Agent 框架"
LLM: [调用 search_github tool]
Tool Result: ["openclaw", "autogpt", "dify", ...]
LLM: "根据搜索结果,2026 年最火的 AI Agent 框架是..."
6. 自托管生产级部署
6.1 Docker Compose 完整配置
# docker-compose.prod.yml
version: '3.8'
services:
# PostgreSQL(持久化)
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: n8n
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
# Redis(队列)
redis:
image: redis:7.4-alpine
command: redis-server --maxmemory 512mb --maxmemory-policy allkeys-lru
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
# n8n Web(前端 + 触发器)
n8n-web:
image: n8nio/n8n:latest
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
ports:
- "127.0.0.1:5678:5678"
environment:
# 队列模式
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
# 数据库
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- DB_POSTGRESDB_DATABASE=n8n
# 安全
- N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
- N8N_USER_MANAGEMENT_JWT_SECRET=${JWT_SECRET}
# 性能
- N8N_CONCURRENCY_PRODUCTION_LIMIT=10
- N8N_CONCURRENCY_GLOBAL_LIMIT=20
# 日志
- GENERIC_TIMEZONE=Asia/Shanghai
- N8N_LOG_LEVEL=info
volumes:
- n8n-data:/home/node/.n8n
deploy:
replicas: 1
# n8n Worker(执行器,可扩展)
n8n-worker:
image: n8nio/n8n:latest
depends_on:
- n8n-web
command: worker
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- DB_POSTGRESDB_DATABASE=n8n
- N8N_ENCRYPTION_KEY=${ENCRYPTION_KEY}
volumes:
- n8n-data:/home/node/.n8n
deploy:
replicas: 3 # 3 个 worker 并行处理
volumes:
postgres-data:
redis-data:
n8n-data:
6.2 关键环境变量详解
| 变量 | 说明 | 推荐值 |
|---|---|---|
N8N_ENCRYPTION_KEY | 凭据加密密钥,必须设置 | 32 位随机 hex |
EXECUTIONS_MODE | 执行模式 | queue(生产) |
N8N_CONCURRENCY_PRODUCTION_LIMIT | 单 workflow 并发 | 10 |
N8N_CONCURRENCY_GLOBAL_LIMIT | 全局并发 | 20 |
N8N_PAYLOAD_SIZE_MAX | 单次请求最大 body | 20mb |
N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN | 优雅关闭 | true |
生成加密密钥:
openssl rand -hex 32 # 生成 N8N_ENCRYPTION_KEY
6.3 Nginx 反代配置
# /etc/nginx/sites-available/n8n
upstream n8n {
server 127.0.0.1:5678;
keepalive 16;
}
server {
listen 443 ssl http2;
server_name n8n.example.com;
ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;
client_max_body_size 20m;
location / {
proxy_pass http://n8n;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持(Webhook 长连接)
proxy_buffering off;
proxy_read_timeout 86400;
}
}
7. 自定义节点开发指南
n8n 的强大之处在于可以写自定义节点。以下是开发一个 "Hacker News API" 节点的完整流程。
7.1 节点结构
n8n-nodes-hackernews/
├── package.json
├── tsconfig.json
├── src/
│ ├── HackerNews.node.ts # 节点主逻辑
│ ├── HackerNews.credentials.ts # 凭据(如有)
│ ├── types.d.ts
│ └── utils/
└── dist/ # 编译输出
7.2 节点实现
// src/HackerNews.node.ts
import {
IExecuteFunctions,
INodeExecutionData,
INodeType,
INodeTypeDescription,
} from 'n8n-workflow';
export class HackerNews implements INodeType {
description: INodeTypeDescription = {
displayName: 'Hacker News',
name: 'hackerNews',
icon: 'file:hackernews.svg',
group: ['input'],
version: 1,
description: '从 Hacker News 获取热门文章',
defaults: {
name: 'Hacker News',
},
inputs: ['main'],
outputs: ['main'],
properties: [
{
displayName: '操作',
name: 'operation',
type: 'options',
options: [
{ name: '获取热门', value: 'getTop' },
{ name: '搜索', value: 'search' },
],
default: 'getTop',
},
{
displayName: '数量',
name: 'limit',
type: 'number',
default: 10,
description: '获取多少条',
},
],
};
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const operation = this.getNodeParameter('operation', 0) as string;
const limit = this.getNodeParameter('limit', 0) as number;
const returnData: INodeExecutionData[] = [];
if (operation === 'getTop') {
// 调用 HN API
const topStoriesUrl = 'https://hacker-news.firebaseio.com/v0/topstories.json';
const response = await this.helpers.httpRequest({
method: 'GET',
url: topStoriesUrl,
});
const storyIds = (response as number[]).slice(0, limit);
// 并行获取详情
const storyDetails = await Promise.all(
storyIds.map(id =>
this.helpers.httpRequest({
method: 'GET',
url: `https://hacker-news.firebaseio.com/v0/item/${id}.json`,
})
)
);
for (const story of storyDetails) {
returnData.push({
json: {
id: story.id,
title: story.title,
url: story.url,
score: story.score,
by: story.by,
time: story.time,
},
});
}
}
return [returnData];
}
}
7.3 安装自定义节点
# 方式 1:npm 安装(推荐)
npm install -g n8n-nodes-hackernews
# 方式 2:本地开发
cd ~/.n8n/custom-nodes/
git clone https://github.com/yourname/n8n-nodes-hackernews.git
cd n8n-nodes-hackernews
npm install
npm run build
npm link
# 重启 n8n 即可在节点列表中看到
8. 性能优化与高并发
8.1 数据库优化(PostgreSQL)
-- 清理历史 Executions(保留最近 30 天)
DELETE FROM execution_entity
WHERE "startedAt" < NOW() - INTERVAL '30 days';
-- 索引优化
CREATE INDEX CONCURRENTLY idx_execution_status
ON execution_entity (status, "startedAt");
CREATE INDEX CONCURRENTLY idx_workflow_active
ON workflow_entity (active) WHERE active = true;
8.2 Redis 队列调优
# .env
QUEUE_BULL_REDIS_HOST=redis-cluster
QUEUE_BULL_REDIS_PORT=6379
QUEUE_BULL_REDIS_DB=0
QUEUE_BULL_REDIS_USERNAME=
QUEUE_BULL_REDIS_PASSWORD=
# BullMQ 配置
N8N_QUEUE_BULL_JOB_REMOVAL_INTERVAL=3600000 # 1 小时清理一次完成任务
N8N_QUEUE_BULL_PREFIX=n8n # Redis key 前缀
8.3 内存管理
n8n 默认将执行数据存在内存中,大工作流可能 OOM。解决方案:
# 启用流式传输(大数据集)
N8N_WORKFLOW_REPORT_LINES_LIMIT=1000
# 限制单条 execution 数据大小
N8N_MAX_EXECUTION_DATA_SIZE_MB=50
# 使用外部存储(S3 / GCS)存 execution 数据
N8N_EXTERNAL_STORAGE_S3_BUCKET=n8n-executions
N8N_EXTERNAL_STORAGE_S3_REGION=us-east-1
9. 安全架构与最佳实践
9.1 凭据加密
n8n 使用 N8N_ENCRYPTION_KEY 对数据库中的凭据进行 AES-256-GCM 加密:
// 加密流程(packages/backend/src/services/EncryptionService.ts)
async encrypt(value: string): Promise<string> {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv(
'aes-256-gcm',
Buffer.from(this.encryptionKey, 'hex'),
iv
);
const encrypted = Buffer.concat([cipher.update(value, 'utf8'), cipher.final()]);
const tag = cipher.getAuthTag();
return iv.toString('hex') + ':' + tag.toString('hex') + ':' + encrypted.toString('hex');
}
重要:N8N_ENCRYPTION_KEY 丢失 = 所有凭据无法解密!
9.2 网络隔离
# docker-compose.yml(生产安全配置)
services:
n8n-web:
networks:
- n8n-internal
- n8n-public # 仅暴露 5678
# 不挂载 /var/run/docker.sock(防止容器逃逸)
n8n-worker:
networks:
- n8n-internal # 只能访问内部服务
# 禁用特权模式
privileged: false
# 只读文件系统
read_only: true
tmpfs:
- /tmp
9.3 Webhook 安全
// Webhook 节点配置:启用 HMAC 验证
{
"httpMethod": "POST",
"path": "my-webhook",
"authentication": "headerAuth",
"headerAuth": {
"name": "X-Webhook-Signature",
"value": "={{ $crypto.hmac('sha256', $env.WEBHOOK_SECRET, $json.body) }}"
}
}
10. 实战案例:构建 RAG Agent 工作流
RAG(Retrieval-Augmented Generation)是 2026 年最热门的 LLM 应用模式。用 n8n 可以零代码构建完整的 RAG Pipeline。
10.1 架构
文档上传 → 文本分块 → 向量化 → 存入 Qdrant
↓
用户提问 → 检索相关块 → 注入 Context → LLM 回答
10.2 工作流实现
步骤 1:文档处理 Chain
Form Trigger (上传文档)
↓
Extract Text (从 PDF/DOCX 提取文本)
↓
Recursive Character Splitter (分块,512 tokens/块)
↓
Embedding (OpenAI Embeddings 或 Ollama Embeddings)
↓
Qdrant Vector Store (upsert)
步骤 2:问答 Chain
Webhook (接收用户提问)
↓
Embedding (同一 Embedding 模型)
↓
Qdrant Search (top 5 相关块)
↓
AI Agent (Prompt 注入检索结果)
↓
返回答案 + 引用来源
关键代码(Embedding 节点配置):
{
"node": "Embeddings OpenAI",
"parameters": {
"model": "text-embedding-3-small",
"dimensions": 1536,
"apiKey": "={{ $credentials.openAiApiKey }}"
}
}
AI Agent 的 System Prompt:
你是一个知识库助手。根据以下检索到的上下文回答问题。
如果上下文无法回答问题,明确说"知识库中未找到相关信息"。
引用来源时注明文档名称和页码。
上下文:
{{ $json.searchResults }}
11. n8n vs 竞品:Zapier、Make、Dify 横向对比
| 维度 | n8n | Zapier | Make (Integromat) | Dify |
|---|---|---|---|---|
| 许可 | fair-code 开源 | 闭源 SaaS | 闭源 SaaS | 开源 Apache 2.0 |
| 自托管 | ✅ | ❌ | ❌ | ✅ |
| 节点数 | 200+ | 5000+ | 1000+ | 50+(AI 专注) |
| AI 能力 | LangChain 深度集成 | OpenAI 基础集成 | 基础 AI 节点 | AI Agent 原生 |
| 定价 | 免费自托管 | $29.99/月起 | $9/月起 | 免费自托管 |
| 适合场景 | 技术团队、自托管 | 非技术人员 | 营销/运营 | AI 应用开发 |
| 执行速度 | 快(自托管) | 中 | 快 | 快 |
| 学习曲线 | 中 | 低 | 中 | 中 |
结论:
- n8n 适合有技术能力的团队,需要自托管、自定义节点、AI Agent 编排
- Zapier 适合非技术人员,预算充足,不需要自托管
- Dify 适合专注 AI 应用开发的场景,n8n 更通用
12. 2026 路线图与未来展望
根据 n8n 官方 Roadmap 和社区讨论:
12.1 n8n 2.0(预计 2026 Q3)
- 分布式执行引擎:支持跨多个 Kubernetes Pod 的 workflow 分片执行
- 原生版本管理:Workflow 版本历史、回滚、Diff
- 实时协作编辑:类似 Google Docs 的多用户同时编辑
- 执行历史可视化:时间线视图、节点级别的性能分析
12.2 AI 方向
- MCP 原生支持:直接调用 MCP Server 作为 Tool
- 多模态 Agent:支持图片/音频输入(GPT-4O、Claude 3.5 Sonnet)
- Agent-to-Agent:n8n 中的 Agent 互相调用
12.3 生态
- n8n Cloud 国内版:与阿里云/腾讯云合作
- 官方 Marketplace:付费节点、企业级连接器
- n8n for Enterprise:SSO、审计日志、多租户
13. 总结
n8n 在 2026 年已经从"Zapier 开源替代品"进化为完整的 AI Agent 编排平台。其核心优势在于:
- 开源可自托管:数据不出内网,适合企业合规要求
- TypeScript 全栈:二次开发门槛低,自定义节点简单
- AI 原生:LangChain.js 深度集成,支持所有主流 LLM
- 生产就绪:队列模式、PostgreSQL、Redis 架构可扩展到数千并发
- 活跃社区:179K+ Stars,200+ 节点,每周新增社区节点
适用人群:
- 开发者:构建内部自动化工具、AI Agent Pipeline
- 运维:CI/CD 集成、监控告警自动化
- 产品:连接 SaaS 工具,无需写代码
- 数据团队:ETL Pipeline、RAG 知识库
快速开始:
# 本地试用(Docker)
docker run -it --rm \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n:latest
# 访问 http://localhost:5678
本文基于 n8n 1.50 版本,最后更新于 2026 年 6 月。欢迎在 程序员茄子 评论区交流。
参考资料:
- n8n 官方文档:https://docs.n8n.io/
- n8n GitHub:https://github.com/n8n-io/n8n
- LangChain.js 文档:https://js.langchain.com/
- BullMQ 文档:https://docs.bullmq.io/
- n8n 社区节点:https://www.npmjs.com/search?q=n8n-nodes