Browse Source

update chapter5

jjyaoao 8 months ago
parent
commit
2b6d26ee1e
1 changed files with 147 additions and 115 deletions
  1. 147 115
      docs/chapter5/第五章 基于低代码平台的智能体搭建.md

+ 147 - 115
docs/chapter5/第五章 基于低代码平台的智能体搭建.md

@@ -21,7 +21,7 @@
 
 
 ### 5.1.2 低代码平台的选择
 ### 5.1.2 低代码平台的选择
 
 
-当前,智能体与 LLM 应用的低代码平台市场呈现出百花齐放的态势,每个平台都有其独特的定位和优势。选择哪个平台,往往取决于你的核心需求、技术背景以及项目的最终目标。在本章的后续内容中,我们将重点介绍并实操四个各具代表性的平台:Coze、Dify、FastGPT 和 n8n。在此之前,我们先对它们进行一个概要性的介绍。
+当前,智能体与 LLM 应用的低代码平台市场呈现出百花齐放的态势,每个平台都有其独特的定位和优势。选择哪个平台,往往取决于你的核心需求、技术背景以及项目的最终目标。在本章的后续内容中,我们将重点介绍并实操三个各具代表性的平台:Coze、Dify和 n8n。在此之前,我们先对它们进行一个概要性的介绍。
 
 
 <strong>Coze</strong>
 <strong>Coze</strong>
 
 
@@ -35,14 +35,6 @@
 - <strong>特点分析</strong>:它融合了后端服务和模型运营的理念,支持 Agent 工作流、RAG Pipeline、数据标注与微调等多种能力。对于追求专业、稳定、可扩展的企业级应用而言,Dify 提供了坚实的基础。
 - <strong>特点分析</strong>:它融合了后端服务和模型运营的理念,支持 Agent 工作流、RAG Pipeline、数据标注与微调等多种能力。对于追求专业、稳定、可扩展的企业级应用而言,Dify 提供了坚实的基础。
 - <strong>适用人群</strong>:有一定技术背景的开发者、需要构建可扩展的企业级 AI 应用的团队。
 - <strong>适用人群</strong>:有一定技术背景的开发者、需要构建可扩展的企业级 AI 应用的团队。
 
 
-<strong>FastGPT</strong>
-
-- <strong>核心定位</strong>:FastGPT 是一个专注于知识库问答场景的开源 AI 平台。
-
-- <strong>特点分析</strong>:它的核心优势在于强大的<strong>检索增强生成(Retrieval-augmented generation, RAG)</strong>能力。用户可以轻松导入多种格式的私有文档,快速构建一个高质量、高精度的企业知识库或智能客服。相比于 Dify,FastGPT 更轻量、在 RAG 效果上打磨得更深,并提供了与 OpenAI 兼容的 API,便于集成。
-
-- <strong>适用人群</strong>:需要构建企业内部知识库、AI 客服、领域知识问答系统的开发者或中小企业。
-
 <strong>n8n</strong>
 <strong>n8n</strong>
 
 
 - <strong>核心定位</strong>:n8n 本质上是一个开源工作流自动化工具,而非纯粹的 LLM 平台。近年来,它积极集成了 AI 能力。
 - <strong>核心定位</strong>:n8n 本质上是一个开源工作流自动化工具,而非纯粹的 LLM 平台。近年来,它积极集成了 AI 能力。
@@ -105,8 +97,6 @@
 
 
 ### 5.2.2 构建“每日AI简报”助手
 ### 5.2.2 构建“每日AI简报”助手
 
 
-
-
 <strong>案例说明:</strong> 本实践案例旨在深入剖析 Coze 平台的插件集成能力,指导读者从零开始构建一个功能强大的“每日AI简报”智能体。该智能体能够自动化地从多个信息源(包括36氪、虎嗅、it之家、infoq、GitHub、arXiv)抓取当日最新的AI领域头条新闻、学术论文及开源项目动态,并将其结构化、专业化地整合成一份生动、精炼的简报。
 <strong>案例说明:</strong> 本实践案例旨在深入剖析 Coze 平台的插件集成能力,指导读者从零开始构建一个功能强大的“每日AI简报”智能体。该智能体能够自动化地从多个信息源(包括36氪、虎嗅、it之家、infoq、GitHub、arXiv)抓取当日最新的AI领域头条新闻、学术论文及开源项目动态,并将其结构化、专业化地整合成一份生动、精炼的简报。
 
 
 通过本案例,您将系统性地掌握以下核心技能:
 通过本案例,您将系统性地掌握以下核心技能:
@@ -289,8 +279,6 @@ Arxiv插件配置
 
 
 ### 5.2.3 Coze 的优势与局限性分析
 ### 5.2.3 Coze 的优势与局限性分析
 
 
-
-
 <strong>优势:</strong>
 <strong>优势:</strong>
 
 
   * <strong>强大的插件生态系统:</strong> Coze 平台的核心优势在于其丰富的插件库,这使得智能体能够轻松接入外部服务与数据源,从而实现功能的高度扩展性。
   * <strong>强大的插件生态系统:</strong> Coze 平台的核心优势在于其丰富的插件库,这使得智能体能够轻松接入外部服务与数据源,从而实现功能的高度扩展性。
@@ -302,24 +290,32 @@ Arxiv插件配置
 
 
   * <strong>不支持MCP:</strong> 我觉得这是最致命的,尽管扣子的插件市场极其丰富,也极其有吸引力。但是不支持mcp可能会成为限制其发展的枷锁,如果放开那将是又一杀手锏。
   * <strong>不支持MCP:</strong> 我觉得这是最致命的,尽管扣子的插件市场极其丰富,也极其有吸引力。但是不支持mcp可能会成为限制其发展的枷锁,如果放开那将是又一杀手锏。
   * <strong>部分插件配置的复杂度高:</strong> 对于需要 API Key 或其他高级参数的插件,用户可能需要具备一定的技术背景才能完成正确的配置。复杂的工作流编排也不仅仅是零基础就可以掌握的,需要一定的js或者python的基础。
   * <strong>部分插件配置的复杂度高:</strong> 对于需要 API Key 或其他高级参数的插件,用户可能需要具备一定的技术背景才能完成正确的配置。复杂的工作流编排也不仅仅是零基础就可以掌握的,需要一定的js或者python的基础。
-  * <strong>无法导出编排json文件:</strong> 之前扣子是没有导出功能的,但是现在付费版是可以导出的,但是导出的不是像dify,n8n,fastgpt一样的json文件,而是一个zip。也就是说你只能在扣子导出然后扣子导入。
+  * <strong>无法导出编排json文件:</strong> 之前扣子是没有导出功能的,但是现在付费版是可以导出的,但是导出的不是像dify,n8n一样的json文件,而是一个zip。也就是说你只能在扣子导出然后扣子导入。
 
 
 
 
 
 
 ## 5.3 平台二:Dify
 ## 5.3 平台二:Dify
 ### 5.3.1 Dify 的介绍与生态
 ### 5.3.1 Dify 的介绍与生态
+
+Dify 是一个开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BaaS) 和 LLMOps 理念,为从原型设计到生产部署提供全流程支持,如图5.15所示。它采用分层模块化架构,分为数据层、开发层、编排层和基础层,各层解耦便于扩展。
+
+Dify 对模型高度中立且兼容性强:无论开源或商业模型,用户都可通过简单配置将其接入,并通过统一接口调用其推理能力。其内置支持对数百种开源或专有 LLM 的集成,涵盖 GPT、Deepseek、Llama等模型,以及任何兼容 OpenAI API 的模型。
+
+同时,Dify 支持本地部署(官方提供 Docker Compose 一键启动)和云端部署。用户可以选择将 Dify 自建部署在本地/私有环境(保障数据隐私),也可以使用官方 SaaS 云服务(下述商业模式部分详述)。这种部署灵活性使其适用于对安全性有要求的企业内网环境或对运维便利性有要求的开发者群体。
+
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-01.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-01.png" alt="图片描述" width="90%"/>
   <p>图 5.15 Dify官网</p>
   <p>图 5.15 Dify官网</p>
 </div>
 </div>
-​Dify 是一个开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BaaS) 和 LLMOps 理念,为从原型设计到生产部署提供全流程支持。它采用分层模块化架构,分为数据层、开发层、编排层和基础层,各层解耦便于扩展
-。在技术栈上,后端主要使用 Python + Flask 提供 REST API,并用 Celery 处理异步任务,前端采用 React + TypeScript 构建界面(工作流画布基于 ReactFlow)。数据存储上默认使用 PostgreSQL(元数据)、Weaviate 向量数据库和 Redis 缓存,以支持知识库检索和高并发。Dify 对模型高度中立且兼容性强:无论开源或商业模型,用户都可通过简单配置将其接入,并通过统一接口调用其推理能力。其内置支持对 数百种开源或专有 LLM 的集成,涵盖 GPT、Deepseek、Llama等模型,以及任何兼容 OpenAI API 的模型。同时,Dify 支持 本地部署(官方提供 Docker Compose 一键启动)和云端部署。用户可以选择将 Dify 自建部署在本地/私有环境(保障数据隐私),也可以使用官方 SaaS 云服务(下述商业模式部分详述)。这种部署灵活性使其适用于对安全性有要求的企业内网环境或对运维便利性有要求的开发者群体。自 2023 年5月开源以来,Dify 在社区中获得了爆发式关注。GitHub 星标超过 10万(2025年中突破 100k 星),跻身全球最受欢迎的百强开源项目之列。截至 2025年9月,其 GitHub 仓库已有约1000名贡献者参与代码提交。如此高的 Star 数和贡献者数量表明社区极其活跃,全球开发者通过提交代码、反馈问题和撰写文档共同推动项目演进。官方也特别感谢了多个核心贡献者在新模型接入、部署优化、插件生态等方面的努力。Dify 项目保持着快速的发布节奏(2023年至2025年持续版本迭代至 v1.9+),社区讨论活跃(拥有官方 Discord、Reddit 等频道)。如此蓬勃的开源社区为 Dify 提供了源源不断的创新动力和问题修复支持。
+
+Marketplace 插件生态:​Dify Marketplace 提供了一站式插件管理和一键部署功能,使开发者能够发现、扩展或提交插件,为社区带来更多可能​,如图5.16所示
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-02.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-02.png" alt="图片描述" width="90%"/>
   <p>图 5.16 Dify Marketplace插件生态</p>
   <p>图 5.16 Dify Marketplace插件生态</p>
 </div>
 </div>
-Marketplace 插件生态:​Dify Marketplace 提供了一站式插件管理和一键部署功能,使开发者能够发现、扩展或提交插件,为社区带来更多可能​。Marketplace 包含:​
+Marketplace 包含:
+
 
 
 - 模型 (Models)​
 - 模型 (Models)​
 - 工具 (Tools)​
 - 工具 (Tools)​
@@ -332,74 +328,84 @@ Marketplace 插件生态:​Dify Marketplace 提供了一站式插件管理和
 - Azure OpenAI: langgenius/azure_openai​
 - Azure OpenAI: langgenius/azure_openai​
 - Notion: langgenius/notion​
 - Notion: langgenius/notion​
 - DuckDuckGo: langgenius/duckduckgo​
 - DuckDuckGo: langgenius/duckduckgo​
-​
+  
 
 
-  
 Dify 为插件开发者提供了强大的开发支持,包括远程调试功能,可与流行的 IDE 无缝协作,只需最少的环境设置​。开发者可以连接到 Dify 的 SaaS 服务,同时将所有插件操作转发到本地环境进行测试,这种开发者友好的方法旨在赋能插件创建者并加速 Dify 生态系统的创新。​这也为什么Dify可以成目前最成功的智能体平台之一,因为模型是都可以接入的,提示词、编排是可以复制的,但是工具插件的有无,是否丰富就直接决定了你的智能体能否做出更好的效果或者意想不到的强大功能。
 Dify 为插件开发者提供了强大的开发支持,包括远程调试功能,可与流行的 IDE 无缝协作,只需最少的环境设置​。开发者可以连接到 Dify 的 SaaS 服务,同时将所有插件操作转发到本地环境进行测试,这种开发者友好的方法旨在赋能插件创建者并加速 Dify 生态系统的创新。​这也为什么Dify可以成目前最成功的智能体平台之一,因为模型是都可以接入的,提示词、编排是可以复制的,但是工具插件的有无,是否丰富就直接决定了你的智能体能否做出更好的效果或者意想不到的强大功能。
 
 
+### 5.3.2 构建一个超级智能体个人助手
 
 
-Dify 社区的贡献得到了行业的广泛认可:​开源社区年度最具影响力 LLMOps 平台、​开发者工具技术创新金奖、​全球开发者大会开源贡献之星​、GitHub 全球 LLM 工具增速第一​。​开发者对 Dify 的评价普遍积极,认为其:​"是最优雅的 LLM 应用开发平台之一,界面设计美观,功能强大"​、"提供了强大的工作流编排能力,让复杂的 AI 应用开发变得简单"​、"模型中立性设计非常出色,能够轻松切换不同的大模型"​、"活跃的社区和完善的文档支持,使开发过程更加顺畅"​
+在上一节 Coze 的案例中,我们搭建了一个每日AI简报智能体。虽然功能明确,但其单一的简报生成能力略显局限。本节将使用 Dify 构建一个功能全面的超级智能体个人助手,涵盖日常问答、文案优化、多模态生成、数据分析等多个场景。在开始之前,我们先简要了解 Dify 的主要界面和功能模块
 
 
-### 5.3.2 构建一个超级智能体个人助手
-在上一个coze的案例我们已经搭建了一个每日AI简报的智能体,但是会不会感觉他其实有点太简单了,因为他只有一个功能生成简报。那么现在我们就用dify来做一个功能全面而且更加丰富有趣的超级智能体个人助手吧。照例我们简单介绍一下dify的界面和使用。
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-14.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-14.png" alt="图片描述" width="90%"/>
   <p>图 5.17 Dify 智能体搭建主页</p>
   <p>图 5.17 Dify 智能体搭建主页</p>
 </div>
 </div>
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-18.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-18.png" alt="图片描述" width="90%"/>
   <p>图 5.18 Dify 官方模板库</p>
   <p>图 5.18 Dify 官方模板库</p>
 </div>
 </div>
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-15.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-15.png" alt="图片描述" width="90%"/>
   <p>图 5.19 Dify 知识库</p>
   <p>图 5.19 Dify 知识库</p>
 </div>
 </div>
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-16.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-16.png" alt="图片描述" width="90%"/>
   <p>图 5.20 Dify 插件市场</p>
   <p>图 5.20 Dify 插件市场</p>
 </div>
 </div>
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-17.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-17.png" alt="图片描述" width="90%"/>
   <p>图 5.21 Dify 大模型配置</p>
   <p>图 5.21 Dify 大模型配置</p>
 </div>
 </div>
 
 
-#### 5.3.2.1 步骤一:创建插件和配置MCP
-OK,简单了解完dify的大体架构,现在我们就从头开始讲如何搭建一个你专属的私人超级智能体。在开始之前我们还需要做一些配置,才能让我们的智能体发挥作用。
+<strong>(1) 创建插件和配置MCP</strong>
+
+在构建智能体之前,需要先完成必要的插件安装和 MCP 配置。如图5.22所示,这些是本案例所需的核心插件。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-19.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-19.png" alt="图片描述" width="90%"/>
   <p>图 5.22 Dify 插件安装配置</p>
   <p>图 5.22 Dify 插件安装配置</p>
 </div>
 </div>
 
 
-上面这些红色框框起来的插件就是我们需要在插件市场安装到自己环境中使用的插件,在插件市场中再找他们并安装就行了。有兴趣的话你也可以点击查看详情了解这些插件的详细功能和作用
+图中红框标注的插件需要从 Dify 插件市场中搜索并安装。用户可以点击查看详情了解各插件的具体功能
 
 
-插件安装很简单,只需要在插件市场中找到即可。下面我们看看在dify中使用mcp的配置,关于mcp有很多详细的资料,这里我们就不展开了,我们只讲最简单的如何使用别人在云端部署好的mcp,也就是最简单的mcp使用并且使用国内的mcp插件市场魔搭社区给大家进行演示。
+接下来配置 MCP(Model Context Protocol)。关于 MCP 的详细原理这里不展开,我们重点演示如何使用云端部署的 MCP 服务。本案例使用国内的魔搭社区 MCP 市场进行演示,如图5.23所示。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-20.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-20.png" alt="图片描述" width="90%"/>
   <p>图 5.23 魔搭社区mcp市场</p>
   <p>图 5.23 魔搭社区mcp市场</p>
 </div>
 </div>
 
 
-打开魔搭社区的mcp市场,在右边选择hosted类型,比如我们已高德mcp为例,点击高德mcp进入他的主页,在右侧选择sse模式点击连接配置,这样子生成的一个mcp配置json就完成你专属的高德mcp了。mcp有很多种模式,但是dify的mcp配置使用sse通信上会更好更流畅一些,所以建议选择sse模式。
+打开魔搭社区 MCP 市场,选择 hosted 类型。以高德 MCP 为例,进入其主页后,在右侧选择 SSE 模式并点击连接配置,即可生成专属的 MCP 配置 JSON,如图5.24所示。MCP 支持多种通信模式,但在 Dify 中使用 SSE 模式通信更加流畅稳定,因此推荐选择 SSE 模式。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-21.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-21.png" alt="图片描述" width="90%"/>
   <p>图 5.24 高德mcp配置示例</p>
   <p>图 5.24 高德mcp配置示例</p>
 </div>
 </div>
 
 
-#### 5.3.2.2 步骤二:agent设计与效果展示
+<strong>(2) Agent设计与效果展示</strong>
+
+本案例将创建一个全方位的私人助手,涵盖以下功能模块:
 
 
-本次我们使用dify来创建一个覆盖生活全方面的私人助手,包括日常生活问答、文案润色、多模态的图片和视频生成、数据查询、数据可视化分析、高德mcp、吃什么mcp、新闻mcp。全方面的覆盖生活的衣食住行为你提供量身定制的智能体助手,带来全面的智能体验。下面我们就一步一步给大家演示一下如何进行相关的配置和设计。
+- 日常生活问答
+- 文案润色优化
+- 多模态内容生成(图片、视频)
+- 数据查询与可视化分析
+- MCP 工具集成(高德地图、饮食推荐、新闻资讯)
+
+整个智能体的编排架构如图5.25所示。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-12.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-12.png" alt="图片描述" width="90%"/>
   <p>图 5.25 智能体编排</p>
   <p>图 5.25 智能体编排</p>
 </div>
 </div>
-面对这样子的多智能体形态我们选择使用问题分类器帮助大家进行多个智能体的协调调度,在分类器中我们设置好每个智能体的核心功能和任务,确保可以进入到正确的分类。
 
 
-首先是我们的日常助手,这个其实很简单就是一个大模型设置好对应的提示词和基础的时间工具,相对于一个保底的流程
+针对多智能体架构,我们使用问题分类器进行智能路由。在分类器中为每个智能体定义核心功能和任务范围,确保用户请求能够准确分发到对应的处理模块
 
 
-提示词设置:
+<strong>日常助手模块</strong>
+
+这是一个基础的对话模块,配置大语言模型和时间工具,作为兜底的通用问答服务。
+
+提示词配置:
 ```
 ```
 # Role: 日常问题咨询专家
 # Role: 日常问题咨询专家
 
 
@@ -459,15 +465,19 @@ OK,简单了解完dify的大体架构,现在我们就从头开始讲如何
 ## Initialization
 ## Initialization
 作为日常问题咨询专家,你必须遵守上述Rules,按照Workflows执行任务。
 作为日常问题咨询专家,你必须遵守上述Rules,按照Workflows执行任务。
 ```
 ```
-效果演示:
+
+效果演示如图5.26所示:
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-03.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-03.png" alt="图片描述" width="90%"/>
   <p>图 5.26 日常助手</p>
   <p>图 5.26 日常助手</p>
 </div>
 </div>
-第二是文案优化,我们从openai的数据报告中可以看到60%以上的用户,使用chatgpt其实都是在做文本优化相关的任务,很简单的把我润色或者修改、扩写、缩小等等,其实并没有很多复杂的或者编程设计类的工作。所以我们把这个部分做为我们的第二个功能。帮助大家在最多的使用场景下获得最好的效果
 
 
-提示词设置:
+<strong>文案优化模块</strong>
+
+根据 OpenAI 的数据报告,超过60%的用户使用 ChatGPT 进行文本优化相关任务,包括润色、修改、扩写、缩写等。因此,文案优化是高频需求场景,我们将其作为第二个核心功能模块。
+
+提示词配置:
 ```
 ```
 # 一、 角色人设(Role)
 # 一、 角色人设(Role)
 你是一位专业的文案优化专家,拥有丰富的营销文案写作和优化经验,擅长提升文案的吸引力、转化率和可读性。你的视角是站在目标受众和营销目标的角度,专业度边界限于文案优化领域,不涉及技术实现或产品开发。
 你是一位专业的文案优化专家,拥有丰富的营销文案写作和优化经验,擅长提升文案的吸引力、转化率和可读性。你的视角是站在目标受众和营销目标的角度,专业度边界限于文案优化领域,不涉及技术实现或产品开发。
@@ -496,32 +506,54 @@ OK,简单了解完dify的大体架构,现在我们就从头开始讲如何
 - 输出应直接呈现优化内容,无需额外解释或注释,除非用户要求。请确保优化后的文案内容更加丰富和完整,优化后的文案文本须超过500字。
 - 输出应直接呈现优化内容,无需额外解释或注释,除非用户要求。请确保优化后的文案内容更加丰富和完整,优化后的文案文本须超过500字。
 ```
 ```
 
 
-效果演示:
+效果演示如图5.27所示
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-04.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-04.png" alt="图片描述" width="90%"/>
   <p>图 5.27 文案助手</p>
   <p>图 5.27 文案助手</p>
 </div>
 </div>
 
 
-除了文本,我们最常见的图片、视频生成也是我们使用得比较多的功能,只是说这部分可能并不便宜。而且在之前很多生图、视频的效果也不是很好,还是一个不断发展的过程。不过随着像豆包生图的进化以及谷歌Nano banana的崛起生成图片的效果已经达到了十分逼真而且可控的效果,视频也在可灵和谷歌veo3的带领下,包括最新很火的openai sora2更新下迎来了又一个里程碑式的进步。下面我们就使用豆包的插件来完成生图和生成视频。其实非常简单你只要跟着我们前面的步骤把对应的插件安装好了之后,现在在工作流中添加对应的插件并把他们连起来,并且选择你喜欢的参数,比如说设置1比1的图片比例,选择生图模型doubao seedream。然后把生成的file文件输出就可以看到AI生成的图片了。像下面这样子
+<strong>多模态生成模块</strong>
+
+图片和视频生成是另一个高频应用场景。随着豆包生图、Google Imagen 等模型的进化,以及可灵、Google Veo 3、OpenAI Sora 2 等视频生成技术的突破,多模态内容生成的质量已达到实用水平。
+
+本案例使用豆包插件实现图片和视频生成。配置步骤如下:
+
+1. 在工作流中添加豆包生图/生视频插件
+2. 配置参数(如图片比例1:1,模型选择 doubao seedream)
+3. 将生成的 file 文件输出
+
+生图配置和效果如图5.28和图5.29所示。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-13.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-13.png" alt="图片描述" width="90%"/>
   <p>图 5.28 生图设置</p>
   <p>图 5.28 生图设置</p>
 </div>
 </div>
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-05.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-05.png" alt="图片描述" width="90%"/>
   <p>图 5.29 生图助手</p>
   <p>图 5.29 生图助手</p>
 </div>
 </div>
 
 
+视频生成的效果如图5.30所示。
+
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-06.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-06.png" alt="图片描述" width="90%"/>
   <p>图 5.30 视频助手</p>
   <p>图 5.30 视频助手</p>
 </div>
 </div>
-接着我们来看在dify中关于数据的处理,特别是如何连接数据库来实现数据查询和数据分析。首先我们应该先安装我们的数据查询工具的插件,我使用的是dify中使用量最多的rookie-text2data这个插件,其实数据查询最关键的在于你如何给大模型一个清晰的表结构和字段名称,让他能够生成准确的sql查询语句,最简单的就是直接将数据表的ddl数据给大模型让他自己判断,或者将数据库的表名,字段名写成一一对应的关系这样子大模型更好理解。当然最基础的你需要配置一下数据库的信息,地址IP,数据库名称,数据库端口、账号、密码等等。这些我就不一一介绍了,你只需要按照要求将正确的信息填写就可以了。最后查询完整了的数据也并不是可以直接使用的。我们还要把查询结果交到我们的一个大模型节点进行整理成大家都看得懂的语言输出。
+
+<strong>数据查询与分析模块</strong>
+
+数据处理是智能体的重要能力之一。本模块演示如何在 Dify 中连接数据库,实现数据查询和可视化分析。
+
+首先安装数据查询工具插件,本案例使用 `rookie-text2data` 插件。数据查询的关键在于为大模型提供清晰的表结构和字段信息,使其能够生成准确的 SQL 查询语句。常见做法包括:
+
+- 直接提供数据表的 DDL 语句
+- 提供表名和字段名的对应关系说明
+
+配置数据库连接信息(IP地址、数据库名称、端口、账号、密码等),如图5.31所示。查询结果需要通过大模型节点进行整理,转换为易于理解的自然语言输出。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-22.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-22.png" alt="图片描述" width="90%"/>
   <p>图 5.31 数据库配置</p>
   <p>图 5.31 数据库配置</p>
 </div>
 </div>
 
 
@@ -551,12 +583,13 @@ OK,简单了解完dify的大体架构,现在我们就从头开始讲如何
  数据概览:简要说明数据内容即可
  数据概览:简要说明数据内容即可
 ```
 ```
 
 
-效果展示:
+效果展示如图5.32所示
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-07.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-07.png" alt="图片描述" width="90%"/>
   <p>图 5.32 数据查询助手</p>
   <p>图 5.32 数据查询助手</p>
 </div>
 </div>
+
 提示词设置:
 提示词设置:
 
 
 ```
 ```
@@ -588,48 +621,63 @@ OK,简单了解完dify的大体架构,现在我们就从头开始讲如何
 ```
 ```
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-08.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-08.png" alt="图片描述" width="90%"/>
   <p>图 5.33 数据分析助手</p>
   <p>图 5.33 数据分析助手</p>
 </div>
 </div>
 
 
 数据分析助手这一块唯一的不同就是我们增加了数据可视化的工具,也就是“generate_pie_chart" | "generate_column_chart" | "generate_line_chart"这几个生成bi图表的工具插件,这个在前面相信大家都按照要求安装了就可以直接添加启动使用,并像上面的提示词一样增加对应的描述即可。
 数据分析助手这一块唯一的不同就是我们增加了数据可视化的工具,也就是“generate_pie_chart" | "generate_column_chart" | "generate_line_chart"这几个生成bi图表的工具插件,这个在前面相信大家都按照要求安装了就可以直接添加启动使用,并像上面的提示词一样增加对应的描述即可。
 
 
-最后来到我们的mcp尝鲜部分,使用mcp做为智能体的工具来实现相关的查询和信息。在前面我们已经告诉我们如何启动我们的mcp,现在我们只需要将我们的mcp设置到智能体中即可。首先我们要选择支持调用mcp的智能体策略,然后选择react模式,这样子我们就可以将我们在魔搭社区配置的mcp服务配置到我们的智能体中调用了,这里注意两个点一把复制过来的mcp-server这个头删掉,二选择sse模式的mcp。然后像下面这样子配置到对应的地方,并且填写提示词即可完成。效果如下
+<strong>MCP 工具集成</strong>
+
+最后是 MCP 工具的集成应用。在前面我们已经完成了 MCP 的配置,现在将其集成到智能体中。配置步骤如下:
+
+1. 选择支持 MCP 调用的智能体策略
+2. 选择 ReAct 模式
+3. 配置 MCP 服务(注意删除 `mcp-server` 前缀,选择 SSE 模式)
+4. 填写相应的提示词
+
+配置界面如图5.34所示。
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-23.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-23.png" alt="图片描述" width="90%"/>
   <p>图 5.34 智能体的mcp配置</p>
   <p>图 5.34 智能体的mcp配置</p>
 </div>
 </div>
 
 
+高德助手、饮食助手和新闻助手的效果分别如图5.35、图5.36和图5.37所示。
+
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-09.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-09.png" alt="图片描述" width="90%"/>
   <p>图 5.35 高德助手</p>
   <p>图 5.35 高德助手</p>
 </div>
 </div>
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-10.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-10.png" alt="图片描述" width="90%"/>
   <p>图 5.36 饮食助手</p>
   <p>图 5.36 饮食助手</p>
 </div>
 </div>
 
 
 <div align="center">
 <div align="center">
-  <img src="https://github.com/HeteroCat/hello-agents/blob/main/docs/images/5-figures/dify-11.png" alt="图片描述" width="90%"/>
+  <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/dify-11.png" alt="图片描述" width="90%"/>
   <p>图 5.37 新闻助手</p>
   <p>图 5.37 新闻助手</p>
 </div>
 </div>
-到这里你就已经完成了一个全面的私人专业的超级智能体,他能帮你规划你的衣食住行生活的各个方面,你都能找他帮忙。今天像换件新衣服了,来豆包帮我生成一个,今天想出门了来高德帮我规划一下,今天不知道吃什么了来给我推荐一个,想看看学习数据怎么样来分析分析我的学习成绩情况等等等等。你可以让他帮你完成各方各面的工作任务,只有你想不到没有他完不成的。最后期待看到大家的自己搭建的私人超级智能体助手是什么样的。
+
+至此,我们完成了一个功能全面的超级智能体个人助手。该助手涵盖了生活的多个方面:需要新衣服时,可以让豆包生成设计;出门前,可以让高德助手规划路线;不知道吃什么时,可以获取饮食推荐;想了解学习情况时,可以进行数据分析。这个智能体能够处理各类工作和生活任务,期待看到大家搭建出更多有创意的私人智能体助手。
 
 
 ### 5.3.3 Dify 的优势与局限性分析
 ### 5.3.3 Dify 的优势与局限性分析
 
 
-Dify 作为一款领先的 AI 应用开发平台,在多个方面展现出显著优势但也并不完全完美:​
+Dify 作为一款领先的 AI 应用开发平台,在多个方面展现出显著优势:​
 
 
 1. 核心优势​
 1. 核心优势​
-- 全栈式开发体验:Dify 将 RAG 管道、AI 工作流、模型管理等功能整合到一个平台中,提供一站式的开发体验​。
+
+- 全栈式开发体验:Dify 将 RAG 管道、AI 工作流、模型管理等功能整合到一个平台中,提供一站式的开发体验​
 - 低代码与高扩展性的平衡:Dify 在低代码开发的便利性和专业开发的灵活性之间取得了良好平衡​
 - 低代码与高扩展性的平衡:Dify 在低代码开发的便利性和专业开发的灵活性之间取得了良好平衡​
 - 企业级安全与合规:Dify 提供 AES-256 加密、RBAC 权限控制和审计日志等功能,满足严格的安全和合规要求​
 - 企业级安全与合规:Dify 提供 AES-256 加密、RBAC 权限控制和审计日志等功能,满足严格的安全和合规要求​
 - 丰富的工具集成能力:Dify 支持 9000 + 工具和 API 扩展,提供了广泛的功能扩展性​
 - 丰富的工具集成能力:Dify 支持 9000 + 工具和 API 扩展,提供了广泛的功能扩展性​
 - 活跃的开源社区:Dify 拥有活跃的开源社区,提供了丰富的学习资源和支持​
 - 活跃的开源社区:Dify 拥有活跃的开源社区,提供了丰富的学习资源和支持​
-​
+
+
+
 2. 主要局限​
 2. 主要局限​
 - 学习曲线较陡:对于完全没有技术背景的用户,仍然存在一定的学习曲线​
 - 学习曲线较陡:对于完全没有技术背景的用户,仍然存在一定的学习曲线​
@@ -642,27 +690,11 @@ Dify 作为一款领先的 AI 应用开发平台,在多个方面展现出显
 - API 兼容性问题:Dify 的 API 格式不兼容 OpenAI,可能限制与某些第三方系统的集成​
 - API 兼容性问题:Dify 的 API 格式不兼容 OpenAI,可能限制与某些第三方系统的集成​
 
 
-## 5.4 平台三:FastGPT
-
-### 5.4.1 FastGPT 的知识库与工作流引擎
-
-### 5.4.2 构建一个企业级私有知识库问答机器人
-
-#### 5.4.2.1 步骤一:数据处理与知识库构建
-
-#### 5.4.2.2 步骤二:设计高级问答流程(工作流)
-
-#### 5.4.2.3 步骤三:API 对接与多渠道发布
-
-### 5.4.3 FastGPT 的优势与局限性分析
-
-
-
-## 5.5 平台四:n8n
+## 5.4 平台三:n8n
 
 
 正如我们之前所介绍的,n8n 的核心身份是一个通用的工作流自动化平台,而非一个纯粹的 LLM 应用构建工具。理解这一点,是掌握 n8n 的关键。在使用 n8n 构建智能应用时,我们实际上是在设计一个更宏大的自动化流程,而大语言模型只是这个流程中的一个(或多个)强大的“处理节点”。
 正如我们之前所介绍的,n8n 的核心身份是一个通用的工作流自动化平台,而非一个纯粹的 LLM 应用构建工具。理解这一点,是掌握 n8n 的关键。在使用 n8n 构建智能应用时,我们实际上是在设计一个更宏大的自动化流程,而大语言模型只是这个流程中的一个(或多个)强大的“处理节点”。
 
 
-### 5.5.1 n8n 的节点与工作流
+### 5.4.1 n8n 的节点与工作流
 
 
 n8n 的世界由两个最基本的概念构成:<strong>节点 (Node)</strong> 和 <strong>工作流 (Workflow)</strong>。
 n8n 的世界由两个最基本的概念构成:<strong>节点 (Node)</strong> 和 <strong>工作流 (Workflow)</strong>。
 
 
@@ -674,15 +706,15 @@ n8n 的世界由两个最基本的概念构成:<strong>节点 (Node)</strong>
 
 
 n8n 的真正威力在于其强大的“连接”能力。它可以将原本孤立的应用程序和服务(如企业内部的 CRM、外部的社交媒体平台、你的数据库以及大语言模型)串联起来,实现过去需要复杂编码才能完成的端到端业务流程自动化。在接下来的实战中,我们将亲手体验如何利用这套节点和工作流系统,构建一个集成了 AI 能力的自动化应用。
 n8n 的真正威力在于其强大的“连接”能力。它可以将原本孤立的应用程序和服务(如企业内部的 CRM、外部的社交媒体平台、你的数据库以及大语言模型)串联起来,实现过去需要复杂编码才能完成的端到端业务流程自动化。在接下来的实战中,我们将亲手体验如何利用这套节点和工作流系统,构建一个集成了 AI 能力的自动化应用。
 
 
-### 5.5.2 搭建智能邮件助手
+### 5.4.2 搭建智能邮件助手
 
 
 关于n8n的环境配置和最基础的使用,在项目的`Additional-Chapter`文件夹下制作了文档,这里就不过多介绍。在上一节中,我们了解了 n8n 的基本概念。这个案例将清晰地展示现代 AI Agent 与传统自动化工作流的核心区别。传统流程是线性的,而我们即将构建的 Agent 将能够接收用户邮件,通过一个核心的 <strong>AI Agent 节点</strong> 进行“思考”,自主理解用户意图,并在多个可用“工具”中进行决策和选择,最终自动生成并发送高度相关的回复。
 关于n8n的环境配置和最基础的使用,在项目的`Additional-Chapter`文件夹下制作了文档,这里就不过多介绍。在上一节中,我们了解了 n8n 的基本概念。这个案例将清晰地展示现代 AI Agent 与传统自动化工作流的核心区别。传统流程是线性的,而我们即将构建的 Agent 将能够接收用户邮件,通过一个核心的 <strong>AI Agent 节点</strong> 进行“思考”,自主理解用户意图,并在多个可用“工具”中进行决策和选择,最终自动生成并发送高度相关的回复。
 
 
-整个过程模拟了一个更高级的决策逻辑:`接收 -> AI Agent (思考 -> 决策 -> 工具调用) -> 回复`。
+整个过程模拟了一个更高级的决策逻辑:`接收 -> AI Agent (思考 -> 决策 -> 工具调用) -> 回复`,如图5.38所示
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-01.png" alt="图片描述" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-01.png" alt="图片描述" width="90%"/>
-  <p>图 5.X 一体化智能邮件 Agent 架构示意图</p>
+  <p>图 5.38 一体化智能邮件 Agent 架构示意图</p>
 </div>
 </div>
 
 
 与将工具拆分为多个子工作流的传统方法不同,n8n 的 `AI Agent` 节点允许我们将组件,例如大语言模型(LLM)、记忆(Memory)、工具(Tools)都整合在一个统一的界面中,极大地简化了构建过程。
 与将工具拆分为多个子工作流的传统方法不同,n8n 的 `AI Agent` 节点允许我们将组件,例如大语言模型(LLM)、记忆(Memory)、工具(Tools)都整合在一个统一的界面中,极大地简化了构建过程。
@@ -692,7 +724,7 @@ n8n 的真正威力在于其强大的“连接”能力。它可以将原本孤
 1. <strong>准备 Agent 的“记忆”</strong>:创建一个独立的流程,为 Agent 加载私有知识库。
 1. <strong>准备 Agent 的“记忆”</strong>:创建一个独立的流程,为 Agent 加载私有知识库。
 2. <strong>构建 Agent 主体</strong>:创建接收邮件、思考并回复的主工作流。
 2. <strong>构建 Agent 主体</strong>:创建接收邮件、思考并回复的主工作流。
 
 
-### 5.5.3 构建 Agent 的私有知识库
+### 5.4.3 构建 Agent 的私有知识库
 
 
 为了让 Agent 能够回答关于特定领域(比如您的个人信息或项目文档)的问题,我们需要先为它准备一个“外部大脑”,一个向量知识库。
 为了让 Agent 能够回答关于特定领域(比如您的个人信息或项目文档)的问题,我们需要先为它准备一个“外部大脑”,一个向量知识库。
 
 
@@ -707,7 +739,7 @@ n8n 的真正威力在于其强大的“连接”能力。它可以将原本孤
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-02.png" alt="Code 节点中填写了知识库 JSON 文本的截图" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-02.png" alt="Code 节点中填写了知识库 JSON 文本的截图" width="90%"/>
-  <p>图 5.X 在 Code 节点中定义知识源</p>
+  <p>图 5.39 在 Code 节点中定义知识源</p>
 </div>
 </div>
 
 
 ```javascript
 ```javascript
@@ -736,12 +768,12 @@ return [
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-03.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-03.png" alt="" width="90%"/>
-  <p>图 5.X 对 Code 中数据进行向量化</p>
+  <p>图 5.40 对 Code 中数据进行向量化</p>
 </div>
 </div>
 
 
 <strong>(3) 存入向量存储</strong>
 <strong>(3) 存入向量存储</strong>
 
 
-最后,我们将向量化的知识存入内存数据库中。
+最后,我们将向量化的知识存入内存数据库中,如图5.41所示
 
 
 - <strong>节点</strong>:`Simple Vector Store`
 - <strong>节点</strong>:`Simple Vector Store`
 - <strong>配置</strong>:
 - <strong>配置</strong>:
@@ -750,41 +782,41 @@ return [
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-04.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-04.png" alt="" width="90%"/>
-  <p>图 5.X 对 Code 中数据存入向量存储</p>
+  <p>图 5.41 对 Code 中数据存入向量存储</p>
 </div>
 </div>
 
 
-完成配置后,<strong>手动执行一次</strong>这个流程。成功后,您的私有知识就加载到 n8n 的内存中了。
+完成配置后,<strong>手动执行一次</strong>这个流程。成功后,您的私有知识就加载到 n8n 的内存中了,如图5.42所示
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-05.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-05.png" alt="" width="90%"/>
-  <p>图 5.X 完整的知识库加载工作流</p>
+  <p>图 5.42 完整的知识库加载工作流</p>
 </div>
 </div>
 
 
-### 5.5.4 创建 Agent 主工作流
+### 5.4.4 创建 Agent 主工作流
 
 
 有了工具,我们现在开始构建 Agent 的主要流程。它将负责接收邮件、进行思考和决策,并在合适的时机调用我们刚刚创建的工具,最终执行邮件的回复。
 有了工具,我们现在开始构建 Agent 的主要流程。它将负责接收邮件、进行思考和决策,并在合适的时机调用我们刚刚创建的工具,最终执行邮件的回复。
 
 
 (1)配置 Gmail 触发器
 (1)配置 Gmail 触发器
 
 
-新建一个工作流,命名为 `Agent: Customer Support`。使用 `Gmail` 节点作为触发器,将其 <strong>Event</strong> 设置为 `Message Received`,并配置好你的邮箱账号。这样,每当有新邮件进入收件箱时,该工作流就会被自动触发。
+新建一个工作流,命名为 `Agent: Customer Support`。使用 `Gmail` 节点作为触发器,将其 <strong>Event</strong> 设置为 `Message Received`,并配置好你的邮箱账号。这样,每当有新邮件进入收件箱时,该工作流就会被自动触发,如图5.43所示
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-06.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-06.png" alt="" width="90%"/>
-  <p>图 5.X 新建Gmail节点图</p>
+  <p>图 5.43 新建Gmail节点图</p>
 </div>
 </div>
 
 
-配置过程可参考[n8n官方文档](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal#enable-apis)。Gmail的api在这里[配置](https://console.cloud.google.com/apis/library/gmail.googleapis.com?project=apt-entropy-471905-b9),需要创建凭证,选择Web 应用类型,最后即得到所需的客户端ID和客户端密钥。并且需要在已获授权的重定向 URI 将n8n刚给的OAuth Redirect URL给添加上。同时,还需要在[目标对象](https://console.cloud.google.com/auth/audience?project=apt-entropy-471905-b9)的Add users加上自己的邮箱地址。最终配置完成的页面如图5.X所示。
+配置过程可参考[n8n官方文档](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal#enable-apis)。Gmail的api在这里[配置](https://console.cloud.google.com/apis/library/gmail.googleapis.com?project=apt-entropy-471905-b9),需要创建凭证,选择Web 应用类型,最后即得到所需的客户端ID和客户端密钥。并且需要在已获授权的重定向 URI 将n8n刚给的OAuth Redirect URL给添加上。同时,还需要在[目标对象](https://console.cloud.google.com/auth/audience?project=apt-entropy-471905-b9)的Add users加上自己的邮箱地址。最终配置完成的页面如图5.44所示。
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-07.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-07.png" alt="" width="90%"/>
-  <p>图 5.X Gmail账号加载成功图</p>
+  <p>图 5.44 Gmail账号加载成功图</p>
 </div>
 </div>
 
 
-现在我们可以点击`Fetch Test Event`获取邮件了!
+现在我们可以点击`Fetch Test Event`获取邮件了,如图5.45所示
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-08.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-08.png" alt="" width="90%"/>
-  <p>图 5.X 获取实时邮件图</p>
+  <p>图 5.45 获取实时邮件图</p>
 </div>
 </div>
 
 
 (2)配置 AI Agent 节点
 (2)配置 AI Agent 节点
@@ -799,16 +831,16 @@ return [
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-09.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-09.png" alt="" width="90%"/>
-  <p>图 5.X AI Agent节点设置图</p>
+  <p>图 5.46 AI Agent节点设置图</p>
 </div>
 </div>
 
 
 这是 Agent “思考”的第一步。添加一个 `Gemini` 节点(或其他 LLM 节点),模式设置为 `Chat`。我们的目标是让它分析邮件内容,判断用户意图。Prompt 的设计至关重要,一个清晰的指令能让 LLM 更准确地完成任务。我们将邮件正文和主题(`{{ $json.snippet }}{{ $json.Subject }}`)作为变量传入 Prompt 中,没有API可以到[Google AI Studio](https://aistudio.google.com/prompts/new_chat)点击Get API key创建一个可用的。
 这是 Agent “思考”的第一步。添加一个 `Gemini` 节点(或其他 LLM 节点),模式设置为 `Chat`。我们的目标是让它分析邮件内容,判断用户意图。Prompt 的设计至关重要,一个清晰的指令能让 LLM 更准确地完成任务。我们将邮件正文和主题(`{{ $json.snippet }}{{ $json.Subject }}`)作为变量传入 Prompt 中,没有API可以到[Google AI Studio](https://aistudio.google.com/prompts/new_chat)点击Get API key创建一个可用的。
 
 
-其中,对于AI Agent节点,我们需要填的主要是`User Message`和`System Message`部分。
+其中,对于AI Agent节点,我们需要填的主要是`User Message`和`System Message`部分,如图5.47所示
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-10.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-10.png" alt="" width="90%"/>
-  <p>图 5.X AI Agent 节点详解图</p>
+  <p>图 5.47 AI Agent 节点详解图</p>
 </div>
 </div>
 
 
 在这里给出我们案例所使用的Prompt:
 在这里给出我们案例所使用的Prompt:
@@ -872,11 +904,11 @@ return [
 - <strong>Memory Key</strong>: 必须填写与第一部分<strong>完全相同</strong>的 Key,即 `my_private_knowledge`。
 - <strong>Memory Key</strong>: 必须填写与第一部分<strong>完全相同</strong>的 Key,即 `my_private_knowledge`。
 - <strong>Embeddings</strong>: 必须使用与第一部分<strong>完全相同</strong>的 `Embeddings Google Gemini` 模型。
 - <strong>Embeddings</strong>: 必须使用与第一部分<strong>完全相同</strong>的 `Embeddings Google Gemini` 模型。
 
 
-只有 `Memory Key` 和 `Embeddings` 模型完全一致,Agent 才能用正确的“钥匙”和“语言”来访问知识库。
+只有 `Memory Key` 和 `Embeddings` 模型完全一致,Agent 才能用正确的“钥匙”和“语言”来访问知识库,如图5.48所示
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-11.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-11.png" alt="" width="90%"/>
-  <p>图 5.X Simple Vector Store工具配置</p>
+  <p>图 5.48 Simple Vector Store工具配置</p>
 </div>
 </div>
 
 
 Description参数即AI Agent调用该工具时,对该工具的描述定义,在这里也给出对应的Prompt:
 Description参数即AI Agent调用该工具时,对该工具的描述定义,在这里也给出对应的Prompt:
@@ -891,7 +923,7 @@ Description参数即AI Agent调用该工具时,对该工具的描述定义,
 
 
 (4) 发送最终回复
 (4) 发送最终回复
 
 
-最后一步是执行。将 `AI Agent` 节点的输出连接到一个 `Gmail` 节点,<strong>Operation</strong> 设为 `Send`。使用 n8n 表达式,将收件人、主题和正文分别关联到 `AI Agent` 输出的 JSON 数据中的相应字段,即可实现邮件的自动回复。
+最后一步是执行。将 `AI Agent` 节点的输出连接到一个 `Gmail` 节点,<strong>Operation</strong> 设为 `Send`。使用 n8n 表达式,将收件人、主题和正文分别关联到 `AI Agent` 输出的 JSON 数据中的相应字段,即可实现邮件的自动回复,如图5.49所示
 
 
 - <strong>To</strong>: `{{ $('Gmail').item.json.From }}` (或其他触发器中的发件人字段)
 - <strong>To</strong>: `{{ $('Gmail').item.json.From }}` (或其他触发器中的发件人字段)
 - <strong>Subject</strong>: `Re:  {{ $('Gmail').item.json.Subject }}`
 - <strong>Subject</strong>: `Re:  {{ $('Gmail').item.json.Subject }}`
@@ -899,24 +931,24 @@ Description参数即AI Agent调用该工具时,对该工具的描述定义,
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-12.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-12.png" alt="" width="90%"/>
-  <p>图 5.X 最终回复工具图示</p>
+  <p>图 5.49 最终回复工具图示</p>
 </div>
 </div>
 
 
-并且发送成功的同时,也能在个人邮箱收到真实的返回邮件信息,如图5.X所示。
+并且发送成功的同时,也能在个人邮箱收到真实的返回邮件信息,如图5.50所示。
 
 
 <div align="center">
 <div align="center">
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-13.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-13.png" alt="" width="90%"/>
-  <p>图 5.X 个人邮箱返回邮件格式</p>
+  <p>图 5.50 个人邮箱返回邮件格式</p>
 </div>
 </div>
 
 
 至此,一个基于 `AI Agent` 节点的一体化智能客服就构建完成了,你可以发送一封测试邮件来检验它的工作成果。这个架构的扩展性极强。未来,您可以直接向 `AI Agent` 节点添加更多的工具(如日历、数据库、CRM 等),只需在 Prompt 中教会 Agent 如何使用它们,就能不断赋予您的 Agent 更强大的能力。
 至此,一个基于 `AI Agent` 节点的一体化智能客服就构建完成了,你可以发送一封测试邮件来检验它的工作成果。这个架构的扩展性极强。未来,您可以直接向 `AI Agent` 节点添加更多的工具(如日历、数据库、CRM 等),只需在 Prompt 中教会 Agent 如何使用它们,就能不断赋予您的 Agent 更强大的能力。
 
 
-### 5.5.3 n8n 的优势与局限性分析
+### 5.4.5 n8n 的优势与局限性分析
 
 
-通过前面从零到一构建智能邮件助手的实践,我们已经对 n8n 的工作模式有了直观的感受。作为一个强大的低代码自动化平台,n8n 在赋能 Agent 应用开发方面表现出色,但它也并非万能。如表5.X所示,我们将客观地分析其优势与潜在的局限性。
+通过前面从零到一构建智能邮件助手的实践,我们已经对 n8n 的工作模式有了直观的感受。作为一个强大的低代码自动化平台,n8n 在赋能 Agent 应用开发方面表现出色,但它也并非万能。如表5.1所示,我们将客观地分析其优势与潜在的局限性。
 
 
 <div align="center">
 <div align="center">
-  <p>表 5.X n8n 平台的优势与局限性总结</p>
+  <p>表 5.1 n8n 平台的优势与局限性总结</p>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-14.png" alt="" width="90%"/>
   <img src="https://raw.githubusercontent.com/datawhalechina/Hello-Agents/main/docs/images/5-figures/n8n-14.png" alt="" width="90%"/>
 </div>
 </div>
 
 
@@ -936,7 +968,7 @@ Description参数即AI Agent调用该工具时,对该工具的描述定义,
 
 
 最后是关于<strong>性能</strong>,n8n 完全能满足绝大多数企业自动化和中低频次的 Agent 任务。但对于需要处理超高并发请求的场景,其节点调度机制可能会带来一定的性能开销,相比于纯代码实现的服务可能稍逊一筹。
 最后是关于<strong>性能</strong>,n8n 完全能满足绝大多数企业自动化和中低频次的 Agent 任务。但对于需要处理超高并发请求的场景,其节点调度机制可能会带来一定的性能开销,相比于纯代码实现的服务可能稍逊一筹。
 
 
-## 5.6 本章小结
+## 5.5 本章小结
 
 
 ## 参考文献
 ## 参考文献
 [1]
 [1]