阿里巴巴中间件 04月05日 23:21
一键部署 Dify + MCP Server,高效开发 AI 智能体应用
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何利用阿里云 Serverless 应用引擎(SAE)快速搭建 Dify AI 研发平台,实现全托管、免运维的 AI 智能体应用。通过 SAE 提供的弹性、高可用、监控等特性,结合 Dify 和 MCP Server,可以高效构建生产级 AI 应用。文章详细阐述了部署流程、关键技术以及云上托管 Dify 面临的挑战与解决方案。

🚀 阿里云 SAE 提供了一种基于 Serverless 架构的全托管、免运维的 Dify AI 研发平台解决方案,旨在简化 AI 应用的部署和管理。

🛠️ 通过 saectl 工具或 SAE 应用中心,用户可以快速部署 Dify 应用,并轻松配置数据库、存储、网络等依赖资源,实现一键部署。

🔗 Dify 可以与 MCP Server 结合,通过简单的拖拽和配置,快速构建 AI 智能体应用,并实现与不同工具的连接。

💡 SAE 提供了弹性伸缩、高可用、全链路监控等功能,帮助用户应对流量高峰、保障平台稳定运行,并降低运维成本。

🌐 SAE 支持 CI/CD 和灰度发布,方便用户快速迭代和更新 Dify 应用,提高开发效率,并提供多可用区容灾部署,保障数据安全。

2025-04-03 16:02 浙江

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

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



前言

Aliware


全球 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 智能体解决方案。


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


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


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


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


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


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


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


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



在 SAE 上快速部署

Dify AI 研发平台

Aliware



基于 saectl 模板一键部署

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


前置准备


第一步:saectl 工具安装


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


第二步:前置资源准备


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



saectl 模版部署


第一步:准备 SAE Dify 模板


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



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


    apiVersion: v1data:  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: Secretmetadata:  name: dify-credentials  namespace: difytype: Opaque


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


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



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



    使用 Dify 服务


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





    基于 SAE 应用中心一键部署

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

    前置准备


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


    SAE 应用中心部署


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



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



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



    使用 Dify 服务


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

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



    使用 Dify 编排 MCP 应用

    Aliware


    第一步:  在 SAE 上部署 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 状态,日志标准输出显示服务器运行中。



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




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



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




          {    "mcp_server": {        "url": "http://8.135.243.229:80/sse",        "headers": {
          }, "timeout": 5, "sse_read_timeout": 300 }}


          第三步: 测试 Agent


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



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


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




          总结:云上托管 Dify 的

          核心挑战与 SAE 解决方案

          Aliware


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


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



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

          挑战:


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


          SAE 解决方案:


            深度集成 CI/CD 工具链

            一键部署与灰度发布

            滚动更新与无损升级

            环境一致性与镜像管理



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

          挑战:


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


          SAE 解决方案:


            自动弹性扩缩容

            冷启动优化

            按需付费模式


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

          挑战:


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


          SAE 解决方案:


            多可用区容灾部署
            健康检查与自愈机制
            数据持久化与备份

          点击阅读原文查看如何安装与配置saectl工具_Serverless 应用引擎(SAE)-阿里云帮助中心

          阅读原文

          跳转微信打开

          Fish AI Reader

          Fish AI Reader

          AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

          FishAI

          FishAI

          鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

          联系邮箱 441953276@qq.com

          相关标签

          SAE Dify AI Serverless MCP Server
          相关文章