DifyMCP保姆级教程来了!

原文:DifyMCP保姆级教程来了!

MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。

社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。

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.”

  1. 工具调用:获得 order_id 后,后台执行 get_delivery_date(order_id="XXX")。

  2. 返回结果:向用户展示函数返回的配送日期(如 “您的订单预计在2025年6月25日18:00前送达”)。

    tools = [
        {
            "type": "function",
            "function": {
                "name": "get_delivery_date",
                "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'",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "order_id": {
                            "type": "string",
                            "description": "The customer's order ID.",
                        },
                    },
                    "required": ["order_id"],
                    "additionalProperties": False,
                },
            }
        }
    ]
    
    messages = [
        {"role": "system", "content": "You are a helpful customer support assistant. Use the supplied tools to assist the user."},
        {"role": "user", "content": "Hi, can you tell me the delivery date for my order?"}
    ]
    
    response = openai.chat.completions.create(
        model="gpt-4o",
        messages=messages,
        tools=tools,
    )
    

1.3 靠大段提示词的方法实现的 Function Call 有什么问题?

对开发者(你)来说:

  • 要写一大段复杂提示词,程序员的语文水平一般都比较捉急

  • 面对相同的函数和工具,每个开发者都需要重新从头造轮子,按照自己想要的模型回复格式重新撰写、调试提示词

对软件厂商来说(百度地图)来说:

  • 百度地图发布的大模型工具调用接口,和高德地图发布接口,可能完全不一样。

  • 没有统一的市场和生态,只能各自为战,各自找开发者接各自的大模型。

对大模型厂商(DeepSeek)来说:

  • 各家厂商训练出的智能体大模型,任务编排能力参差不齐,标准不一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值