一键部署 Dify + MCP Server,高效开发 AI 智能体应用

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 本文将着重介绍如何通过 SAE 快速搭建 Dify AI 研发平台,依托 Serverless 架构提供全托管、免运维的解决方案,高效开发 AI 智能体应用。

作者:黄刚(泽尘) |孙小涵(子照)|王霄霄(丛霄)


前言


全球 AI 开发者正在见证一场 “AI 智能体革命”。


从 2024 年 Dify.ai 发布开源框架 Dify 以来,到全球开发者基于其快速构建的智能客服、企业知识库、AI 营销助手等场景应用,GitHub 上已有超过 2.3 万个 AI 应用项目诞生。


如今,MCP 的协议也异军突起,大量基于 MCP 协议的 MCP Server 应用涌上市场,它解决了各个模块之间交互不统一的问题,让一切现有传统应用就像 USB 接口一样,随意在 AI 智能体上插拔使用。那如何快速的基于 MCP Server 构建出一个 AI 应用?我们大胆的猜测,Dify + MCP Server 将是一个完美的结合,因为 Dify 有强大的编排能力,再加上 MCP Server 标准的接口协议,在 Dify 平台上,只需要进行简单的拖拽就可以快速的构建一个生产级别的 AI 智能体应用。


本次我们选择了阿里云 Serverless 应用引擎(下面简称 SAE)来部署 Dify、MCP 应用,并且期望通过 Dify 快速编排 MCP Server 应用快速智能体,实现一套“免运维、全托管,生产级”的 AI 智能体解决方案。


在我们的方案里,将致力于解决以下问题:


  1. 低成本:面向算力收费,不额外收费其它费用,并且基于 SAE 自身提供的弹性能力,可以更从容的应对业务流量高峰。

  2. 高可用:通过多可用区部署,快弹等 SAE 自有的优势,帮助 Dify 从社区版应用快速升级为生产级别的应用。

  3. 全链路无侵入监控:基于 SAE 提供的免费无侵入监控方案,让业务低成本的全链路监控你的 AI 应用。

  4. 简单易用:1 分钟完成 Dify,MCP Server 的部署,5 分钟基于 Dify 编排 MCP 快速构建 AI 应用。

  5. 单租安全:可独立部署 Dify 应用到自己的 VPC 内,用户业务的数据不会流出 VPC,保证数据绝对安全。


本文将着重介绍如何通过 SAE 快速搭建 Dify AI 研发平台,依托 Serverless 架构提供全托管、免运维的解决方案,高效开发 AI 智能体应用。


(PS:SAE 还支持快速搭建 Manus AI、MCP Server 等 AI 场景应用,本文选取部署较为复杂的 Dify 应用来作为演示,有其他 AI 场景应用托管的需求可以联系 钉钉群:32874633)



在 SAE 上快速部署 Dify AI 研发平台


基于 saectl 模板一键部署


下面以实际例子,演示如何使用 saectl 工具,通过一组 YAML  模板在 SAE 上轻松部署 Dify。


前置准备


第一步:saectl 工具安装


参考:如何安装与配置saectl工具_Serverless 应用引擎(SAE)-阿里云帮助中心,完成 saectl 工具安装


第二步:前置资源准备


通过模版创建应用前,请确保您拥有以下资源(Dify 部署依赖):


  • 数据库
  • Redis 数据库
  • Postgre SQL 数据库
  • 向量数据库
  • 存储
  • NAS 文件存储
  • 网络
  • NAT 网关


saectl 模版部署


第一步:准备 SAE Dify 模板


下载 SAE Dify 模板仓库,仓库结构如下,包含所有 Dify 应用组件所需的 K8S 资源定义。


image.png


替换 YAML 模板中变量为您自己的资源,以 dify-credential 为例:


apiVersion: v1
data:
  DB_USERNAME: ${pg_database_username}  # PGSQL 数据库用户名
  DB_PASSWORD: ${pg_database_password}  # PGSQL 数据库密码
  PGVECTOR_USER: ${vector_database_username}  # PGVector数据库用户名
  PGVECTOR_PASSWORD: ${vector_database_password}  # PGVector 数据库密码
  REDIS_USERNAME: ${redis_database_username}  # Redis 数据库用户名
  REDIS_PASSWORD: ${redis_database_password}  # Redis 数据库密码
kind: Secret
metadata:
  name: dify-credentials
  namespace: dify
type: Opaque


第二步:通过 saectl 工具一键部署 Dify 至 SAE


YAML 文件变量替换完成后,执行 ./install.sh,脚本会自动部署并检查上述 K8S 资源,并打印 Dify 公网访问地址。


image.png


登录 SAE 控制台,可以看到已创建的 Dify 应用组件。


image.png


使用 Dify 服务


打开浏览器,在地址栏中输入上一步骤打印出的 ${EXTERNAL-IP}:${PORT},即可访问在 SAE 上一键部署的 Dify 服务。


image.png

image.png


基于 SAE 应用中心一键部署


SAE 应用中心为用户提供了 Dify 应用模板,您只需要在控制台填写表单,我们会为您自动创建并运行部署流水线,将 Dify 一键部署至 SAE。


前置准备


同上,需要准备 Dify 应用依赖的数据库、存储、网络资源:


  • 数据库
  • Redis 数据库
  • Postgre SQL 数据库
  • 向量数据库
  • 存储
  • NAS 文件存储
  • 网络
  • NAT 网关


SAE 应用中心部署


第一步:在 SAE 应用中心选择 Dify 社区版


image.png


第二步:填写 Dify 社区版部署的参数表单


image.png


第三步:提交表单,等待部署完成


image.png


使用 Dify 服务


同「基于 saectl 模版一键部署」


打开浏览器,在地址栏中输入控制台日志打印出的 ${EXTERNAL-IP}:${PORT},即可访问在 SAE 应用中心一键部署的 Dify 服务。


使用 Dify 编排 MCP 应用


第一步:  在 SAE 上部署 MCP Server


  • 基于 MCP 官方提供的 Python SDK 中的一个简单 SSE 协议的 MCP Server

https://github.com/modelcontextprotocol/python-sdk/blob/main/examples/servers/simple-tool/mcp_simple_tool/server.py


它实现了 SSE 远端协议的一个具备网页抓取工具的服务,其中 SseServerTransport 是 SDK 中封装了 SSE 的交互,请求路径 /sse 完成连接建立,请求路径 /messages 路径是客户端服务端消息推送。


if transport == "sse":
    from mcp.server.sse import SseServerTransport
    from starlette.applications import Starlette
    from starlette.routing import Mount, Route

    sse = SseServerTransport("/messages/")

    async def handle_sse(request):
        async with sse.connect_sse(
            request.scope, request.receive, request._send
        ) as streams:
            await app.run(
                streams[0], streams[1], app.create_initialization_options()
            )

        starlette_app = Starlette(
            debug=True,
            routes=[
                Route("/sse", endpoint=handle_sse),
                Mount("/messages/", app=sse.handle_post_message),
            ],
        )


# 使用 app.call_tool() 装饰器定义 call_tool 工具调用的方法
@app.call_tool()
async def fetch_tool(
    name: str, arguments: dict
) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
    if name != "fetch":
        raise ValueError(f"Unknown tool: {name}")
        if "url" not in arguments:
            raise ValueError("Missing required argument 'url'")
    return await fetch_website(arguments["url"])

# 使用 app.list_tools() 装饰器定义列出所有工具的方法
@app.list_tools()
async def list_tools() -> list[types.Tool]:
    return [
        types.Tool(
            name="fetch",
            description="Fetches a website and returns its content",
            inputSchema={
                "type": "object",
                "required": ["url"],
                "properties": {
                    "url": {
                        "type": "string",
                        "description": "URL to fetch",
                    }
                },
            },
        )
    ]


将上述 MCP Server 打包为镜像,部署到 SAE 上,可以直接用 saectl 一键部署,支持按照暴露 CLB 类型的 MCP Service 地址,SAE 平台内置了应用的监控、日志等,围绕应用提供了的全套运维体系,在 SAE 界面可以看到应用已经创建出来,并且处于 Running 状态,日志标准输出显示服务器运行中。


image.png


第二步:  在 SAE Dify 平台创建 Agent ,并使用 MCP 协议进行工具调用


  • 在 Dify 的插件中,选择 “Agent 策略”,选择官方的 “Dify Agent 部署” (注:Dify 暂时官方没有支持 MCP 协议,都是按照插件的形式由第三方开发者提供 )


image.png


创建一个工作流应用,添加 Agent 节点,并对 Agent 节点进行配置,选择 ReAct 的模式,并配置 MCP 工具方法。这是 Dify 内部封装了一层 MCP 服务的方法调用。


image.png


在 Dify 工具市场中安装 MCP 工具,然后回到工作流界面,在 MCP 服务配置这里填写 SAE MCP Server 绑定的 CLB 地址,作为访问地址。


image.png

image.png


{
    "mcp_server": {
        "url": "http://8.135.243.229:80/sse",
        "headers": {

        },
        "timeout": 5,
        "sse_read_timeout": 300
    }
}


第三步: 测试 Agent


点击运行, Dify 提供了调试功能,以可视化的形式看到 Agent 的思考运行过程:


image.png


第四步: 查看 SAE MCP Server 应用输出日志


可以看到 MCP 客户端和服务端交互了 List Tool 和 Call Tool 等方法。


image.png


总结:云上托管 Dify 的核心挑战与 SAE 解决方案


在企业级应用中,Dify 作为一款功能强大的 LLM 应用研发平台,其云上托管需要应对弹性伸缩、高可用性和快速迭代等核心挑战。阿里云 Serverless 应用引擎(SAE)凭借其原生 Serverless 架构和企业级服务能力,为这些问题提供了高效解决方案。


(如果您对于产品有更多建议或者对 Dify 云端托管有更多想法可以加入钉钉群(群号:32874633)与我们取得联系。)


CI/CD 与快速迭代:加速开发与交付效率


挑战:


Dify 用户需频繁迭代模型、优化工作流或修复问题。传统 CI/CD 流程复杂,且部署环境一致性难以保证,导致迭代周期长、风险高。


SAE 解决方案:


  1. 深度集成 CI/CD 工具链
  • 支持与主流 DevOps 工具(如 GitLab、GitHub、Jenkins、阿里云 CodePipeline)无缝对接,实现代码提交 → 构建 → 镜像推送 → 自动部署的全链路自动化。

  1. 一键部署与灰度发布
  • 通过 SAE 控制台或 API 实现一键部署,结合 金丝雀发布(Canary Release) 功能,将新版本逐步推广至 10%、50%、100% 流量,降低上线风险。

  1. 滚动更新与无损升级
  • 支持滚动部署策略,在更新过程中保持服务高可用,避免因版本切换导致的中断。


  1. 环境一致性与镜像管理
  • 通过镜像仓库(如阿里云 ACR)统一管理应用版本,确保开发、测试、生产环境配置一致,减少“环境差异”导致的故障。


弹性能力:适配动态资源需求


挑战:


Dify 平台需支持开发者高频次的应用测试及多场景部署,资源需求波动显著(如突发的模型推理任务或团队协作高峰期)。若资源固定分配,可能导致成本浪费或性能瓶颈。


SAE 解决方案:


  1. 自动弹性扩缩容
  • 基于负载的自动伸缩:通过 HPA(Horizontal Pod Autoscaler)根据 CPU、内存或自定义指标(如 API 调用频率)动态调整 Dify 实例数量,应对突发流量或密集计算任务。

  1. 冷启动优化
  • SAE 的镜像预热与层共享技术,将容器启动时间缩短至秒级,加速开发环境初始化或突发请求响应。

  1. 按需付费模式
  • Serverless 架构按实际资源使用计费,避免为闲置资源付费,降低企业级 Dify 部署的长期成本。


高可用:保障平台稳定运行与数据安全


挑战:


Dify 作为企业级 LLM 应用基础设施,需确保持续可用性。任何节点故障或区域级中断可能导致开发流程中断、模型训练数据丢失或 API 服务不可用。


SAE 解决方案:


  1. 多可用区容灾部署
  • 自动将 Dify 实例分布于多个可用区(AZ),实现跨 AZ 的流量负载均衡与故障无缝切换,规避单点故障风险。

  1. 健康检查与自愈机制
  • 实时监控 Dify 实例健康状态,自动重启异常容器并触发告警,确保服务高可用性。


  1. 数据持久化与备份
  • 结合阿里云存储服务(如 OSS、NAS、RDS、Tair),确保模型数据、配置信息等内容的持久化存储与跨地域容灾,满足企业级数据安全要求。


点击链接此处查看如何安装与配置saectl工具_Serverless 应用引擎(SAE)-阿里云帮助中心


相关文章
|
2天前
|
人工智能 搜索推荐 API
AI赋能大学计划·大模型技术与应用实战学生训练营——华东师范大学站圆满结营
4月24日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行大模型应用实战学生训练营——华东师范大学站圆满结营。
32 2
|
1天前
|
人工智能 Rust API
AI 乱写代码怎么破?使用 Context7 MCP Server 让 AI 写出靠谱代码!
本文通过实际案例演示了如何利用 Context7 MCP Server 解决 AI 编程助手中的代码幻觉问题和使用过时 API 的问题。借助 Context7 获取最新、最准确的代码建议,显著提升了 AI 生成的代码质量,从而有效提高了开发效率。
183 9
AI 乱写代码怎么破?使用 Context7 MCP Server 让 AI 写出靠谱代码!
|
1天前
|
开发框架 人工智能 Cloud Native
破茧成蝶:阿里云应用服务器让传统J2EE应用无缝升级AI原生时代
一场跨越20年的技术对话:在杭州某科技园的会议室里,一场特殊的代码评审正在进行。屏幕上同时展示着2005年基于WebLogic开发的供应链系统和2025年接入DeepSeek大模型的智能调度方案——令人惊叹的是,二者的核心业务代码竟保持着惊人的一致性。"我们保住了20年积累的238个核心业务对象,就像修复传世名画时保留了每一笔历史痕迹。"企业CTO的感慨,揭开了阿里云应用服务器助力传统系统智能化转型的奥秘。
34 13
|
2天前
|
数据采集 人工智能 大数据
演讲实录:中小企业如何快速构建AI应用?
AI时代飞速发展,大模型和AI的应用创新不断涌现,面对百花齐放的AI模型,阿里云计算平台大数据AI解决方案总监魏博文分享如何通过阿里云提供的大数据AI一体化平台,解决企业开发难、部署繁、成本高等一系列问题,让中小企业快速搭建AI应用。
|
14天前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
163 29
|
5天前
|
开发框架 人工智能 Java
破茧成蝶:传统J2EE应用无缝升级AI原生
本文探讨了技术挑战和解决方案,还提供了具体的实施步骤,旨在帮助企业顺利实现从传统应用到智能应用的过渡。
破茧成蝶:传统J2EE应用无缝升级AI原生
|
30天前
|
人工智能 数据可视化 API
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
143 8
|
1月前
|
机器学习/深度学习 存储 人工智能
AI职场突围战:夸克应用+生成式人工智能认证,驱动“打工人”核心竞争力!
在AI浪潮推动下,生成式人工智能(GAI)成为职场必备工具。文中对比了夸克、豆包、DeepSeek和元宝四大AI应用,夸克以“超级入口”定位脱颖而出。同时,GAI认证为职场人士提供系统学习平台,与夸克结合助力职业发展。文章还探讨了职场人士如何通过加强学习、关注技术趋势及培养合规意识,在AI时代把握机遇。
|
28天前
|
人工智能 API 计算机视觉
AI-ClothingTryOn:服装店老板连夜下架试衣间!基于Gemini开发的AI试衣应用,一键生成10种穿搭效果
AI-ClothingTryOn是基于Google Gemini技术的虚拟试衣应用,支持人物与服装照片智能合成,可生成多达10种试穿效果版本,并提供自定义提示词优化功能。
179 17
AI-ClothingTryOn:服装店老板连夜下架试衣间!基于Gemini开发的AI试衣应用,一键生成10种穿搭效果
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
多模态AI核心技术:CLIP与SigLIP技术原理与应用进展
近年来,多模态表示学习在人工智能领域取得显著进展,CLIP和SigLIP成为里程碑式模型。CLIP由OpenAI提出,通过对比学习对齐图像与文本嵌入空间,具备强大零样本学习能力;SigLIP由Google开发,采用sigmoid损失函数优化训练效率与可扩展性。两者推动了多模态大型语言模型(MLLMs)的发展,如LLaVA、BLIP-2和Flamingo等,实现了视觉问答、图像描述生成等复杂任务。这些模型不仅拓展了理论边界,还为医疗、教育等领域释放技术潜力,标志着多模态智能系统的重要进步。
171 13
多模态AI核心技术:CLIP与SigLIP技术原理与应用进展
下一篇
oss创建bucket