从 n8n 到 Mini-n8n
读 n8n 源码,从零写一个能跑的 AI Agent Workflow 平台。 配套代码:github.com/luxiang0412/mini-n8n
读完这本书,你能从零写出一个工作流自动化平台:图模型与执行引擎、服务端与持久化、可视化编辑器、AI Agent(工具调用、RAG、记忆、流式、人工审批),直到队列模式、沙箱、多用户和一键部署。全书对照 n8n 真实源码,每一章都伴随一个能跑、有测试的 mini-n8n 版本(v0.1 → v1.0),一个 Part 一个 git tag,git diff 即可看到每一步的改动。
怎么读
- 按顺序读:每个 Part 在上一个的基础上加一层能力,配套代码也随之从
v0.1长到v1.0。 - 边读边跑:每章都有“运行与验证”,命令和真实输出都在书里。切到对应 tag(
git checkout v0.4)跑npm test,再git diff v0.3 v0.4看这一版做了什么。 - 先读 mini,再读 n8n:mini-n8n 是 n8n 的主干。懂了主干,书里的“源码阅读地图”(附录 A)带你回到 n8n 看它多处理了哪些情况。
目录
Part 0 导读
Part I 全景(浅)
Part II 工作流引擎 → v0.1
- 第 4 章 数据模型:节点、连接与 items ★
- 第 5 章 节点类型系统:description 驱动一切
- 第 6 章 表达式引擎:
{{ $json }}、数据代理与沙箱 - 第 7 章 执行引擎:执行栈与等待区 ★★
- 第 8 章 健壮性:错误输出、重试、取消、超时、等待
- Lab 1:mini-n8n v0.1 —— 用 CLI 跑一个带分支、合并和循环的工作流
Part III 服务端 → v0.2
- 第 9 章 持久化:工作流、执行记录与运行数据
- 第 10 章 生命周期钩子与实时推送
- 第 11 章 凭证:加密存储与注入
- 第 12 章 触发器:Webhook、Schedule 与激活
- Lab 2:mini-n8n v0.2 —— REST API + Webhook + 定时任务
Part IV 编辑器 → v0.3
- 第 13 章 画布:Vue Flow 与工作流数据的映射
- 第 14 章 节点详情视图(NDV):参数渲染与表达式编辑
- 第 15 章 运行与调试:实时状态、Pin 数据与部分执行
- Lab 3:mini-n8n v0.3 —— 可视化编排 + 实时执行
Part V AI Agent → v0.4 ★
- 第 16 章 AI 连接类型与 Cluster Node:
supplyData的设计 ★ - 第 17 章 Chat Model 抽象:Mock、Ollama 与流式
- 第 18 章 Tools Agent:函数调用循环 ★★
- 第 19 章 EngineRequest:让引擎来调度工具 ★★
- 第 20 章 工具体系:节点即工具、
$fromAI、Workflow Tool、MCP - 第 21 章 记忆、Chat Trigger 与流式响应
- Lab 4:从零搭一个能调工具、有记忆的 AI Agent 工作流
Part VI 高级 AI → v0.5
Part VII 平台化(深)→ v1.0
- 第 24 章 子工作流与等待/恢复
- 第 25 章 队列模式与横向扩展
- 第 26 章 Code 节点的安全:Task Runner
- 第 27 章 多用户、权限与开放 API
- 第 28 章 部署与可观测
- Lab 6:一键部署的 mini-n8n v1.0
附录
配套代码 mini-n8n
code/mini-n8n/ 是一个独立的 git 仓库,一个 Part 一个 tag:
| Tag | 能力 |
|---|---|
| v0.1 | 数据模型、表达式与沙箱、栈式执行引擎、核心节点、CLI |
| v0.2 | SQLite 持久化、REST API、生命周期钩子、SSE 推送、凭证加密、Webhook / Schedule 触发器 |
| v0.3 | Vue 3 + Vue Flow 编辑器:画布、节点面板、NDV、实时执行、pin data、部分执行 |
| v0.4 | AI:Chat Trigger、AI Agent(EngineRequest 循环)、Mock / Ollama / OpenAI 兼容模型、记忆、工具、流式 |
| v0.5 | RAG、结构化输出、Agent as Tool、人工审批 |
| v1.0 | 子工作流与等待/恢复、队列模式 + Worker、Code 节点 Task Runner、多用户 / API Key / 开放 API、指标、Docker 部署 |
bash
cd code/mini-n8n
npm install
npm test # 全部单元测试
npm start # 构建编辑器并在 http://localhost:5678 启动
npm run test:e2e # 用无头 Chrome 驱动编辑器(服务器需先启动)这本书是怎么验证的
- 单元测试:
v1.0共 82 个测试通过(引擎、表达式、AI、服务端、队列、Task Runner、认证、运维)。 - 浏览器端到端:5 套、43 项 Playwright 检查,真实驱动编辑器;书里的编辑器截图都来自这些测试。
- 真实模型:AI 章节用本地 Ollama(qwen2.5 系列、nomic-embed-text)实跑,输出和局限如实记录。
- 真实部署:
deploy/e2e.sh用 Docker Compose 起 Redis + main + 2 worker,建工作流、30 并发、优雅关闭、重启留存,全部验证。
书里“踩坑记录”只写真实遇到的问题;自查发现的问题会标注“自查发现”;所有引用的 路径:行号 都用 grep 核对过;所有命令输出都是真实运行的结果。