当前位置: 首页 > backend >正文

MCP‌和LangGraph‌结合2

“确保不同团队开发的模型(意图识别、问答)通过统一协议交换上下文”是什么意思?
我理解的一是因为使用的是统一标准的接口协议,所以可以对接不同厂商的大模型;
二是不同厂商的大模型提供的接口也支持mcp协议;
我认为应该是一吧?

核心确实是“统一标准的接口协议”(即你提到的第一点)‌,但需要进一步明确协议覆盖的范围。以下是详细解释:


1. 你的理解正确:关键在于“接口标准化”

当提到 ‌“通过统一协议交换上下文”‌,核心是解决两个问题:

  1. 技术兼容性‌:不同团队开发的模型对外暴露的接口(如 HTTP/gRPC)遵循‌相同的调用规范‌(例如请求方法、参数格式、错误码)。
  2. 语义一致性‌:传递的上下文数据(如对话历史、任务状态)使用‌统一的数据结构‌(例如 JSON Schema 或 Protobuf 定义)。

示例‌:假设团队A开发意图识别模型,团队B开发问答模型:

  • 无 MCP 协议时‌:
    • 团队A的接口:POST /intent {text: string},返回 {"intent": "weather"}
    • 团队B的接口:POST /answer {query: string, history: array},返回 {"answer": "今天晴天"}
    • 问题‌:两个接口的输入输出格式不兼容,无法直接协作。
  • 使用 MCP 协议后‌:
    • 团队A和B均遵循 MCP 定义的接口:POST /mcp {context: MCPContext, input: string}
    • 输入输出强制使用 MCP 的 MCPContext 数据结构(如包含 session_idhistorymetadata 等字段)。
    • 结果‌:两个模型可直接互相调用,无需额外适配。

2. 为什么不是“厂商主动支持MCP协议”(你的第二点)?

  • MCP 是技术中立的协议‌:它的本质是一套规范文档(类似 HTTP 协议的定义),‌不要求厂商必须“官方支持”‌。
  • 实际应用方式‌:
    1. 适配层‌:如果某厂商的大模型未原生支持 MCP,可以通过封装一个‌适配层(Adapter)‌,将其原生接口转换为 MCP 格式。
    2. 开发约束‌:企业内部或合作团队间‌约定强制使用 MCP‌,所有新开发的模型必须实现该协议。

示例‌:调用未支持 MCP 的 OpenAI 模型:

 

pythonCopy Code

# MCP 适配层示例 def call_openai_with_mcp(mcp_request: MCPRequest): # 将 MCP 请求转换为 OpenAI 所需格式 openai_format = { "messages": [{"role": "user", "content": mcp_request.input}], "context": mcp_request.context.get("openai_params", {}) } # 调用原生 OpenAI 接口 response = openai.ChatCompletion.create(**openai_format) # 将 OpenAI 响应转换为 MCP 格式 return MCPResponse( output=response.choices[0].message.content, context={"openai_params": openai_format} )


3. 协议的核心价值:解耦与协作

场景:跨团队协作开发客服系统
团队职责依赖 MCP 的行为
意图识别团队开发意图分类模型通过 MCP 接收用户输入和上下文,返回意图标签
问答团队开发领域知识问答模型通过 MCP 接收意图和上下文,生成回答
流程编排团队集成所有模型调用 MCP 接口,无需关心各团队内部实现细节
  • 解耦‌:各团队只需遵守协议,无需等待其他团队开发完成即可并行工作。
  • 协作‌:上下文格式统一后,模型间的数据传递无歧义(例如所有团队对 history 字段的定义一致)。

4. 类比:现实世界的标准化协议

场景协议作用
不同设备连接Wi-FiIEEE 802.11规定信号频率、加密方式等,确保设备兼容
不同浏览器访问网站HTTP/HTTPS统一请求方法、状态码,确保跨平台通信
不同模型交换上下文MCP统一接口和数据格式,确保跨模型协作

总结

  • 你的第一点正确‌:MCP 的核心是定义‌统一的接口协议和数据格式‌,使得不同团队或厂商的模型可以无缝协作。
  • 第二点非必须‌:厂商无需主动支持 MCP,通过适配层即可兼容。
  • 本质‌:MCP 是技术层面的“合同”,约束开发者行为,而非依赖厂商主动配合。
http://www.xdnf.cn/news/1665.html

相关文章:

  • 基于Vue3 的 h5监听从左到右手滑返回上一页
  • 开源模型应用落地-语音合成-MegaTTS3-零样本克隆与多语言生成的突破
  • 从工作到娱乐:Codigger Desktop 让桌面环境更智能
  • c#-命名和书写规范
  • k8s基于角色的访问控制(RBAC)
  • GPT-4o最新图像生成完全指南:10大应用场景与提示词模板
  • opencv--图像变换
  • 悟空统计:小而美的网站流量统计工具,免费好用
  • 【金仓数据库征文】从云计算到区块链:金仓数据库的颠覆性创新之路
  • ThreadLocal
  • 医学图像(DICOM数据)读取及显示(横断面、冠状面、矢状面、3D显示)为什么用ITK+VTK,单独用ITK或者VTK能实一样功能吗?
  • centos离线安装ssh
  • C语言中封装JSON数组对象
  • 深度解析@SneakyThrows注解:原理、应用与最佳实践
  • 23种设计模式-行为型模式之策略模式(Java版本)
  • 基于 EFISH-SBC-RK3588 的无人机环境感知与数据采集方案
  • DPIN在AI+DePIN孟买峰会阐述全球GPU生态系统的战略愿景
  • MySQL:数据库设计
  • 【C++入门:类和对象】[3]
  • LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下
  • 在Windows11上用wsl配置docker register 镜像地址
  • django admin 添加自定义页面
  • 从码云上拉取项目并在idea配置npm时完整步骤
  • netty中的Channel与Java NIO中的Channel核心对比
  • docker 配置代理
  • 3、ArkTS语言介绍
  • 数据完整性的守护者:哈希算法原理与实现探析
  • Redis的过期删除策略和内存淘汰策略
  • Django创建的应用目录详细解释以及如何操作数据库自动创建表
  • R/G-B/G色温坐标系下对横纵坐标取对数的优势