开启左侧

Dify MCP 保姆级教程来了!

[复制链接]
mazaoxie 发表于 2025-9-7 23:06:58 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Dify MCP 保姆级教程来了!

1. MCP介绍

1.1 大语言模型 VS 智能体Agent?

大语言模型,例如 DeepSeek,如果不能联网、不能操作外部工具,只能是聊天机器人。除了聊天没什么可做的。
而一旦大语言模型能操作工具,例如:联网/地图/查天气/函数/插件/API 接口/代码解释器/机械臂/灵巧手,它就升级成为智能体 Agent,能更好地帮助人类。今年爆火的 Manus 就是这样的智能体。
众多大佬、创业公司,都在 All In 押注 AI 智能体赛道。
也有不少爆款的智能体产品,比如 Coze、Manus、Dify。
1.2 以前的智能体是怎么实现的?

在以前,如果想让大模型调用外部工具,需要通过写大段提示词的方法,实现“Function Call”。
比如在 openai 中这是一个用于处理客户订单配送日期查询的工具调用逻辑设计。以下是关键点解读:
一、工具功能解析

    \1. 核心用途
      函数名 get_delivery_date 明确用于查询订单的配送日期(预计送达时间)。触发场景:当用户询问包裹状态(如“我的包裹到哪里了?”或“预计何时送达?”)时自动调用。
    \2. 参数设计
      必需参数:仅需提供 order_id(字符串类型),无需其他字段。逻辑合理性:订单ID是唯一标识,足以关联物流信息(如快递单号、配送进度等)。
    \3. 技术实现要求
      开发者需在后端实现该函数,通过 order_id 关联数据库或物流API获取实时配送状态(如预计送达时间、当前物流节点等)。


二、客服对话流程示例

假设用户提问:“Hi, can you tell me the delivery date for my order?”
助手应执行以下步骤:
    \1. 识别意图:用户明确要求“delivery date”,符合工具调用条件。\2. 参数提取:需引导用户提供 order_id(因消息中未直接包含该信息):
“Sure! Please provide your order ID so I can check the delivery schedule.”
    \3. 工具调用:获得 order_id 后,后台执行 get_delivery_date(order_id=“XXX”)。\4. 返回结果:向用户展示函数返回的配送日期(如 “您的订单预计在2025年6月25日18:00前送达”)。
  1. tools = [
  2.     {
  3.         "type": "function",
  4.         "function": {
  5.             "name": "get_delivery_date",
  6.             "description": "Get the delivery date for a customer's order. Call this whenever you need to know the delivery date, for example when a customer asks 'Where is my package'",
  7.             "parameters": {
  8.                 "type": "object",
  9.                 "properties": {
  10.                     "order_id": {
  11.                         "type": "string",
  12.                         "description": "The customer's order ID.",
  13.                     },
  14.                 },
  15.                 "required": ["order_id"],
  16.                 "additionalProperties": False,
  17.             },
  18.         }
  19.     }
  20. ]
  21. messages = [
  22.     {"role": "system", "content": "You are a helpful customer support assistant. Use the supplied tools to assist the user."},
  23.     {"role": "user", "content": "Hi, can you tell me the delivery date for my order?"}
  24. ]
  25. response = openai.chat.completions.create(
  26.     model="gpt-4o",
  27.     messages=messages,
  28.     tools=tools,
  29. )
复制代码
1.3 靠大段提示词的方法实现的 Function Call 有什么问题?

对开发者(你)来说:
    要写一大段复杂提示词,程序员的语文水平一般都比较捉急面对相同的函数和工具,每个开发者都需要重新从头造轮子,按照自己想要的模型回复格式重新撰写、调试提示词
对软件厂商来说(百度地图)来说:
    百度地图发布的大模型工具调用接口,和高德地图发布接口,可能完全不一样。没有统一的市场和生态,只能各自为战,各自找开发者接各自的大模型。
对大模型厂商(DeepSeek)来说:
    各家厂商训练出的智能体大模型,任务编排能力参差不齐,标准不一致。
每个软件都要定制开发不同的大模型调用模板。
1.4 秦王扫六合:MCP协议



Anthropic 公司(就是发布 Claude 大模型的公司),在 2024 年 11 月,发布了 Model Context Protocol 协议,简称 MCP。
MCP 协议就像 Type-C 扩展坞,让海量的软件和工具,能够插在大语言模型上,供大模型调用
MCP 协议是连接【大模型(客户端)】和【各种工具应用(服务端)】的统一接口。


1.5 几个 MCP 的应用案例

\1. 调用Unity的MCP接口,让AI自己开发游戏。
https://www.bilibili.com/video/BV1kzoWYXECJ
\2. 调用Blender的MCP接口,让AI自己3D建模。
https://www.bilibili.com/video/BV1pHQNYREAX
\3. 调用百度地图的MCP接口,让AI自己联网,查路况,导航。
https://www.bilibili.com/video/BV1dbdxY5EUP
\4. 调用 Playwright 的MCP接口,让 AI 自己操作网页。(后面的保姆级教程讲的就是这个)
只要“扩展坞”上插的“工具”够多,每个人都能几分钟,搭积木手搓出,类似 Manus 的智能体
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )