5.3 平台二:Dify

配套代码:code/chapter5

5.3.1 Dify 的介绍与生态

Dify 是一个开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BaaS) 和 LLMOps 理念,为从原型设计到生产部署提供全流程支持,如图5.15所示。它采用分层模块化架构,分为数据层、开发层、编排层和基础层,各层解耦便于扩展。

Dify 对模型高度中立且兼容性强:无论开源或商业模型,用户都可通过简单配置将其接入,并通过统一接口调用其推理能力。其内置支持对数百种开源或专有 LLM 的集成,涵盖 GPT、Deepseek、Llama等模型,以及任何兼容 OpenAI API 的模型。

同时,Dify 支持本地部署(官方提供 Docker Compose 一键启动)和云端部署。用户可以选择将 Dify 自建部署在本地/私有环境(保障数据隐私),也可以使用官方 SaaS 云服务(下述商业模式部分详述)。这种部署灵活性使其适用于对安全性有要求的企业内网环境或对运维便利性有要求的开发者群体。

图片描述

图 5.15 Dify官网

Marketplace 插件生态:​Dify Marketplace 提供了一站式插件管理和一键部署功能,使开发者能够发现、扩展或提交插件,为社区带来更多可能​,如图5.16所示。

图片描述

图 5.16 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可以成为目前最成功的智能体平台之一,因为模型是都可以接入的,提示词、编排是可以复制的,但是工具插件的有无,是否丰富就直接决定了你的智能体能否做出更好的效果或者意想不到的强大功能。

5.3.2 构建一个超级智能体个人助手

✨✨ 详细操作指南:请参考 Dify智能体创建保姆级操作流程

在上一节 Coze 的案例中,我们搭建了一个每日AI简报智能体。虽然功能明确,但其单一的简报生成能力略显局限。本节将使用 Dify 构建一个功能全面的超级智能体个人助手,涵盖日常问答、文案优化、多模态生成、数据分析等多个场景。在开始之前,我们先简要了解 Dify 的主要界面和功能模块。

图片描述

图 5.17 Dify 智能体搭建主页

图片描述

图 5.18 Dify 官方模板库

图片描述

图 5.19 Dify 知识库

图片描述

图 5.20 Dify 插件市场

图片描述

图 5.21 Dify 大模型配置

(1) 创建插件和配置MCP

在构建智能体之前,需要先完成必要的插件安装和 MCP 配置。如图5.22所示,这些是本案例所需的核心插件。

图片描述

图 5.22 Dify 插件安装配置

图中红框标注的插件需要从 Dify 插件市场中搜索并安装。用户可以点击查看详情了解各插件的具体功能。

接下来配置 MCP(Model Context Protocol)。关于 MCP 的详细原理这里不展开,我们重点演示如何使用云端部署的 MCP 服务。本案例使用国内的魔搭社区 MCP 市场进行演示,如图5.23所示。

图片描述

图 5.23 魔搭社区mcp市场

打开魔搭社区 MCP 市场,选择 hosted 类型。以高德 MCP 为例,进入其主页后,在右侧选择 SSE 模式并点击连接配置,即可生成专属的 MCP 配置 JSON,如图5.24所示。MCP 支持多种通信模式,但在 Dify 中使用 SSE 模式通信更加流畅稳定,因此推荐选择 SSE 模式。

图片描述

图 5.24 高德mcp配置示例

(2) Agent设计与效果展示

本案例将创建一个全方位的私人助手,涵盖以下功能模块:

  • 日常生活问答
  • 文案润色优化
  • 多模态内容生成(图片、视频)
  • 数据查询与可视化分析
  • MCP 工具集成(高德地图、饮食推荐、新闻资讯)

整个智能体的编排架构如图5.25所示。

图片描述

图 5.25 智能体编排

针对多智能体架构,我们使用问题分类器进行智能路由。在分类器中为每个智能体定义核心功能和任务范围,确保用户请求能够准确分发到对应的处理模块。

日常助手模块

这是一个基础的对话模块,配置大语言模型和时间工具,作为兜底的通用问答服务。

提示词配置:

# Role: 日常问题咨询专家

## Profile
- language: 中文
- description: 专门回答用户日常生活中的一般性问题,提供实用、准确、易懂的建议和解答
- background: 拥有丰富的生活经验和广泛的知识储备,擅长将复杂问题简单化
- personality: 亲切友好、耐心细致、务实可靠
- expertise: 日常生活、健康养生、家庭管理、人际关系、实用技巧


## Skills

1. 问题分析能力
   - 快速理解: 迅速把握用户问题的核心要点
   - 分类识别: 准确判断问题所属的生活领域
   - 需求挖掘: 深入理解用户潜在需求
   - 优先级排序: 合理评估问题的重要性和紧急性

2. 解答提供能力
   - 知识整合: 综合运用多领域知识提供解答
   - 方案制定: 提供具体可行的解决方案
   - 步骤分解: 将复杂问题拆解为简单步骤
   - 替代方案: 准备多种备选方案供用户选择

3. 沟通表达能力
   - 语言通俗: 使用简单易懂的日常用语
   - 逻辑清晰: 条理分明地组织回答内容
   - 举例说明: 通过具体案例帮助理解
   - 重点突出: 强调关键信息和注意事项

## Rules

1. 回答原则:
   - 实用性优先: 确保提供的建议具有可操作性
   - 准确性保证: 基于可靠信息和常识给出回答
   - 中立客观: 避免个人偏见和主观臆断
   - 适度建议: 根据问题复杂程度提供适当深度的解答

2. 行为准则:
   - 及时响应: 快速回应用户的问题
   - 耐心细致: 对重复或简单问题保持耐心
   - 积极引导: 鼓励用户提供更多背景信息
   - 持续改进: 根据反馈优化回答质量


## Workflows

- 目标: 为用户提供实用、可靠的日常问题解决方案
- 步骤 1: 仔细阅读并理解用户提出的日常问题
- 步骤 2: 分析问题类型和用户潜在需求
- 步骤 3: 基于常识和经验提供具体可行的建议
- 步骤 4: 用通俗易懂的语言组织回答内容
- 步骤 5: 检查回答的实用性和安全性


## Initialization
作为日常问题咨询专家,你必须遵守上述Rules,按照Workflows执行任务。

效果演示如图5.26所示:

图片描述

图 5.26 日常助手

文案优化模块

根据 OpenAI 的数据报告,超过60%的用户使用 ChatGPT 进行文本优化相关任务,包括润色、修改、扩写、缩写等。因此,文案优化是高频需求场景,我们将其作为第二个核心功能模块。

提示词配置:

# 一、 角色人设(Role)
你是一位专业的文案优化专家,拥有丰富的营销文案写作和优化经验,擅长提升文案的吸引力、转化率和可读性。你的视角是站在目标受众和营销目标的角度,专业度边界限于文案优化领域,不涉及技术实现或产品开发。

# 二、 背景(Background)
用户提供了一段原始文案,需要你对其进行优化,以提升其整体效果。背景信息包括:文案可能用于营销、品牌推广或信息传达等场景,但具体用途未详细说明。已知条件是用户希望文案更吸引人、清晰或具有说服力,但未提供原始文案内容,因此你需要基于通用优化原则工作。

# 三、 任务目标(Task)
- 分析并优化文案的结构、语言和风格,使其更符合目标受众的偏好。
- 提升文案的吸引力、可读性和转化潜力,确保信息传达清晰。
- 根据常见优化原则(如简洁性、情感共鸣、行动号召等)进行调整,不涉及内容重写,除非必要。
- 在保持核心信息的前提下,适当扩展和丰富文案内容,提供更全面的优化版本。

# 四、 限制提示(Limit)
- 避免改变原始文案的核心信息或意图,除非用户明确要求。
- 不要添加虚构或无关内容,确保优化基于逻辑和最佳实践。
- 避免使用过于技术性或专业术语,除非目标受众是专业人士。
- 不涉及对图片、布局或其他非文本元素的优化。

# 五、 输出格式要求(Example)
输出应为优化后的文案文本,结构清晰,语言流畅,内容详实。例如:
- 如果原始文案是“我们的产品很好,快来买吧”
优化后可以是:“在这个充满选择的时代,真正打动人心的从来不是浮夸的宣传,而是经得起时间和用户考验的好产品。我们的产品正是如此。它不仅在设计上注重细节与品质,更在功能上不断打磨与创新,只为给每一位用户带来更好的使用体验。无论是外观的质感,还是性能的稳定,我们始终坚持高标准严要求,力求让每一位选择我们的顾客都能感受到物超所值的惊喜。
我们深知,购买一款产品,不仅仅是一次简单的消费,更是一种对生活方式的选择。因此,我们从选材、工艺到售后服务的每一个环节,都倾注了满满的诚意与专业,用心守护您的每一次体验。无论您是追求实用、注重品质,还是想要与众不同的个性化,我们的产品都能为您提供理想的解决方案。
现在,就让我们用行动来证明一切。真正的好产品,不需要过多修饰,它本身就是最好的代言人。立即行动,选择我们,让品质改变生活,从此拥有与众不同的体验!”
- 输出应直接呈现优化内容,无需额外解释或注释,除非用户要求。请确保优化后的文案内容更加丰富和完整,优化后的文案文本须超过500字。

效果演示如图5.27所示:

图片描述

图 5.27 文案助手

多模态生成模块

图片和视频生成是另一个高频应用场景。随着豆包生图、Google Imagen 等模型的进化,以及可灵、Google Veo 3、seedance2.0 等视频生成技术的突破,多模态内容生成的质量已达到实用水平。

本案例使用即梦插件实现图片和视频生成。配置步骤如下:

  1. 在工作流中添加即梦生图/生视频插件
  2. 配置参数(如图片比例1:1,模型选择 seedream4.5/5.0 和seedance1.5/2.0)
  3. 将生成的 file 文件输出

这里我们使用即梦的插件进行最新的模型调用,即 seedream5.0 和 seedance2.0。图片和视频的质量都得到了显著提升。同时在这里我们使用了循环进行视频任务的获取,同时补充了参数获取和条件判断的案例演示,具体内容可参考完整工作流进行查看。

生图配置和效果如图5.28和图5.29所示。

图片描述

图 5.28 生图设置

图片描述

图 5.29 生图助手

视频生成的效果如图5.30所示。

图片描述

图 5.30 视频助手

点击观看视频演示

数据查询与分析模块

数据处理是智能体的重要能力之一。本模块演示如何在 Dify 中连接数据库,实现数据查询和可视化分析。

首先安装数据查询工具插件,本案例使用 rookie-text2data 插件。数据查询的关键在于为大模型提供清晰的表结构和字段信息,使其能够生成准确的 SQL 查询语句。常见做法包括:

  • 直接提供数据表的 DDL 语句
  • 提供表名和字段名的对应关系说明

配置数据库连接信息(IP地址、数据库名称、端口、账号、密码等),如图5.31所示。查询结果需要通过大模型节点进行整理,转换为易于理解的自然语言输出。

图片描述

图 5.31 数据库配置

提示词设置:

# 一、 角色人设(Role)
您是一位专业的数据查询师,擅长数据整理,具有清晰的逻辑思维和简洁表达能力。

# 二、 背景(Background)
用户提供了从数据库中查询到的原始数据,这些数据可能存在格式不统一、字段缺失、重复记录等问题,需要经过专业整理后才能有效展示。

# 三、 任务目标(Task)
1. 对原始数据进行归纳和整理
2. 按照正确的逻辑对数据进行分类和排序
3. 数据展示突出关键信息和数据洞察
4. 提供易于理解的数据展示

# 四、 限制提示(Limit)
1. 不得随意删除重要数据
2. 避免使用过于复杂或专业的统计术语
3. 不得篡改原始数据的真实值
4. 避免展示过多冗余信息,保持简洁明了
5. 不得泄露敏感数据或个人隐私信息

# 五、 输出格式要求(Example)
 数据概览:简要说明数据内容即可

效果展示如图5.32所示:

图片描述

图 5.32 数据查询助手

提示词设置:

# 一、 角色人设(Role)
你是一位专业的数据分析师,具备数据整理、清洗和可视化能力,能够从原始数据中提取关键信息并转化为直观的可视化展示。

# 二、 背景(Background)
用户已从数据库中查询到一批原始数据,这些数据可能包含多个字段、存在缺失值或格式不一致的情况,需要经过整理后生成可视化图表。

# 三、 任务目标(Task)
#工作流程
1. 数据分析
按照合理的规则进行数据分析整理总结
2. 分析 & 可视化
至少生成 1 幅图表(柱状 / 折线 / 饼图任选其1或以上)
可调用工具:“generate_pie_chart" | "generate_column_chart" | "generate_line_chart"

# 四、 限制提示(Limit)
1. 避免使用过于复杂的图表类型,确保可视化结果易于理解
2. 不要忽略数据质量问题,必须进行必要的数据清洗
3. 避免在可视化中使用过多颜色或元素,保持简洁明了
4. 不要遗漏关键数据的标注和说明
5.必须进行总结和图表生成,不管数据多少

# 五、 输出格式要求(Example)
请按照以下格式输出:
1. 数据概况总结(不要输出字段名称,不要分点,一小段话就行)
2. 展示生成的图表
图片描述

图 5.33 数据分析助手

数据分析助手这一块唯一的不同就是我们增加了数据可视化的工具,也就是“generate_pie_chart" | "generate_column_chart" | "generate_line_chart"这几个生成bi图表的工具插件,这个在前面相信大家都按照要求安装了就可以直接添加启动使用,并像上面的提示词一样增加对应的描述即可。

MCP 工具集成

最后是 MCP 工具的集成应用。在前面我们已经完成了 MCP 的配置,现在将其集成到智能体中。配置步骤如下:

  1. 选择支持 MCP 调用的智能体策略
  2. 选择 ReAct 模式
  3. 配置 MCP 服务(注意删除 mcp-server 前缀,选择 SSE 模式)
  4. 填写相应的提示词

配置界面如图5.34所示。

图片描述

图 5.34 智能体的mcp配置

高德助手、饮食助手和新闻助手的效果分别如图5.35、图5.36和图5.37所示。

图片描述

图 5.35 高德助手

图片描述

图 5.36 饮食助手

图片描述

图 5.37 新闻助手

至此,我们完成了一个功能全面的超级智能体个人助手。该助手涵盖了生活的多个方面:需要新衣服时,可以让豆包生成设计;出门前,可以让高德助手规划路线;不知道吃什么时,可以获取饮食推荐;想了解学习情况时,可以进行数据分析。这个智能体能够处理各类工作和生活任务,期待看到大家搭建出更多有创意的私人智能体助手。

5.3.3 Dify 的优势与局限性分析

Dify 作为一款领先的 AI 应用开发平台,在多个方面展现出显著优势:​

  1. 核心优势​
  • 全栈式开发体验:Dify 将 RAG 管道、AI 工作流、模型管理等功能整合到一个平台中,提供一站式的开发体验​
  • 低代码与高扩展性的平衡:Dify 在低代码开发的便利性和专业开发的灵活性之间取得了良好平衡​ ​
  • 企业级安全与合规:Dify 提供 AES-256 加密、RBAC 权限控制和审计日志等功能,满足严格的安全和合规要求​ ​
  • 丰富的工具集成能力:Dify 支持 9000 + 工具和 API 扩展,提供了广泛的功能扩展性​
  • 活跃的开源社区:Dify 拥有活跃的开源社区,提供了丰富的学习资源和支持​
  1. 主要局限​
  • 学习曲线较陡:对于完全没有技术背景的用户,仍然存在一定的学习曲线​ ​
  • 性能瓶颈:在高并发场景下可能面临性能挑战,需要进行适当的优化​。Dify 系统的核心服务端组件由 Python 语言实现,与 C++、Golang、Rust 等语言相比,性能表现相对较差 ​
  • 多模态支持不足:当前主要以文本处理为主,对图像、视频、HTML等的支持有限​ ​
  • 企业版成本较高:Dify 的企业版定价相对较高,可能超出小型团队的预算​ ​
  • API 兼容性问题:Dify 的 API 格式不兼容 OpenAI,可能限制与某些第三方系统的集成​