对于新手用户首先我们需要理清如下概念,Dify、Agent 和 MCP的关系:
- Dify:
• Dify 是一个平台,它让开发者能够构建和部署基于大型语言模型(LLM)的应用程序。
• 简单来说,Dify 就像一个“AI 工厂”或者叫“AI底座”,让我们可以用 AI 来解决各种问题。 - Agent(代理):
• 在 Dify 中,Agent 就像智能助手(Agent Assistant),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。
• 这些“工具”可以是各种软件功能,比如发送邮件、查询数据库、或者控制搜索引擎、文件转化等。 - MCP(Model Context Protocol):
• MCP 是一项由 Anthropic 于 2024 年底开源的新标准 。其主要目标在于标准化人工智能 (AI) 助手与实际存储数据的系统(包括内容存储库、业务工具和开发环境)之间的连接方式 。
如果想详细了解MCP,请参考之前的文章
模型上下文协议 (MCP) 产品经理全方位指南
• 在这个插件中,MCP 用于让 Dify 的 Agent 能够调用外部的“工具”。或者在工作流中调用MCP。
插件的作用:扩展 Dify Agent 的能力
今天推荐这个“MCP 代理策略”插件,它的核心作用是:
• 让 Dify Agent 能够使用更多的“工具”:
• 通过集成 MCP,这个插件让 Dify Agent 能够调用那些使用 MCP 协议的外部“工具”。
• 这意味着,Dify Agent 的能力得到了极大的扩展,它可以完成更加复杂和多样化的任务。
• 提供更灵活的连接方式:
• 插件提供了多种配置选项,允许用户根据实际情况选择合适的 MCP 服务器连接方式。
• 这使得插件能够适应不同的部署环境和需求。
• 让Dify能和更多的外部程序进行交互:
• 通过此插件,Dify可以和使用MCP协议的软件进行交互,极大地提高了Dify的使用场景。
想象一下,Dify 是一个智能机器人,它需要完成各种任务。而 MCP 就像是连接到各种工具的“插座”。这个插件的作用,就是给 Dify 机器人增加更多的“插座”,让它可以连接更多的“工具”,从而完成更多的工作。
使用场景举例:
- 智能客服:
• Dify Agent 可以通过 MCP 调用外部的客户关系管理(CRM)系统,查询客户信息,并提供个性化的服务。
• 自动化办公:
• Dify Agent 可以通过 MCP 调用办公软件,自动生成报表、发送邮件、或者安排会议。 - 专业内容创作:
• Dify Agent 可以通过 MCP 调用专业的文本分析工具,进行关键词提取、情感分析、风格检测等,从而辅助作家进行高质量的内容创作。
• Dify Agent 可以通过MCP调用专业的参考文献数据库,进行论文资料的搜索,整理,以及文献引用等工作。 - 深度信息检索:
• Dify Agent 可以通过 MCP 调用专业的搜索引擎或数据库,进行深度信息检索,获取特定领域的专业知识。
• Dify Agent 可以通过 MCP 调用数据分析工具,对搜索结果进行数据可视化,提取关键信息。 - 自动化报告生成:
• Dify Agent 可以通过 MCP 调用数据收集和报告生成工具,自动生成行业分析报告、市场调研报告等。
安装MCP Agent步骤
安装插件
1.在Marketplace下载MCP Agent策略或 Dify Agent策略 ,推荐 Dify 官方 Agent 策略集合(支持 MCP SSE 发现和调用工具)。
2.安装MCP SSE插件。该工具的作用是通过 HTTP with SSE 传输使用 MCP 协议来发现和调用工具。从而使agent策略能够调用SSE中的插件。
配置Agent策略,增加MCP应用
1.以Time MCP Server为例
Time MCP Server是一个模型上下文协议(Model Context Protocol)服务器,提供时间和时区转换功能。该服务器使大型语言模型(LLM)能够获取当前时间信息,并使用 IANA 时区名称执行时区转换,同时支持自动系统时区检测。
为 LLM 提供准确时间信息: 允许 LLM 获取当前时间,这对于需要时间感知的应用至关重要。
支持时区转换: 使用 IANA 时区名称,使 LLM 能够进行精确的时区转换,并能自动检测系统时区。
选择合适的mcp服务平台(或根据需求自己构建服务)
进入mcp.so平台,搜索相关应用并提取右上角Connect Server with SSE URL 信息
{"mcpServers": {"time": {"url": "https://router.mcp.so/sse/t4gugvm8g1c5k1"}}}
按Dify SSE插件配置要求规则重新修改(dify规则如下)
{"server_name1": {"url": "http://127.0.0.1:8000/sse","headers": {},"timeout": 5,"sse_read_timeout": 300},"server_name2": {"url": "http://127.0.0.1:8001/sse"}}
单个应用修改如下:
{"time": {"url": "https://router.mcp.so/sse/t4gugvm8g1c5k1","headers": {},"timeout": 5,"sse_read_timeout": 300}}
多个应用的配置策略
划重点,如需调用多个应用,请将代码修改如下(按步骤提取mcp服务名和地址信息,替换,注意格式),本示例中的服务都取自MCP.SO平台:
{"fetch": {"url": "https://router.mcp.so/sse/x0hftmm8gajr6n","headers": {},"timeout": 5,"sse_read_timeout": 300},"sequentialthinking": {"url": "https://router.mcp.so/sse/lgl21xm8g0pkgi"},"time": {"url": "https://router.mcp.so/sse/t4gugvm8g1c5k1"}}
将配置信息放入SSE插件进行鉴权授权
鉴权成功后页面
配置流程
在画布中创建工作流
在画布中创建一个简单的agent对话工作流进行测试
在未用MCP之前,你问大模型时间,他只能建议您联网获取时效性较强的信息!或者你在工作流里面配置时间插件。
根据agent需求,填写必要的指令和输入信息,将之前配置好的MCP服务地址也同步粘贴进来:
指令配置:
对于新手,如果你不会写指令,可以使用系统工具生成,只需要简单告诉它你的需求
避坑指南:在dify中如遇到MCPFunctionCall 支持不好的模型,或者提示tool parameter instruction not found in tool config等错误,请及时调整模型,实践中一开始调用硅基deepv3失败,专用sonnet3.5则正常使用。
测试:
时间MCP服务测试
多应用配置测试
输入指令,我要测试时间、网页采集分析、推理的MCP是否正常。通过一个指令涵盖了三个需求,看agent是否能完整响应。
采集 https://www.anthropic.com/news/model-context-protocol 这篇文章翻译为中文,同时判断文章发布时间多久了。有哪些有价值的信息。
成功的效果:
总结
实践中整体agent策略已经可以按我们的需求进行响应,受限于每个MCP能力限制,大家可以选择更稳定的mcp服务。本次fetch就有没响应的情况,出现无法采集的问题。
如果在配置中遇到问题,可以和小编联系,一起讨论研究。