|
那时候它的GitHub Star数还在75K。 这才过去半年,已经突破162K Star了! 这翻倍的增长速度背后,其实是整个AI行业的井喷式增长。 以前我们用工作流,更多是用来做一些自动化,代替一些重复性的工作,比如把表格里的数据自动填到系统里、每天早上定时提醒等等。 但现在,随着AI Agent的兴起和发展,工作流结合Agent之后,不仅能完成重复性工作,甚至还能完成很多创造性工作,这就是AI的威力。 而n8n作为开源工作流的鼻祖,自然成了连接大模型和真实业务场景最好的桥梁。 虽然这些能力,写代码也能实现,但是门槛就比n8n高太多了。 每一个想用AI提效的普通人,最终都绕不开工作流编排,而n8n恰好就在这个风口上。 就在最近,n8n官方发布了一个里程碑式的大版本:n8n 2.0 正式版预计12月15号发布,beta版本是在12月8号就发布了
我研究了一下官方的2.0版本 发现这次更新不仅仅是换个皮肤那么简单。它在底层架构、安全性以及最核心的工作流逻辑上,都做了深层次的改动。 如果说1.0版本还是极客手里面的利器,那么2.0版本就是奔着企业级生产环境去的,它变强了,也更严谨了。 为了让大家在更新2.0后不至于一脸懵,或者升级后系统崩 今天我就带大家好好拆解一下n8n 2.0的核心变化,以及这些变化对我们后续搭建工作流有什么影响。 n8n 2.0官方文档:
https://docs.n8n.io/2-0-breaking-changes/ n8n 2.0官方blog: https://blog.n8n.io/introducing-n8n-2-0/ n8n 2.0官方迁移工具文档: https://docs.n8n.io/migration-tool-v2/
我们先来看看这次更新最直观,也是最容易被感知的部分:界面和交互的升级。 打开2.0的界面,第一眼的感觉就是更现代、更扁平了。现在的节点看起来更简约 一个细节是,像AI Agent节点、Chat节点或者Wait这种需要耗费时间执行的节点,现在更新了一个加载的动态效果,看起来更舒服了 在调试复杂工作流时,这个视觉反馈能让你更清楚的知道当前卡在哪个环节。 另一个交互上的大改动是侧边栏。 以前我们要找设置,得先点左下角的头像,再进一个菜单页面 现在官方把设置入口直接提到了侧边栏的一级菜单,更方便了。
有一个无数人心心念念的功能:自动保存。 虽然官方说完整的自动保存要等到明年1月份,但在目前的2.0里,自动保存速度已经做到了几乎瞬时。 以前点保存可能还要转个圈,现在点一下,就直接存好了。 这是在为后面的实时自动保存做铺垫。
然后,我们在来看看做了哪些更实际的功能优化 这才是2.0版本的重头戏 第一个重要变化,是子工作流的数据返回逻辑变了。 下图左边是父工作流,右边是子工作流 当子工作流有等待操作时,以前父工作流拿到的是子工作流的input 听起来有点绕,我举个例子你可能就明白了。 在1.0版本里,主工作流调用子工作流,就像你让跑腿小哥去买咖啡。 但是有个问题,如果这个跑腿小哥在买咖啡的过程中需要排队等待,或者需要打电话问你加不加糖(也就是遇到了Wait节点或者人工审批节点),1.0的机制是,只要小哥排队,买到咖啡后,主工作流就直接把当初你给小哥的订单信息又原封不动地还给你,而不是把咖啡给你。 这就导致以前我们在做"人工介入"流程时非常痛苦。 比如你想做一个审批流,子工作流发一条消息给老板审批,老板点同意或拒绝。 在1.0里,主工作流根本拿不到老板是点了同意还是拒绝,因为它在最后拿到的还是提交审批流程... 而在2.0版本里,这个逻辑终于能顺畅的跑通了。 现在,主工作流会老老实实的等到子工作流跑完,并把最终的结果(比如老板审批的意见)带回来。 有什么用? 这意味着我们以后在n8n里搭建复杂的、需要人工介入的业务流程将变得非常简单。如果这玩意儿要用代码实现,即便对于专业程序员来说,都是挺复杂的。 你可以把复杂的审批逻辑、需要人工确认的数据清洗环节等,全部封装在子工作流里,主工作流只需要关心最终拿到的结果是Yes或No,然后决定下一步怎么走。 这对于企业内部的请假流程、报销流程,或者是AI生成内容后的人工审核流程,都是史诗级的加强! 老用户要注意,如果你之前依赖父流程拿到子流程的input,现在要注意了,2.0版本开始,父流程会等待子流程结束,拿到子流程的output。
第二个核心变化是:Code节点加强,原生Python支持 n8n之所以能这么灵活,它的上限就在Code节点,没有什么比自由写代码灵活的方案了。 以前我们在n8n里想用Python处理数据,用的是一种基于浏览器的 Pyodide技术。这玩意儿虽然能用,但限制很多,很多Python的库都不支持,而且性能也不咋地。 这就好比你想开越野车去山里面,结果给你配了个老头乐的发动机,虽然也是四个轮子,但跑起来也是费劲巴拉的。 n8n 2.0版本直接移除了Pyodide,改成了基于Task Runner的原生 Python支持。 现在,你的Python代码直接运行在独立的进程里,可以使用完整的Python生态,性能更好,也更安全。 利好习惯用Python做数据分析、做复杂数学运算或者调用特定AI库的朋友 当然,编程小白也可以让AI生成Code节点的代码
第三个重大调整,是架构上的隔离,也就是Task Runner默认开启。 以前n8n的运行模式,就像是一个大通铺,所有人都在一个房间里睡觉。如果其中一个人打呼特别响,甚至梦游... 整个房间的人都睡不好(整个系统会崩溃) 具体说,以前如果某个代码节点写了个死循环,或者占用了太多内存,整个n8n的主进程可能就挂了。 2.0版本默认开启了Task Runner,这就相当于给每个容易出问题的环节(比如代码节点)分配了独立的单间。 新增了一个单独的docker镜像(n8nio/runners)来运行Task Runner 后续,即便你的Python脚本写炸了,或者内存溢出了,它崩掉的也只是那个独立的单间,主控室依然稳如泰山,其他工作流照样运行。 这对于在生产环境使用n8n的团队来说,稳定性直线提升。 再也不用担心因为实习生写了一个隐藏bug,导致后续整个自动化流程瘫痪。
除了功能增强,2.0还有一部分更新是在做"减法",主要集中在安全性和数据库支持上。 首先是数据库。n8n 2.0彻底放弃了对MySQL和MariaDB作为底层存储数据库的支持。 注意:这里说的是n8n自身运行所依赖的数据库,不是说你不能连接 MySQL节点去读写业务数据,那个节点还在。 官方推荐大家迁移到PostgreSQL。如果你是个人用户用SQLite,新的版本也升级了驱动(池化驱动),据说性能提升了10倍。 其次是为了安全增加了一些限制。 以前n8n为了方便,允许代码节点直接读取环境变量,也允许随意执行系统命令。这方便是方便,但也留下了后门。如果有人恶意注入代码,后果不堪设想。 2.0版本默认禁止了代码节点读取环境变量,也禁用了Execute Command这种能直接操作服务器的高危节点。 如果你确实需要用,得去改配置文件手动开启。 还有文件读写权限。以前n8n可以读取服务器上的任何文件,现在默认只能在规定的目录下读写。这又是一层安全加固。 对于我们这些n8n的老用户来说,2.0的到来既是惊喜也是挑战。 惊喜在于,它终于补齐了短板。子工作流的数据回归逻辑,让编排更复杂业务逻辑成为了可能。原生Python和Task Runner的加入,在处理重型任务时有了底气。 挑战在于:如果你之前的业务流程里,大量使用了子工作流的旧机制,或者依赖了 MySQL作为底层存储,或者在代码节点里大量调用环境变量,那么升级2.0对你来说,可能是一场需要小心,谨慎的搬迁过程。 最好的做法是,先在本地或者测试服务器上部署一套2.0的环境,把现有的工作流导入进去跑一遍。 官方提供了一个迁移报告工具,或许有帮助: https://docs.n8n.io/migration-tool-v2/ 我觉得n8n 2.0更多的是企业级功能迭代,更安全,更稳定,更灵活。 随着AI Agent的爆发,我们需要的不只是一个能对话的聊天框,而是一个能连接世界、能执行任务、能处理复杂逻辑的手脚。 而把Agent当作工作流的节点,无疑是更稳定的方案 n8n 2.0的这些改进,无论是稳定性、安全性还是逻辑编排能力,都是在为承接更复杂的AI Agent任务做准备。 话说,大家现在都在用n8n干嘛呀? |