当前位置: 首页 > news >正文

#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节点来触发错误处理逻辑。

错误处理是独立的工作流,以下是配置步骤:

  1. 创建新的工作流,选择Error Trigger作为触发节点,Error Trigger节点没有配置项。

  2. 添加后续的节点,如发送邮件Email节点,配置邮件内容,如错误信息。保存工作流并命名, 如error notify。如下是Error Trigger节点的数据示例,我们可以在后续的节点中通过 表达式来引用这些数据,如触发错误的工作流名称、执行 URL 等。

  3. 在需要错误处理的工作流中,点击右上角三点菜单中的Setting菜单项。

  4. 在弹出的配置窗口中,在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:114341。

    • 方法二:使用宿主机的局域网 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需要激活。

好了,本次学习到此为止,感兴趣的小伙伴点赞收藏关注吧。

http://www.dtcms.com/a/360488.html

相关文章:

  • 第七章 使用角色和Asible内容集合简化Playbook
  • 4.4 光照(4) - 高光反射
  • 硬件工程师成长之路:从入门到精通的技术旅程
  • [Plecs基础知识系列]建立自定义模块/子系统(Subsystem)
  • C++ 面试高频考点 力扣 69. x 的平方根 二分查找 题解 每日一题
  • Linux网络socket套接字(中)
  • 切片语法[::-1]及其可用的类型
  • 基于单片机智能鞋柜/智能鞋橱/智能鞋盒
  • Linux - #操作系统概念 #权限
  • 获取某天的零点日期
  • Java 异常处理全解析:从基础到实践
  • Rust 登堂 之 枚举和整数(八)
  • OpenCL C++ 平台与设备
  • 集合-单列集合(Collection)
  • DrissionPage 实战:动态 IP 代理与百度翻译 API 数据抓取
  • LeetCode算法日记 - Day 27: 计算右侧小于当前元素的个数、翻转对
  • Linux wlan 之网络问题定位分析 实例一
  • 如何确定虚拟机的IP
  • Qt QML连接数据库如何解决重复创建连接问题
  • 【嵌入式】【电机控制】基础知识列表
  • K8s调度核心:从Pod分配到节点优化
  • MATLAB R2010b系统环境(四)MATLAB帮助系统
  • LeetCode 每日一题 2025/8/25-2025/8/31
  • 模拟在线测试六线测试相关知识
  • 如何快速学习新技能
  • io进程线程;标准IO;0831
  • Java全栈开发面试实录:从基础到微服务架构的深度解析
  • Augment 宣布 Auggie CLI正式向所有用户开放
  • 利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序
  • Ring Buffer解析