AI智能体通过感知环境、自主决策和执行任务,突破传统大模型仅限于语言交互的局限。然而,智能体的开发长期受制于接口碎片化与工具兼容性难题。开发者需为不同数据源编写适配代码,这一痛点催生了MCP协议的诞生。MCP(Model Context Protocol,模型上下文协议)由Anthropic于2024年底开源,其核心是通过标准化接口实现大模型与外部工具的“即插即用”。 Dify在最新的1.6.0版本实现了对MCP协议的原生双向集成,无需安装额外的插件(例如: MCP SSE / StreamableHTTP)。除了能直接调用外部MCP服务,还可以将Dify的AI应用发布为MCP服务供外部客户端调用,提升集成效率和稳定性。 本文将介绍如下内容: 运行效果如下:前言
申请高德地图api key
网址为:https://console.amap.com
进入【应用管理】,点击右上角【创建新应用】,填写表单即可创建新应用

进入【应用管理】,选择需要创建Key的应用,点击【添加 Key】,表单中的服务平台选择【Web 服务】


Dify添加MCP工具

https://mcp.amap.com/mcp?key=高德官网上申请的key
,点击【添加并授权】

Dify添加二维码工具
这个例子需要将高德地图生成的专属地图链接显示为二维码,方便用户通过高德地图APP扫码查看。
在插件市场搜索qrcode,安装插件【二维码工具】

创建出行助手智能体
-
• 创建一个空白应用,类型为Agent -
• 添加二维码工具和高德MCP工具 -
• 设置提示词
你是一个出行助手,通过使用工具解决用户提出的问题。
如果用户提供的信息不足,提示用户提供相关信息。
当工具返回前缀为amapuri://的链接时,需要显示二维码图片,提示用户使用高德地图扫码。
-
• 模型选择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包含的工具列表。
每个工具的信息包含工具名,描述,参数定义
{
"name": "maps_direction_bicycling",
"description": "骑行路径规划用于规划骑行通勤方案,规划时会考虑天桥、单行线、封路等情况。最大支持 500km 的骑行路线规划",
"inputSchema": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"description": "出发点经纬度,坐标格式为:经度,纬度"
},
"destination": {
"type": "string",
"description": "目的地经纬度,坐标格式为:经度,纬度"
}
},
"required": [
"origin",
"destination"
]
},
"annotations": null
}
在app_model_configs可以看到agent应用的信息。

-
• pre_prompt: 系统提示词 -
• agent_mode: -
• agent模式(function call/react) -
• 最大迭代次数 -
• 工具列表
-
agent_mode的工具包含的信息有:
-
• provider_id: 服务ID,关联到tool_mcp_providers表的server_identifier -
• tool_name: 工具名 -
• tool_parameters: 工具参数列表
{
"provider_id": "amap-mcp",
"provider_type": "mcp",
"provider_name": "高德MCP",
"tool_name": "maps_direction_bicycling",
"tool_label": "maps_direction_bicycling",
"tool_parameters": {
"origin": "",
"destination": ""
},
"notAuthor": false,
"enabled": true
},
总结
基于Dify原生MCP搭建的智能体案例,不仅展示了从语义理解到工具调用的完整决策链路,更印证了MCP协议在降低开发成本和加速应用落地方面的工程意义。另外,原生MCP相比插件方式,提升集成效率和稳定性。
#智能体开发教程 #Dify开发教程 #MCP开发教程 #AI应用开发教程
END
如果您觉得本文对您有帮助,欢迎关注、点赞、转发、推荐
参考资料
-
• https://github.com/langgenius/dify.git -
• https://github.com/modelcontextprotocol -
• https://lbs.amap.com/api/mcp-server
本篇文章来源于微信公众号: AI大模型应用开发
文章评论