前言
AI智能体通过感知环境、自主决策和执行任务,突破传统大模型仅限于语言交互的局限。然而,智能体的开发长期受制于接口碎片化与工具兼容性难题。开发者需为不同数据源编写适配代码,这一痛点催生了MCP协议的诞生。MCP(Model Context Protocol,模型上下文协议)由Anthropic于2024年底开源,其核心是通过标准化接口实现大模型与外部工具的“即插即用”。
Dify在最新的1.6.0版本实现了对MCP协议的原生双向集成,无需安装额外的插件(例如: MCP SSE / StreamableHTTP)。除了能直接调用外部MCP服务,还可以将Dify的AI应用发布为MCP服务供外部客户端调用,提升集成效率和稳定性。
本文将介绍如下内容:
- 基于Dify原生MCP构建出行助手智能体
- 分析为何原生MCP比安装插件方式更高效
申请高德地图api key
- 注册并登录高德地图开放平台网址为:https://console.amap.com
- 创建应用进入【应用管理】,点击右上角【创建新应用】,填写表单即可创建新应用
- 添加key进入【应用管理】,选择需要创建Key的应用,点击【添加 Key】,表单中的服务平台选择【Web 服务】
- 创建成功后,可查看创建的key
Dify添加MCP工具
Dify需要升级到1.6.0版本。进入Dify MCP工具配置页面, 点击【添加MCP服务】
在页面中填入服务端点URL,值为https://mcp.amap.com/mcp?key=高德官网上申请的key,点击【添加并授权】
添加成功后,选择新创建的MCP服务,在右侧可以看到该MCP包含的工具
Dify添加二维码工具
这个例子需要将高德地图生成的专属地图链接显示为二维码,方便用户通过高德地图APP扫码查看。
在插件市场搜索qrcode,安装插件【二维码工具】
创建出行助手智能体
- 创建一个空白应用,类型为Agent
- 添加二维码工具和高德MCP工具
- 设置提示词
- 模型选择doubao-1.5-pro-32k
- Agent设置适当调整最大迭代次数。Agent完成一项任务可能需要迭代多次调用工具,最大迭代次数设置过小可能导致无法正常完成任务。
- 调试预览并发布应用输入“生成到广州南站的导航链接”,Agent最终会输出一个二维码。但目前Dify有bug,在预览模式时,图片显示一下就消失了。发布应用后,点击【运行】,在打开的页面中执行是不会出现图片消失的问题
分析为何原生MCP比安装插件方式更高效
原生MCP在Agent编排阶段,已经把MCP的工具信息添加到工具列表。在执行阶段,省掉MCP插件获取工具列表的过程,无疑可以获得更高的性能。
用dbeaver(一款开源免费数据库工具)打开Dify的postgres数据库。
在tool_mcp_providers表中可以看到添加的服务。
包含的字段有:
- server_identifier: 服务ID
- server_url: 加密的服务端点URL
- tools: 该MCP包含的工具列表。每个工具的信息包含工具名,描述,参数定义
在app_model_configs可以看到agent应用的信息。
包含的字段有:
- pre_prompt: 系统提示词
- agent_mode:
a.agent模式(function call/react)
b.最大迭代次数
c.工具列表
agent_mode的工具包含的信息有:
- provider_id: 服务ID,关联到tool_mcp_providers表的server_identifier
- tool_name: 工具名
- tool_parameters: 工具参数列表
总结
基于Dify原生MCP搭建的智能体案例,不仅展示了从语义理解到工具调用的完整决策链路,更印证了MCP协议在降低开发成本和加速应用落地方面的工程意义。另外,原生MCP相比插件方式,提升集成效率和稳定性。