#Datawhale 组队学习#8月-工作流自动化n8n入门-3
前面已经学习了Task1:n8n简介和平台部署,Task2:n8n平台基本概念与基础节点。
我们继续学习Task3:n8n高阶:子工作流以及AI Agent。
包括:
- 子工作流
- 错误处理
- 集群节点
- MCP
- Human in the Loop
1.n8n子工作流与错误处理
什么是子工作流?n8n 支持从一个工作流调用另一个工作流。子工作流可以用于将复杂的任务分解为更小的、可重用的部分。 工作流通过 Execute Workflow 来调用子工作流,子工作流通过 Execute Sub-Workflow Trigger 来触发。
我们可以创建独立的子工作流,也可以将子工作流嵌入到主工作流中。下面的例子我们将以一个简单的计算器 子工作流为例,演示如何创建和使用子工作流,该计算器子工作流支持加、减、乘、除四种运算。
一个完整的子工作流示例如下图所示:
n8n错误处理
在我们设计的工作流时,考虑容错是非常重要的。n8n 使用Error Trigger节点来触发错误处理逻辑。
错误处理是独立的工作流,以下是配置步骤:
创建新的工作流,选择Error Trigger作为触发节点,Error Trigger节点没有配置项。
添加后续的节点,如发送邮件Email节点,配置邮件内容,如错误信息。保存工作流并命名, 如error notify。如下是Error Trigger节点的数据示例,我们可以在后续的节点中通过 表达式来引用这些数据,如触发错误的工作流名称、执行 URL 等。
在需要错误处理的工作流中,点击右上角三点菜单中的Setting菜单项。
在弹出的配置窗口中,在Error Workflow的配置项中选择我们刚刚新建的错误处理工作流,保存配置。
示例如下:
2.n8n AI相关概念
n8n 内置了 AI 相关的节点和处理方式,可以方便用户构建 AI 相关的应用,包括 AI 聊天机器人、文本总结、AI Agent 等。
Cluster nodes集群节点
集群节点 (Cluster nodes) 是一组一起工作的节点组,它们由一个根节点 (root node) 和 一个或多个扩展节点功能的子节点 (sub-nodes) 组成。
Cluster nodes 的根节点一般分 Chian 及 Agent 类型。 Chain 是一种简单的 LLM 集成方式,用来串联工作流中的其他节点,且不支持记忆功能。
Agent 节点则可以访问更多的工具,以及可以根据用户输入和上下文信息执行任务,并通过工具返回的信息做 执行的决策。可以认为 Agent 是一种知道如何做出决策的 Chain 节点。
一些示例如下:
Memory 记忆
在构建 AI 聊天机器人时,记忆 (Memory) 是一个重要的概念,它允许 AI 模型记住之前对话的内容,以便 在后续的对话中使用这些信息。记忆可以帮助 AI 模型更好地理解用户的意图,并生成更准确和相关的回答。
实际测试如下:
RAG
这里使用的是Ollama本地部署的嵌入模型nomic-embed-text:latest,这里分享遇到的一个坑。
关键点:如果 n8n 运行在 Docker 中,而 Ollama 运行在宿主机的本地(localhost),不能直接使用
http://localhost:11434
。因为对 n8n 容器而言,"localhost" 指的是容器自己。正确的做法:
方法一(推荐):使用特殊的 Docker DNS 名称
host.docker.internal
,它指向宿主机的 IP 地址。因此,Ollama 的 Base URL 应设置为http://host.docker.internal:11434
1。方法二:使用宿主机的局域网 IP 地址,例如
http://192.168.1.100:11434
。
“内容上传”示例如下:
接下来是内容检索。
完整的示例如下:
Tools工具
在 AI 场景中, 工具有着特殊的意义,它能够帮助 AI Agent 补充额外的 LLM 不支持的能力,如搜索引擎搜索、 数据库查询、天气信息查询等。
一个 AI Agent 可以关联多个工具,如下所示我们添加了两个工具,Date & Time Tool 和 Calculator,分别用于查询日期和时间,以及计算器。
完整的工作流如下:
MCP
MCP (Model Context Protocol) 是一种开放协议,标准化了应用程序如何为 LLM 提供上下文。 可以把 MCP 看作是 AI 应用的 USB-C 端口。
完整案例如下:
注意Active需要激活。
好了,本次学习到此为止,感兴趣的小伙伴点赞收藏关注吧。