所有文章 > AI驱动 > 基于 MCP 实现推荐业务场景案例架构设计
基于 MCP 实现推荐业务场景案例架构设计

基于 MCP 实现推荐业务场景案例架构设计

关键词: MCP 推荐 架构设计

Anthropic 推出的 MCP(模型上下文协议)取得了成功,这显然激发了 AI 行业里的其他参与者,大家都想来定义一些开放协议,好用在 AI Agent 系统(Agentic Systems)的集成里。

image

—1—MCP 架构设计

MCP(模型上下文协议)是由 Anthropic 定义的一个开放协议,标准化应用程序如何为大语言模型(LLM)提供上下文。更具体地说,它试图标准化基于 LLM 的应用程序与其他环境集成的协议。

在 AI Agent 系统(Agentic Systems)中,上下文可以通过多种方式提供:

  1. 外部数据:这是长期记忆的一部分。
  2. 工具:系统与环境交互的能力。
  3. 动态提示词:可以作为系统提示词(System Prompt)的一部分注入。

第一、为什么要标准化?

目前,AI Agent 应用的开发流程很混乱:

  • 有许多 AI Agent 框架存在细微差异。虽然看到生态系统蓬勃发展令人鼓舞,但这些细微差异很少能带来足够的价值,但可能会显著改变你的代码编写方式。
  • 与外部数据源的集成通常是临时实现的,并且使用不同的协议,即使在组织内部也是如此。对于不同公司来说,这显然是如此。
  • 工具在代码库中以略微不同的方式定义。如何将工具附加到增强型 LLM 上也是不同的。

目标是提高我们创新 AI Agent 应用的速度、安全性以及将相关数据带入上下文的便利性。

第二、MCP 架构设计

image

  1. MCP Host:使用 LLM 为核心并希望通过 MCP 访问数据的程序。
  2. MCP Client:与 MCP Server 保持 1:1 连接的客户端。
  3. MCP Server:每个 MCP Server 都通过标准化的模型上下文协议公开特定功能的轻量级程序。
  4. Local Data Sources:你计算机上的文件、数据库和服务,MCP Server 可以安全访问。
  5. Remote Data Sources:通过互联网可用的外部系统(比如:通过 API),MCP Server 可以连接到这些系统。

第三、通过 MCP 分离控制责任

MCP Server 公开三个主要元素(Prompts、Resoures、Tools),这些元素是有意设计的,以帮助实现特定的控制分离。

image

  1. Prompts

    • 提示词被设计为用户控制的。
    • 后端的程序员可以公开特定的提示词(适用于与后端服务公开的数据交互),这些提示词可以注入到使用 LLM 的应用程序中,并暴露给给定应用程序的用户。
  2. Resoures

    • 资源被设计为应用程序控制的。
    • Resources 资源是任何可以被利用 LLM 构建的应用程序使用的数据(文本或二进制)。
    • 应用程序的程序员(通常是 AI 应用开发工程师)负责将这些信息编码到应用程序中。通常,这里没有自动化,LLM 不参与此选择。
  3. Tools

    • 工具被设计为大模型控制的。
    • 如果我们赋予应用程序如何与环境交互的代理权,我们使用 Tools 工具来实现这一点。
    • MCP Server 公开一个端点,可以列出所有可用 Tools 工具及其描述和所需参数,应用程序可以将此列表传递给 LLM,以便它决定哪些 Tools 工具适用于手头的任务以及如何调用它们。

—2—基于 MCP 实现招聘推荐业务场景

第一、招聘推荐业务场景剖析

很多企业内部都有推荐业务的场景,特别是对于招聘推荐业务,招聘场景涉及到企业用人端的招聘服务,也涉及到个人用户的简历数据,这些数据往往散落在不同的平台中。为了更高效的实现人才的匹配,招聘平台就需要利用 AI Agent 智能体根据招聘岗位需求快速找到最合适的候选人,这就是招聘的推荐业务场景。

在这个业务场景中,通过 MCP 统一协议连接多个系统,AI Agent 智能体可以自主决策,从而按需获取岗位数据、职位数据、简历数据等,从而将招聘找人效率提高 30%+。

第二、基于 MCP 的整体流程设计

如下所示:

  1. 招聘平台内部需要提供 API 接口能力;
  2. 提供获取岗位 JD 的 API 接口能力;
  3. 提供内部封装的简历排序能力;
  4. AI Agent 智能体根据 MCP Server 调用结果,给出对应的简历推荐理由。

第三、基于 MCP 的整体架构设计

image

第四、MCP Server 的代码实现

如下所示:

import requests
import json
from mcp.server.fastmcp import FastMCP

# 创建 MCP 服务器
mcp = FastMCP()

@mcp.tool()
def get_job_list(job_name="", page=1, page_size=20):
    """
    获取职位列表和对应的jobId
    参数:
    职位名称: 职位的名称关键词,如"安全"、"工程师"等
    页码: 分页查询的页码,默认为1
    每页数量: 每页返回的职位数量,默认为20
    """
    payload = {
        "jobTitle": job_name,
        "page": page,
        "limit": page_size
    }
    try:
        response = requests.post(URL, headers=HEADERS, data=json.dumps(payload))
        response.raise_for_status()  # 检查请求是否成功
        return response.json()
    except Exception as e:
        return {"错误": f"获取职位列表失败: {str(e)}"}

第五、配置到 MCP Client 中

Client 调用如下所示:

image

随着 MCP Server 数量的增加,可能会面临以下挑战:

  1. MCP Server 选择难题

    • 客户端在选择合适的 MCP Server 进行调用时可能会遇到困难,这需要花费大量时间来尝试不同的调用方案。
    • 由于服务器的不同排列组合,尝试的成本可能会急剧增加。在这种情况下,可能需要在客户端开发更高级的记忆功能,以记住成功的调用路径;同时,在服务器端实施服务评级机制,以便优先选择性能更优的服务器进行调用。
  2. 安全性和授权问题

    • 目前的开源 MCP 版本尚未考虑授权和访问权限的问题,这可能导致 MCP Server 向客户端植入恶意信息,或者客户端将本地的个人隐私信息上传到网络中,从而引发安全风险。

原文转载自:https://mp.weixin.qq.com/s/iRc5GK379AhPH7ZQChz7EA

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费