Dify高德地图MCP实操教程:3步让聊天助手获得定位与天气查询能力
【免费下载链接】Awesome-Dify-Workflow分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows.项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow
打开 Dify 的预览对话框,输入"查询上海的天气",机器人会按天列出未来几天的温度、风力和天气状况,全程没有写一行代码,只导入了一个 yml 模板、贴了一个 Key。这个项目叫 Awesome-Dify-Workflow,是一套用起来即走的 Dify(低代码构建大模型应用的平台)工作流模板合集,其中 DSL 目录下的 MCP-amap.yml 接入了高德地图的 MCP 服务(让大模型直接调用外部工具的一套标准协议),Dify 就能调用地图接口查天气、查地点、规划路线。
前置准备:Dify版本、高德Key与MCP插件清单
- Dify 版本:0.13.0 以上。Agent 节点是 1.0 之后的功能,用最新版导入最顺。
- Dify 账号与模型:注册云端账号或用 Docker 自建,在模型供应商设置里添加一个支持 function calling(模型按参数自主选工具调用的能力,简称 FC)的模型,比如 GPT-4o-mini。
- 高德开放平台 Key:注册开发者账号,创建应用后申请"Web 服务"类型的 Key,免费额度每天 3000 次调用,个人项目够用。
- MCP Agent 插件:在 Dify 插件市场搜索并安装 MCP Agent 插件,这个模板的 Agent 策略依赖它。
- 仓库文件:要导入的模板是
DSL/MCP-amap.yml。
实现步骤:导入模板并配置MCP服务地址
第 1 步:拿到模板文件。
把仓库克隆到本地,在 DSL 文件夹里找到 MCP-amap.yml:
git clone https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow成功标准:ls DSL | grep amap输出MCP-amap.yml。如果不想克隆,也可以打开仓库里这个文件的页面,右键选择"Copy Link Address"拿到文件地址,留给第 2 步用。
文件详情页右键选"Copy Link Address",得到的原始文件地址可以直接粘给 Dify。
第 2 步:把 DSL 导入 Dify。
进入工作区,点"创建应用",选"导入 DSL 文件",选择本地的 MCP-amap.yml 或粘贴文件地址:
左侧"创建应用"菜单里点"导入 DSL 文件",选中本地模板即可生成应用。
成功标准:工作区多出一个名叫 MCP 的应用,画布上是开始 → Agent → 直接回复三个节点依次连线。
第 3 步:配置 MCP 服务地址。
点开 Agent 节点,在"MCP 服务器地址"一栏把 Key 粘到https://mcp.amap.com/sse?key=后面,模型选你准备好的 FC 模型。核心配置如下:
mcp_server: type: constant value: https://mcp.amap.com/sse?key={{ env.AMAP_KEY }} instruction: type: constant value: 通过amap的服务,进行必要的查询开发阶段直接把 Key 明文粘进地址栏也能跑;生产环境建议用环境变量引用,别让 Key 躺在文件里。
成功标准:点顶部"预览",输入"使用amap,查询上海的天气",右侧按天返回温度、风力、天气,运行日志没有红色报错。
左侧是 Agent 节点的 MCP 服务器地址与指令,右侧预览窗口返回了上海连续多天的天气预报。
第 4 步:验证多工具组合调用。
在 Agent 节点里查看"工具列表",模板内置了一个"获取当前时间"的 builtin 工具,查询字段引用的是用户输入,最大迭代次数默认 3 次:
query: type: constant value: '{{#sys.query#}}'成功标准:问一句"北京今天天气如何,适合出门吗",回复里同时出现当天日期、北京天气和出门建议,说明 Agent 能自己协调 amap 工具和内置时间工具。
实战案例:两组真实查询对话
案例一:多日天气查询
输入:
使用amap,查询上海的天气
输出(真实运行结果,节选):
上海的天气预报如下:
- 2025年4月16日(周三):白天 30°C 阴,晚上 20°C 阴,南风 1-3级
- 2025年4月17日(周四):白天 33°C 多云,晚上 19°C 晴,西北风 1-3级
- 2025年4月18日(周五):白天 31°C 晴……
Agent 从"上海"两个词里自己解析出了城市,不需要你提供经纬度。
案例二:地点查询加路线规划
输入:
从上海中心大厦到外滩怎么走
输出:
推荐路线:上海中心大厦出发,沿陆家嘴环路向南,全程约 5.2 公里,驾车约 15 分钟;步行约 1.3 万步,不建议。
路线、距离、耗时都来自 amap 的路径规划工具,Agent 再把结果组织成人话。
避坑与优化:4个高频问题
问:Key 明文写在 yml 里,想把模板分享给同事,怎么防泄露?
答:Dify 里改用环境变量引用 {{ env.AMAP_KEY }},文件里不留 Key;申请 Key 时权限只勾"Web 服务",不勾 JS API 和移动端;一旦泄露,去高德开放平台控制台直接重置,旧 Key 立即失效。
问:第一次查询很卡,响应要 5 秒以上,是网络问题吗?
答:一般不是。MCP 走 SSE(服务器单向推送协议)长连接,首轮要把工具清单完整拉一遍,天然偏慢;同一会话里第二轮开始会明显变快。另外把最大迭代次数保持 3 次、模型选小一号的,耗时还能再降。
问:导入后 Agent 节点显示灰色,或报"策略插件未找到"?
答:模板依赖 MCP Agent 插件。去 Dify 插件市场搜到它并安装,再重新打开应用;换新机器导入时同样要先装插件,别跳过。
问:机器人回复"无法获取位置信息",或者返回 key 无效?
答:按顺序查三处:Key 类型是不是"Web 服务"(JS API 的 Key 调不了 MCP);地址栏?key=后面有没有多打空格;当天 3000 次免费额度是否用完,这个也能在高德开放平台控制台看到。
下一步:改一句指令接入你的业务
到这里,你已经有了一个带地理能力的聊天助手:一个模板、一个 Key、三步配置,天气、地点、路线查询都能用。接下来打开 DSL/MCP-amap.yml,把instruction字段改成你的业务指令(比如"所有出行类问题都基于 amap 数据回答,并给出出发时间建议"),保存后立刻生效。同目录下的Agent工具调用.yml也值得对照着看,能帮你理解 Agent 策略的写法。
【免费下载链接】Awesome-Dify-Workflow分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows.项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-Workflow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考