在前一章中,通过编写 Python 代码,从零开始实现了 ReAct、Plan-and-Solve 和 Reflection 多种经典的智能体工作流。这个过程为我们打下了坚实的技术基础,让我们深刻理解了智能体内部的运作机理。然而,对于一个快速发展的领域而言,纯代码的开发模式并非总是最高效的选择,尤其是在需要快速验证想法、或者非专业开发者希望参与构建的场景中。
随着技术的成熟,我们看到越来越多的能力正在被“平台化”。正如网站的开发从手写 HTML/CSS/JS,演进到了可以使用 WordPress、Wix 等建站平台一样,智能体的构建也迎来了平台化的浪潮。本章将聚焦于如何利用图形化、模块化的低代码平台,来快速、直观地搭建、调试和部署智能体应用,将我们的重心从“实现细节”转向“业务逻辑”。
“重复造轮子”对于深入学习至关重要,但在追求工程效率和创新的实战中,我们往往需要站在巨人的肩膀上。尽管我们在第四章中封装了可复用的 ReActAgent、PlanAndSolveAgent 等类,但当业务逻辑变得复杂时,纯代码的维护成本和开发周期会急剧上升。低代码平台的出现,正是为了解决这些痛点。
其核心价值主要体现在以下几个方面:
简而言之,低代码平台并非要取代代码,而是提供了一种更高层次的抽象。它让我们可以从繁琐的底层实现中解放出来,更专注于智能体“思考”与“行动”的逻辑本身,从而更快、更好地将创意变为现实。
当前,智能体与 LLM 应用的低代码平台市场呈现出百花齐放的态势,每个平台都有其独特的定位和优势。选择哪个平台,往往取决于你的核心需求、技术背景以及项目的最终目标。在本章的后续内容中,我们将重点介绍并实操四个各具代表性的平台:Coze、Dify、FastGPT 和 n8n。在此之前,我们先对它们进行一个概要性的介绍。
Coze
Dify
FastGPT
核心定位:FastGPT 是一个专注于知识库问答场景的开源 AI 平台。
特点分析:它的核心优势在于强大的检索增强生成(Retrieval-augmented generation, RAG)能力。用户可以轻松导入多种格式的私有文档,快速构建一个高质量、高精度的企业知识库或智能客服。相比于 Dify,FastGPT 更轻量、在 RAG 效果上打磨得更深,并提供了与 OpenAI 兼容的 API,便于集成。
适用人群:需要构建企业内部知识库、AI 客服、领域知识问答系统的开发者或中小企业。
n8n
核心定位:n8n 本质上是一个开源工作流自动化工具,而非纯粹的 LLM 平台。近年来,它积极集成了 AI 能力。
特点分析:n8n 的强项在于“连接”。它拥有数百个预置的节点,可以轻松地将各类 SaaS 服务、数据库、API 连接成复杂的自动化业务流程。你可以在这个流程中嵌入 LLM 节点,使其成为整个自动化链路中的一环。虽然在 LLM 功能的专一度上不如前三者,但其通用自动化能力是独一无二的。不过,其学习曲线也相对陡峭。
适用人群:需要将 AI 能力深度整合进现有业务流程、实现高度定制化自动化的开发者和企业。
在接下来的小节中,我们将逐一上手体验这些平台,通过实际操作来更直观地感受它们各自的魅力。
扣子(Coze)是一个超级酷的AI智能体制作工具!也是目前市面上应用最广泛的智能体平台。该平台以其直观的可视化界面和丰富的功能模块,让用户能够轻松创建各种类型的智能体应用,比如能陪你聊天的机器人、自动写故事的创作机,甚至直接帮你将故事变成电影MV!它的一大亮点在于其强大的生态集成能力。开发完成的智能体可以一键发布到微信、飞书、豆包等主流平台,实现跨平台的无缝部署。对于企业用户而言,Coze还提供了灵活的API接口,支持将智能体能力集成到现有的业务系统中,实现了"搭积木式"的AI应用构建。
(1)平台界面初览
整体布局介绍:最近扣子又又更新了他的UI界面了,如图5.1所示。现在最左边的侧边栏是扣子平台主页的开发工作区,包括核心的项目开发、资源库、效果评测和空间配置。下面的区域是扣子开发的配套资料空间包括官方模板一键复制、扣子最大的优势丰富多样的插件商店、最大的智能体社区琳琅满目、api管理就是api测试用的、以及详细的教程文档和面向企业的通用管理。右边这一块有四个模板,最上面是扣子最新的更新公告告诉你扣子的最新进展方便你了解最新的工具和功能。接着下面是新手教程,点开就是新手教程文档啦,分分钟开始智能体搭建。其次是你的关注和智能体推荐,在这里你也可以关注喜欢的AI开发者,和收藏他们的智能体为自己所用。
图 5.1 扣子智能智能体平台整体示意图
(2)核心功能介绍
首先我们点击左边侧栏的加号就可以看到创建智能体的入口了,这里目前有两类AI应用,一种是创建智能体,另一种叫应用。其中智能体又分为单智能体自主规划模式、单智能体对话流模式和多智能体模式。AI应用也分两种不仅能设计桌面网页端的用户界面,还能轻松搭建小程序和 H5 端的界面,如图5.2所示。
图 5.2 扣子智能体创建入口
图 5.3 扣子智能体项目空间
图 5.4 扣子智能体资源库
图 5.5 扣子智能体发布渠道
案例说明: 本实践案例旨在深入剖析 Coze 平台的插件集成能力,指导读者从零开始构建一个功能强大的“每日AI简报”智能体。该智能体能够自动化地从多个信息源(包括36氪、虎嗅、it之家、infoq、GitHub、arXiv)抓取当日最新的AI领域头条新闻、学术论文及开源项目动态,并将其结构化、专业化地整合成一份生动、精炼的简报。
通过本案例,您将系统性地掌握以下核心技能:
步骤一:添加并配置信息源插件
构建“每日AI简报”智能体的首要任务是为其接入丰富且权威的信息来源。在 Coze 平台中,这通过添加和配置相应的插件来实现。
图 5.6 媒体平台的RSS源插件
图 5.7 GitHub插件
图 5.8 Arxiv插件
个性化配置: 对每一个插件进行精细化配置,以确保其能精准地获取所需数据。例如,在 RSS 插件中,输入36氪、虎嗅等网站的特定RSS订阅链接;在 GitHub 插件中,设置需监控的关键词查询数量以及最新更新设置;在 arXiv 插件中,定义感兴趣的领域关键词,如“LLM”、“AI”等,定义数量以及最新更新设置。
RSS链接配置
- **36氪:** https://www.36kr.com/feed
- **虎嗅:** https://rss.huxiu.com/
- **it之家:** http://www.ithome.com/rss/
- **infoq:** https://feed.infoq.com/ai-ml-data-eng/
GitHub插件配置
- q:AI
- per_page:10
- sort:updated
Arxiv插件配置
- count:5
- search_query:AI
- sort_by:2
编排连接: 在智能体的可视化编排界面中,将这些已配置的信息源插件(例如 rss_24Hbj、searchRepository、arxiv 等)作为数据输入节点,并将其连接至后续的逻辑处理模块(例如大模型模块),以构建完整的数据处理路径,如图5.9所示。
图 5.9 每日AI简报编排流程图
步骤二:设定智能体角色与提示词
角色设定与提示词编写是定义智能体行为与输出质量的核心环节。该步骤旨在将抽象的指令转化为智能体可理解并执行的具体任务。
(1)角色设定
我们将智能体设定为一位资深且权威的科技媒体编辑。这一角色赋予了智能体明确的专业定位,使其在后续的内容创作中,能够模仿专业编辑的思维模式,进行高效的信息筛选、整合与概括。
(2)提示词编写与结构化
提示词是智能体执行任务的指导手册。我们将其分为系统提示(System Prompt)和用户提示(User Prompt),以确保指令的清晰、完整与可控。
系统提示(System Prompt)
系统提示用于定义智能体的长期行为准则和输出格式规范。
# 角色
你是一位资深且权威的科技媒体编辑,擅长高效精准地整合并创作极具专业性的科技简报,特别在AI领域的技术动态、前沿学术研究成果及热门开源项目方面拥有深入的分析与整合能力。
## 工作流
### 日报输出格式
1. 日报开头显著标注“AI日报”、“by@jasonhuang“和当天日期,例如:“AI日报 | 2025年9月24日 | by@jasonhuang”。
2. <!!!important!!!> 根据每则AI技术新闻、每篇AI学术论文、每个AI开源项目的不同内容,在其标题开头添加一个独有的Emoji表情符号。
3. 输出的所有内容必须与AI、LLM、AIGC、大模型等技术主题高度相关,坚决排除任何无关信息、广告及营销类内容。
4. 必须为每一条目(包括AI技术新闻、AI学术论文、AI开源项目)提供其对应的原始链接。
5. 对输出的每一条新闻或项目,都进行一个简短、精准的概况描述。
用户提示(User Prompt)
用户提示用于定义具体的任务指令和数据来源。
- **信息提取与整合:** 从输入源 `{{articles}}`、`{{articles1}}`、`{{articles2}}` 和 `{{articles3}}` 中,筛选并提取关于AI、大模型、AIGC、LLM等相关主题的文章标题及其对应链接,整理为**“AI技术新闻”**模块。
- **学术论文摘要:** 从输入源 `{{arxiv}}` 中,根据字段 `arxiv_title` 和 `arxiv_link`,总结并整理最新的论文内容,形成**“AI学术论文”**模块。
- **开源项目筛选:** 从输入源 `{{GitHub}}` 中,筛选出最受瞩目且具影响力的**5个AI开源项目**。提取这些项目的标题和对应链接,整理为**“AI开源项目”**模块。
# 注意事项(Attention)
- 严格遵循系统提示中定义的日报输出格式。
- 输出内容总量应为:**10条AI技术新闻、5篇AI学术论文、5个AI开源项目**。
步骤三:测试、调试与多渠道发布
完成智能体的核心逻辑构建后,必须进行严格的测试与调试,以确保其输出符合预期。
运行预览: 在 Coze 平台的预览界面运行智能体,观察其生成的简报内容。
# AI日报 by@jasonhuang 2025-09-24
## 🚀 AI技术新闻
🤖 **智元机器人GO-1通用具身基座大模型全面开源**
链接:https://36kr.com/p/3479085489708163?f=rss
概况:智元机器人宣布其GO-1通用具身基座大模型全面开源,为机器人领域提供强大的AI基础能力。
🔬 **微软攻克数据中心芯片散热瓶颈:微流体 + AI 精准降温**
链接:https://www.ithome.com/0/885/391.htm
概况:微软通过微流体技术与AI算法结合,实现数据中心芯片的精准温度控制,提升能效比。
......
## 📚 AI学术论文
🧪 **Lyra: Generative 3D Scene Reconstruction via Video Diffusion Model Self-Distillation**
链接:http://arxiv.org/pdf/2509.19296v1
概况:提出通过视频扩散模型自蒸馏实现3D场景生成的创新框架,无需多视角训练数据。
📊 **The ICML 2023 Ranking Experiment: Examining Author Self-Assessment in ML/AI Peer Review**
链接:http://arxiv.org/pdf/2408.13430v3
概况:研究机器学习会议评审过程中作者自我评估的有效性,提出改进评审机制的方法。
......
## 💻 AI开源项目
🤖 **llmling-agent - 多智能体工作流框架**
链接:https://github.com/phil65/llmling-agent
概况:支持YAML配置和编程方式的多智能体交互框架,集成MCP和ACP协议支持。
🚌 **College_EV_AI_Transportation - 校园AI电动交通系统**
链接:https://github.com/LuisMc2005v/College_EV_AI_Transportation
概况:AI驱动的校园电动交通优化系统,实现实时跟踪和高效拼车服务。
......
仔细检查简报的内容准确性、格式完整性以及语言风格。如果发现不符合预期的部分,需返回提示词或插件配置环节进行细致调整。例如,若内容不够精炼,可修改提示词中的概括要求;若数据获取不准确,则需检查插件配置参数。
多渠道发布: Coze 提供了将智能体一键发布到多个主流应用平台(如微信、豆包、飞书等)的能力,极大地扩展了智能体的应用场景,如图5.10所示。
图 5.10 扣子平台的多元发布渠道
智能体发布后,可以在扣子商店中看到我们创建的AI智能体,同时也可以将其集成到AI应用中为用户提供服务,如图5.11和图5.12所示。在这里也附上每日AI新闻智能体体验链接
图 5.11 AI智能体-每日AI新闻
更进一步的,我们可以点击这个体验链接查看在AI应用中的每日AI新闻。
图 5.12 AI应用中的每日AI新闻
图 5.13 为智能体配置基础信息
图 5.14 为智能体配置开场白和预设问题
优势:
局限性:
Marketplace 生态: Dify Marketplace 提供了一站式插件管理和一键部署功能,使开发者能够发现、扩展或提交插件,为社区带来更多可能 。Marketplace 包含: 所有标签:搜索所有插件... 模型 (Models) 工具 (Tools) 智能体策略 (Agent Strategies) 扩展 (Extensions) 捆绑包 (Bundles) 目前,Dify Marketplace 已拥有超过 8677 个插件,涵盖各种功能和应用场景 。其中,官方推荐的插件包括: Google Search: langgenius/google Azure OpenAI: langgenius/azure_openai Notion: langgenius/notion DuckDuckGo: langgenius/duckduckgo 插件开发支持: Dify 为插件开发者提供了强大的开发支持,包括远程调试功能,可与流行的 IDE 无缝协作,只需最少的环境设置 。开发者可以连接到 Dify 的 SaaS 服务,同时将所有插件操作转发到本地环境进行测试,这种开发者友好的方法旨在赋能插件创建者并加速 Dify 生态系统的创新。 三、Dify 开发者社区分析 3.1 社区规模与活跃度 Dify 拥有活跃的开源开发者生态,其社区规模和活跃度在 LLM 应用开发平台领域处于领先地位 。 社区基础数据: GitHub 社区贡献者超过 200 人,月均提交代码量 1,500+ GitHub 全球 LLM 工具增速第一 GitHub Stars 超过 105.7k,Forks 超过 3.5k 累计下载次数超过 500 万 活跃开发者超过 800+ 社区增长趋势: Dify 在 GitHub 上的增长速度惊人,已成为全球 LLM 工具领域增速最快的开源项目 。其 GitHub Star 历史数据显示: 上线 200 天,GitHub Stars 超过 12k 2024 年 3 月,突破 20k 2024 年 11 月,达到 35k 2025 年 2 月,超过 46k 截至 2025 年 10 月,已超过 105.7k 社区参与度: Dify 社区的参与度非常高,开发者们积极参与代码贡献、问题讨论和功能建议。社区成员来自全球 150 多个国家,形成了多元化的技术交流环境 。在 GitHub 上,Dify 项目有 500 多个全球一起共创产品的贡献者,整个产品在全球安装量超过了 300 万 。 社区影响力与贡献分析 Dify 社区已在全球范围内产生了广泛影响,成为 LLM 应用开发领域的重要力量 。 社区贡献: Dify 社区的贡献主要体现在以下几个方面: 代码贡献:超过 500 名贡献者提交了超过 1,500 次代码变更 插件开发:Marketplace 已收录超过 8,600 个插件,由社区开发者贡献 文档完善:社区成员积极参与文档编写和翻译工作 问题解决:社区成员相互帮助解决使用过程中遇到的问题 行业认可: Dify 社区的贡献得到了行业的广泛认可: 开源社区年度最具影响力 LLMOps 平台 开发者工具技术创新金奖 全球开发者大会开源贡献之星 GitHub 全球 LLM 工具增速第一 开发者评价: 开发者对 Dify 的评价普遍积极,认为其: "是最优雅的 LLM 应用开发平台之一,界面设计美观,功能强大" "提供了强大的工作流编排能力,让复杂的 AI 应用开发变得简单" "模型中立性设计非常出色,能够轻松切换不同的大模型" "活跃的社区和完善的文档支持,使开发过程更加顺畅" Dify 是一个开源的大语言模型(LLM)应用开发平台,融合了 后端即服务(BaaS) 和 LLMOps 理念,为从原型设计到生产部署提供全流程支持 blog.csdn.net 。它采用分层模块化架构,分为数据层、开发层、编排层和基础层,各层解耦便于扩展 blog.csdn.net blog.csdn.net 。在技术栈上,后端主要使用 Python + Flask 提供 REST API,并用 Celery 处理异步任务,前端采用 React + TypeScript 构建界面(工作流画布基于 ReactFlow) blog.csdn.net 。数据存储上默认使用 PostgreSQL(元数据)、Weaviate 向量数据库和 Redis 缓存,以支持知识库检索和高并发 blog.csdn.net 。这一架构确保 Dify 拥有良好的解耦性和可扩展性,例如其先进的插件系统将原本内置的模型、工具和 RAG 组件都拆分为独立插件,可在本地部署中作为子进程运行,SaaS 部署时则基于无服务器函数,实现了灵活的扩展与安全隔离 woshipm.com 。
Dify 对模型高度中立且兼容性强:无论开源或商业模型,用户都可通过简单配置将其接入,并通过统一接口调用其推理能力 blog.csdn.net 。其内置支持对 数百种开源或专有 LLM 的集成,涵盖 GPT、Mistral、Llama等模型,以及任何兼容 OpenAI API 的模型 github.com 。同时,Dify 支持 本地部署(官方提供 Docker Compose 一键启动)和云端部署。用户可以选择将 Dify 自建部署在本地/私有环境(保障数据隐私),也可以使用官方 SaaS 云服务(下述商业模式部分详述) blog.csdn.net ex.chinadaily.com.cn 。这种部署灵活性使其适用于对安全性有要求的企业内网环境或对运维便利性有要求的开发者群体。 开源社区活跃度
自 2023 年5月开源以来,Dify 在社区中获得了爆发式关注。GitHub 星标超过 10万(2025年中突破 100k 星, dify.ai ),跻身全球最受欢迎的百强开源项目之列 dify.ai 。截至 2025年9月,其 GitHub 仓库已有约1000名贡献者参与代码提交 github.com 。如此高的 Star 数和贡献者数量表明社区极其活跃,全球开发者通过提交代码、反馈问题和撰写文档共同推动项目演进。官方也特别感谢了多个核心贡献者在新模型接入、部署优化、插件生态等方面的努力 dify.ai dify.ai 。Dify 项目保持着快速的发布节奏(2023年至2025年持续版本迭代至 v1.9+),社区讨论活跃(拥有官方 Discord、Reddit 等频道)。如此蓬勃的开源社区为 Dify 提供了源源不断的创新动力和问题修复支持。 应用场景与使用者类型
目标用户: Dify 面向范围广泛的用户群体,从个人开发者和 AI 爱好者,到初创公司、成熟企业乃至教育机构均可受益 woshipm.com 。其低门槛的可视化操作使非技术背景的用户也能上手定义 AI 应用和运营数据,而强大的功能和可定制性又满足了大型企业复杂业务的需求 woshipm.com blog.csdn.net 。例如,Dify 的官网案例提及了沃尔沃汽车、理光等大型企业使用 Dify 开发 AI 应用的实例,显示出其在企业市场的吸引力 woshipm.com ;同时 Dify 推出了“Dify for Education”计划,为高校和培训机构提供支持,培育下一代 AI 开发者 woshipm.com 。这种兼顾易用性与专业性的设计,使得 Dify 在个人、企业和教育领域均有用武之地。
典型场景: 在企业中,Dify 常被用于构建各种AI 助理和数字员工,以提升运营效率和决策质量。例如构建智能客服/chatbot为客户提供7×24咨询服务,或内部知识库问答系统帮助员工快速获取资料。又如结合业务流程构建AI Agent,“自主”执行任务:在营销领域有自动化生成内容、智能投放广告的助手,在销售领域有线索跟进和数据分析的助手,在IT运维领域有日志监控和故障诊断的Agent,等等 ex.chinadaily.com.cn ex.chinadaily.com.cn 。Dify 丰富的工具插件让这些 Agent 可以访问网页、查询数据库、调用内部API完成复杂操作 woshipm.com 。除了 Agent 类应用,Dify 也支持检索增强型问答(RAG)场景,比如构建企业文档资料库的智能问答系统、法律法规智能检索助手等,利用 Dify 的知识库和混合搜索提升答案精准度 blog.csdn.net blog.csdn.net 。对于开发者个人,Dify 则是一个理想的快速原型工具:开发者可以在可视化界面编排 Prompt 流程、测试不同模型效果,快速验证自己的 AI 创意 blog.csdn.net 。在教学场景中,Dify 可用于AI课程实践,学生无需从零开始编写后端,即可通过 Dify 平台构建聊天机器人、数据分析助手等项目,从而专注于理解 Prompt 工程和模型应用。本质上,Dify 提供了一套通用的 AI 应用底座,不同用户可以在其上灵活定制出适合自己领域的生成式 AI 解决方案。
Dify 的核心优势在于其一体化、工程化的平台:拥有直观的 UI、全面的功能模块以及蓬勃的社区与插件生态,降低了开发和部署门槛 blog.csdn.net 。这使它非常适合希望快速构建AI应用的开发者和团队,以及需要多模型整合的复杂应用场景 zhuanlan.zhihu.com explinks.com 。但作为代价,Dify 对底层细节的控制和针对极端特定场景的优化可能不如某些专用框架(例如LangChain在代码层面的自由度、FastGPT在深度RAG上的优化等)。对于用户而言,Dify 是一个强大的“AI应用工厂”,而其他同类产品则各有特长:有的提供了更灵活的编程能力,有的专注某垂直领域效果更佳。在实际选型时,应该根据团队技术实力、应用类型和性能要求进行权衡。如果追求快速落地、功能完备,Dify 会是明智的选择;如果追求特定能力最优或完全的自主可控,可以结合其他开源方案协同使用。 blog.csdn.net blog.csdn.net
案例说明: 这个实践的目标是利用 Dify 强大的知识库功能,将这个项目的前四章作为知识源,创建一个能精准回答本书内容的智能问答助手。
正如我们之前所介绍的,n8n 的核心身份是一个通用的工作流自动化平台,而非一个纯粹的 LLM 应用构建工具。理解这一点,是掌握 n8n 的关键。在使用 n8n 构建智能应用时,我们实际上是在设计一个更宏大的自动化流程,而大语言模型只是这个流程中的一个(或多个)强大的“处理节点”。
n8n 的世界由两个最基本的概念构成:节点 (Node) 和 工作流 (Workflow)。
n8n 的真正威力在于其强大的“连接”能力。它可以将原本孤立的应用程序和服务(如企业内部的 CRM、外部的社交媒体平台、你的数据库以及大语言模型)串联起来,实现过去需要复杂编码才能完成的端到端业务流程自动化。在接下来的实战中,我们将亲手体验如何利用这套节点和工作流系统,构建一个集成了 AI 能力的自动化应用。
关于n8n的环境配置和最基础的使用,在项目的Additional-Chapter文件夹下制作了文档,这里就不过多介绍。在上一节中,我们了解了 n8n 的基本概念。这个案例将清晰地展示现代 AI Agent 与传统自动化工作流的核心区别。传统流程是线性的,而我们即将构建的 Agent 将能够接收用户邮件,通过一个核心的 AI Agent 节点 进行“思考”,自主理解用户意图,并在多个可用“工具”中进行决策和选择,最终自动生成并发送高度相关的回复。
整个过程模拟了一个更高级的决策逻辑:接收 -> AI Agent (思考 -> 决策 -> 工具调用) -> 回复。
图 5.X 一体化智能邮件 Agent 架构示意图
与将工具拆分为多个子工作流的传统方法不同,n8n 的 AI Agent 节点允许我们将组件,例如大语言模型(LLM)、记忆(Memory)、工具(Tools)都整合在一个统一的界面中,极大地简化了构建过程。
整个搭建过程分为两个核心步骤:
为了让 Agent 能够回答关于特定领域(比如您的个人信息或项目文档)的问题,我们需要先为它准备一个“外部大脑”,一个向量知识库。
在 n8n 中,我们可以使用 Simple Vector Store 节点在内存中快速构建一个知识库。这个准备流程通常只需要在更新知识时运行一次。
(1) 定义知识源
首先,我们使用 Code 节点来存放我们的原始知识文本。这是一个简单快捷的方式,实际项目中数据也可以来自文件、数据库等。
Code
图 5.X 在 Code 节点中定义知识源
return [
{
"doc_id": "work-schedule-001",
"content": "我的工作时间是周一至周五,上午9点到下午5点。时区是澳大利亚东部标准时间(AEST)。"
},
{
"doc_id": "off-hours-policy-001",
"content": "在非工作时间(包括周末和公共假期),我无法立即回复邮件。"
},
{
"doc_id": "auto-reply-instruction-001",
"content": "如果邮件是在非工作时间收到的,AI助手应该告知发件人,邮件已收到,我会在下一个工作日的9点到5点之间尽快处理并回复。"
}
];
(2) 文本向量化 (Embeddings)
计算机无法直接理解文本,需要将其转换为向量。我们使用 Embeddings 节点来完成这个“翻译”工作。
Embeddings Google Gemini,选择模型为gemini-embedding-exp-03-07。这里使用Google API来演示,如果不知道如何获取Google API可以参考5.5.3小节。Code 节点之后,它会自动将上游传入的文本转换为向量数据。
图 5.X 对 Code 中数据进行向量化
(3) 存入向量存储
最后,我们将向量化的知识存入内存数据库中。
Simple Vector StoreInsert Documents (写入模式)。my-dailytime。这个 Key 相当于数据库的“表名”,后续 Agent 将通过它来查找信息。
图 5.X 对 Code 中数据存入向量存储
完成配置后,手动执行一次这个流程。成功后,您的私有知识就加载到 n8n 的内存中了。
图 5.X 完整的知识库加载工作流
有了工具,我们现在开始构建 Agent 的主要流程。它将负责接收邮件、进行思考和决策,并在合适的时机调用我们刚刚创建的工具,最终执行邮件的回复。
(1)配置 Gmail 触发器
新建一个工作流,命名为 Agent: Customer Support。使用 Gmail 节点作为触发器,将其 Event 设置为 Message Received,并配置好你的邮箱账号。这样,每当有新邮件进入收件箱时,该工作流就会被自动触发。
图 5.X 新建Gmail节点图
配置过程可参考n8n官方文档。Gmail的api在这里配置,需要创建凭证,选择Web 应用类型,最后即得到所需的客户端ID和客户端密钥。并且需要在已获授权的重定向 URI 将n8n刚给的OAuth Redirect URL给添加上。同时,还需要在目标对象的Add users加上自己的邮箱地址。最终配置完成的页面如图5.X所示。
图 5.X Gmail账号加载成功图
现在我们可以点击Fetch Test Event获取邮件了!
图 5.X 获取实时邮件图
(2)配置 AI Agent 节点
这是整个工作流的大脑。从节点菜单中拖出一个 AI Agent 节点,并进行如下配置:
Google Gemini Chat Model。这是 Agent 的“思考核心”。Simple Memory 节点。这能让 Agent 在处理同一邮件线索下的多封往来邮件时,记住之前的对话历史。SerpAPI: 这是我们之前第四章案例中使用过的API,让 Agent 拥有上网搜索公开信息的能力。Simple Vector Store: 让 Agent 拥有查询我们第一部分中创建的私有知识库的能力。
图 5.X AI Agent节点设置图
这是 Agent “思考”的第一步。添加一个 Gemini 节点(或其他 LLM 节点),模式设置为 Chat。我们的目标是让它分析邮件内容,判断用户意图。Prompt 的设计至关重要,一个清晰的指令能让 LLM 更准确地完成任务。我们将邮件正文和主题({{ $json.snippet }}{{ $json.Subject }})作为变量传入 Prompt 中,没有API可以到Google AI Studio点击Get API key创建一个可用的。
其中,对于AI Agent节点,我们需要填的主要是User Message和System Message部分。
图 5.X AI Agent 节点详解图
在这里给出我们案例所使用的Prompt:
# Prompt (User Message)
# 上下文信息
- 当前时间: {{ new Date().toLocaleString('en-AU', { timeZone: 'Australia/Sydney', hour12: false }) }} (澳大利亚悉尼时间)
- 发件人: {{ $json.From }}
- 主题: {{ $json.Subject }}
- 邮件正文: {{ $json.snippet }}
# System Message
# 角色和目标
你是一个全天候待命、专业高效的AI邮件助手。你的任务是:第一时间使用公开信息尽力回答所有邮件中的问题,并根据我的工作日程,在回复的开头附加上下文状态提醒。
# 上下文信息
- 当前时间: {{ new Date().toLocaleString('en-AU', { timeZone: 'Australia/Sydney', hour12: false }) }} (澳大利亚悉尼时间)
- 邮件信息在输入数据中。
# 可用工具
- Simple Vector Store2: 用来查询我准确的工作时间(例如:周一至周五,上午9点到下午5点)。
- SerpAPI: **[主要信息来源]** 优先使用此工具在互联网上搜索,以回答邮件中的具体问题。
# 执行步骤
1. **分析问题**: 首先,仔细阅读邮件内容,提炼出发件人的核心问题。
2. **并行信息搜集**: 同时执行以下两个操作来收集信息:
a. 使用 `SerpAPI` 工具,上网搜索出发件人问题的答案。
b. 使用 `Simple Vector Store2` 工具,获取我设定的准确工作时间。
3. **草拟核心回复**: 根据 `SerpAPI` 搜集到的信息,清晰、直接地回答发件人的问题,这部分将作为邮件回复的主体。
4. **添加状态前缀并整合**:
a. 对比“当前时间”和我从工具中获取的工作时间。
b. **如果当前是“非工作时间”**: 创建一段状态提醒前缀。这段前缀**必须包含**从 `Simple Vector Store2` 获取到的具体工作时间。
* **前缀示例**: "您好,感谢您的来信。您已在我的非工作时间联系我(我的工作时间为:[此处插入查询到的工作时间])。我会在下一个工作日亲自审阅此邮件。与此同时,这是根据公开信息为您找到的初步答复:**<br><br>---<br><br>**"
c. **如果当前是“工作时间”**: 只需使用简单的问候语即可。
* **前缀示例**: "您好,关于您提出的问题,答复如下:**<br><br>---<br><br>**"
d. 将生成的前缀和你草拟的核心回复(第3步的结果)拼接在一起,形成最终的邮件正文。
5. **格式化输出**: 你必须将最终生成的邮件内容以一个严格的 JSON 格式输出。格式如下,不要添加任何额外的解释或文字:
{
"shouldReply": true,
"subject": "Re: [原始邮件主题]",
"body": "[这里是拼接好的、完整的邮件回复正文,**所有换行必须使用HTML的<br>标签**]"
}
# 规则和限制
- **永远优先尝试回答**: 无论何时,你的首要任务是使用 `SerpAPI` 为用户提供有价值的回复。
- **必须声明状态**: 如果在非工作时间回复,必须在邮件开头明确声明,并附上我准确的工作时间。
- **信息来源要准确**: 工作时间必须严格以 `Simple Vector Store2` 的结果为准;问题答案主要来源于 `SerpAPI`,不要编造信息。
- **输出格式**: **在最终输出的JSON中,`body`字段内的所有换行都必须使用 `<br>` 标签,而不是 `\n`。**
(3) 配置 Agent 的工具
对于 Simple Vector Store 工具,我们需要进行关键配置,以确保它能正确“读取”我们之前存入的知识:
Retrieve Documents (As Tool for AI Agent) (作为工具的读取模式)。my_private_knowledge。Embeddings Google Gemini 模型。只有 Memory Key 和 Embeddings 模型完全一致,Agent 才能用正确的“钥匙”和“语言”来访问知识库。
图 5.X Simple Vector Store工具配置
Description参数即AI Agent调用该工具时,对该工具的描述定义,在这里也给出对应的Prompt:
这是Simple Vector Store2工具,用来查询我的个人信息,特别是我的工作时间和邮件回复策略。当需要判断当前是否为工作时间,或者需要告知对方我何时会回复邮件时,必须使用此工具。
对于Memory唯一需要注意的是,这里我们使用每个邮箱的线程名作为唯一标识,能保证存储的唯一性,设置的Key为{{ $('Gmail').item.json.threadId }}
(4) 发送最终回复
最后一步是执行。将 AI Agent 节点的输出连接到一个 Gmail 节点,Operation 设为 Send。使用 n8n 表达式,将收件人、主题和正文分别关联到 AI Agent 输出的 JSON 数据中的相应字段,即可实现邮件的自动回复。
{{ $('Gmail').item.json.From }} (或其他触发器中的发件人字段)Re: {{ $('Gmail').item.json.Subject }}{{ $json.output }}
图 5.X 最终回复工具图示
并且发送成功的同时,也能在个人邮箱收到真实的返回邮件信息,如图5.X所示。
图 5.X 个人邮箱返回邮件格式
至此,一个基于 AI Agent 节点的一体化智能客服就构建完成了,你可以发送一封测试邮件来检验它的工作成果。这个架构的扩展性极强。未来,您可以直接向 AI Agent 节点添加更多的工具(如日历、数据库、CRM 等),只需在 Prompt 中教会 Agent 如何使用它们,就能不断赋予您的 Agent 更强大的能力。
通过前面从零到一构建智能邮件助手的实践,我们已经对 n8n 的工作模式有了直观的感受。作为一个强大的低代码自动化平台,n8n 在赋能 Agent 应用开发方面表现出色,但它也并非万能。如表5.X所示,我们将客观地分析其优势与潜在的局限性。
表 5.X n8n 平台的优势与局限性总结
首先,n8n 最显著的优势在于其开发效率。它将复杂的逻辑抽象为直观的可视化工作流,无论是邮件的接收、AI 的决策,还是工具的调用和最终的回复,整个数据流和处理链路都在画布上一目了然。这种低代码的特性极大地降低了技术门槛,让开发者能够快速搭建和验证 Agent 的核心逻辑,极大地缩短了从想法到原型的距离。
其次,平台的功能强大且高度集成。n8n 拥有丰富的内置节点库,可以轻松连接像 Gmail、Google Gemini 等数百种常见服务。更重要的是,其先进的 AI Agent 节点将模型、记忆和工具管理高度整合,让我们能用一个节点就实现复杂的自主决策,这比传统的多节点手动路由方式要优雅和强大得多。同时,对于内置功能无法覆盖的场景,Code 节点也提供了编写自定义代码的灵活性,保证了功能的上限。
最后,在部署运维层面,n8n 支持私有化部署,并且也是目前相对比较简单且能部署完整版项目的私有化Agent方案,这一点对于注重数据安全和隐私的企业至关重要。我们可以将整个服务部署在自己的服务器上,确保类似内部邮件、客户数据等敏感信息不离开自有环境,这为 Agent 应用的合规性提供了坚实的基础。
当然,每个工具都有其取舍。在享受 n8n 带来便利的同时,我们也必须认识到其局限性。
在开发效率的背后,是调试与错误处理的相对繁琐。当工作流变得复杂时,一旦出现数据格式错误,开发者可能需要逐个节点检查其输入输出来定位问题,这有时不如在代码中设置断点来得直接。
功能方面,最大的局限性体现在其内置存储的非持久性。我们在案例中使用的 Simple Memory 和 Simple Vector Store 都是基于内存的,这意味着 n8n 服务一旦重启,所有对话历史和知识库都将丢失。这对于生产环境的应用是致命的。因此,在实际部署时,必须将其替换为如 Redis、Pinecone 等外部持久化数据库,这也会增加了额外的配置和维护成本。
此外,在部署运维和团队协作上,n8n 的版本控制和多人协作不如传统代码成熟。虽然可以将工作流导出为 JSON 文件进行管理,但对比其变更远不如 git diff 代码来得清晰,多人同时编辑同一个工作流也容易产生冲突。
最后是关于性能,n8n 完全能满足绝大多数企业自动化和中低频次的 Agent 任务。但对于需要处理超高并发请求的场景,其节点调度机制可能会带来一定的性能开销,相比于纯代码实现的服务可能稍逊一筹。
[1]