我们今天用的案例非常简单。要实现的功能是,用户可以自由跟 AI 对话,AI 调取高德 MCP 服务,提供最佳的出行方案。
为了简化演示,就只有三个节点:开始、策略和结束;
核心在于中间的 Agent 节点,配置 FunctionCalling 策略。这里的策略使得Agent 会根据用户输入的智能分析需求,动态选择并调用合适的 MCP 工具。非常适合处理复杂任务,让 AI 自主决策最佳执行路径。
1-Agent 策略配置
开始节点之后,选择 Agent 节点。
然后,为 Agent 节点配置 AGENT 策略。
2-安装 Dify Agent 策略插件
这里需要留意,策略插件需要到插件市场上下载和安装最新的Dify Agent 策略版本。
Agent 策略安装地址如下,我当前的版本是:0.0.23。
3-配置MCP 工具
然后,将 MCP 配置成工具列表。
这里省略了配置 MCP 工具的步骤,详细过程可以看我上一篇在 Dify 中调用高德 MCP 服务的这篇文章了解。
完成配置后,可以看到这里的工具箱是满的。
接下来,把几个核心的重要配置项做一下说明。
Dify 官方内置的 Function Calling 策略的配置项包括:
模型: 选择驱动 Agent 的大语言模型。本次案例选择的是 Qwen235B。 2. 2. 工具: 工具的使用方式由 Agent 策略定义,点击 ”+” 添加并配置 Agent 可调用的工具。前面演示的是配置 MCP 为工具。
指令: 定义 Agent 的任务目标和上下文。支持使用 Jinja 语法引用上游节点变量。 4. 4. 查询: 接收用户输入。
最大迭代次数: 设定 Agent 的最大执行步数。可以默认。 6. 6. 输出变量: 提示节点输出的数据结构。如果对输出格式没有要求,也可以默认。
我的配置参考如下:
4-添加结束节点
最后,添加一个结束节点,引用:Agent 输出的 text。
OK,测试一下。
5-效果测试
输入:
佛山千灯湖地铁站到磨碟沙地铁站的路线
我看一下执行情况:
我们详细拆解一下策略节点发生了什么事情。从历史执行记录中,我们可以调取Agent 策略。
为了方便大家理解,我整理了一下整个 Agent 策略过程,发生了什么。大概是这样的 4 个步骤。
1-流程起点:【任务理解】
Agent借助自然语言理解,把“佛山千灯湖地铁站 → 磨碟沙地铁站怎么走?”这句模糊提问,精准转化为内部可执行目标:“规划从佛山千灯湖地铁站到广州磨碟沙地铁站的公共交通路线。”
2-核心中枢:【思考规划】
• 先获取两站坐标与城市归属 • 再用跨城公共交通规划工具计算路线 • 最终生成清晰换乘方案
3-能力执行:【工具调用】
• 第 1 次调用 maps_geo:解析“佛山千灯湖地铁站” → 坐标 + 佛山 • 第 2 次调用 maps_geo:解析“磨碟沙地铁站” → 坐标 + 广州
• 第 3 次调用 maps_direction_transit_integrated:输入两组坐标与城市,返回地铁/公交换乘方案
4-闭环终点:【结果反馈】
Agent整合三次调用结果,输出: “佛山千灯湖站 → 广州磨碟沙站:先乘广佛线至西塱站,换乘广州 8 号线至磨碟沙站,全程约 55 分钟。”
这样的策略,足够 AI 能够根据任务情况,自行规划和判断任务的执行情况。
好了,在 Dify 中手搓一个极简的 AIAgent 应用已经完成了。
我们可以看到在 Agent 策略和 MCP 工具的支持下,我们就能进行各种各样 AIAgent 应用的开发了!
您如果还有关于 Dify 或者 AIAgent 的应用开发想了解的,欢迎评论区留言。