菜单

n8n 概览

相关源文件

本文档提供了 n8n 工作流自动化平台的高层概述,解释了其架构、核心组件以及它们如何相互作用。在深入研究特定子系统之前,它可作为理解整个系统结构的切入点。

有关工作流执行引擎的详细信息,请参阅 工作流执行引擎。有关节点系统的信息,请参阅 节点系统

什么是 n8n?

n8n 是一个公平代码许可的工作流自动化平台,允许用户构建连接各种服务和应用程序的工作流。它既提供了用于创建工作流的可视化界面,也提供了在需要时使用代码的灵活性。该平台可以自托管,也可以作为云服务使用。

主要功能包括

  • 可视化工作流编辑器
  • 400 多个服务集成
  • 通过 LangChain 集成实现原生 AI 功能
  • 在工作流中执行 JavaScript/Python 代码
  • 自托管能力,完全数据控制

来源

系统架构

n8n 被构建为一个包含多个包的单体仓库,这些包协同工作以提供完整的工作流自动化平台。

来源

核心软件包

n8n 组织成几个核心包,每个包在系统中都有特定的职责

描述职责
n8n (CLI)主 CLI 包入口点、服务器、API 端点、工作流执行
n8n-core核心功能凭证处理、文件操作、基本实用程序
n8n-workflow工作流引擎工作流定义、节点执行、数据处理
n8n-nodes-base基础节点默认节点实现(400+ 集成)
n8n-editor-ui前端 UI基于 Vue 的编辑器界面
@n8n/nodes-langchainAI 功能LangChain 集成,用于 AI 工作流
@n8n/config配置系统配置管理

依赖结构

来源

工作流执行流程

工作流执行是 n8n 的核心部分。以下是工作流执行时数据在系统中的流动方式

来源

节点系统

节点系统是 n8n 可扩展性的基础,它允许它连接到各种服务并执行不同的操作。

n8n 有三种主要类型的节点

  1. 常规节点:在执行工作流时处理数据(实现 execute 方法)
  2. 触发器节点:根据事件启动工作流执行(实现 trigger 方法)
  3. Webhook 节点:响应 HTTP 请求(实现 webhook 方法)

来源

前端架构

n8n 的前端使用 Vue.js 构建,并提供了一个可视化界面来创建和管理工作流。

前端包含几个关键组件

  1. 工作流画布:用户通过连接节点进行可视化工作流构建的主要区域
  2. 节点详情视图 (NDV):用于配置节点参数和查看输入/输出数据的界面
  3. 参数输入:用于配置节点参数的各种输入组件
  4. Stores:用于管理应用程序状态的 Vue/Pinia stores

来源

部署选项

n8n 可以通过多种方式进行部署

部署方法描述
npm使用 npm 全局安装并作为服务运行
Docker在 Docker 容器中运行(推荐用于生产)
Docker Compose与 PostgreSQL 等附加服务一起运行
云服务使用 n8n.cloud 托管服务

Docker 部署示例

来源

配置系统

n8n 使用一个支持多种来源的配置系统

  1. 环境变量:主要的配置方法
  2. 配置文件:用于更复杂设置的 JSON/YAML 文件
  3. 命令行参数:用于一次性配置更改

配置由 @n8n/config 包管理,该包提供了在应用程序中访问配置值的集中方式。

来源

AI 集成 LangChain

n8n 通过与 LangChain 的集成提供原生 AI 功能,允许用户构建支持 AI 的工作流。

LangChain 集成包含以下节点

  • LLM 模型:OpenAI、Anthropic、Cohere 等
  • 向量存储:Pinecone、Milvus、Qdrant 等
  • Embeddings:各种嵌入模型
  • Chains:摘要、问答等
  • Agents:可以使用工具的 AI 代理

来源

许可

n8n 分布于公平代码许可模式下

  • 可持续使用许可:用于核心平台
  • 企业许可:用于企业功能

公平代码许可允许

  • 源代码可见性
  • 自托管
  • 通过自定义节点进行扩展

企业许可证可用于附加功能和支持。

来源

总结

n8n 是一个全面的工作流自动化平台,它构建为一个包含多个协同工作的包的单体仓库。该系统提供了一个可视化界面来创建工作流,同时允许在需要时使用代码的灵活性。凭借 400 多个集成、通过 LangChain 实现的原生 AI 功能以及各种部署选项,n8n 为自动化需求提供了强大的解决方案,同时让用户完全控制他们的数据和部署。