大家好,我是热爱编程,热爱分享的"一只韩非子 "。
关注微信公众号:
会编程的韩非子
添加微信号:
Hanfz0712
免费加入
问答群/知识交流群
,一起交流技术难题与未来,与你在编程学习路上通行,让我们Geek起来!
MCP引入的原因:
MCP的出现是为了解决大模型的"能力边界"问题
- 大模型是一个预训练模型,他的知识在训练完那一刻就定格了,无法获取实时数据。比如:无法获取北京明天的天气、无法判断明天从北京到上海的车有哪些。
- 大模型是"通才",不是"专家"。他可能知道git的原理,但他不知道github上合并代码的接口是什么,也远不如github的API精准。换句话说,想让大模型做很多事,但是他无法做,或者无法做得很专业,比如:查询天安门到鸟巢之间的距离(基于以往的训练知识,不精确)、让他帮忙review远程代码并直接合并操作(不知道review代码和合并代码的接口是什么,这个能力是官方的接口能力)
MCP的结构:
MCP Server
MCP Server提供了相应的功能(例如Web服务端的接口),每一个功能都可以做具体的事,比如:高德的MCP Server会提供距离查询的接口,滴滴的MCP服务可能会帮你发送一个从北京天安门到鸟巢的订单。每一个功能需要加详细的描述,说明具体可以做什么事,需要准确、详细。因为后续大模型会根据描述来判断是否能匹配上用户的问题。
MCP Client
MCP Client的功能是意图识别、匹配服务、调度执行。
- 意图识别:会基于大模型语义识别能力,判断用于用户具体要做一个什么事。
- 匹配服务:Client会维护一个"能力清单",也就是当前介入了哪些Server。然后会识别出来用户要做的事去匹配对应的Server和Server下对应的功能。之前说的Server上面加的详细描述就是用在这里的。
- 调度执行:匹配出来Server和功能之后就会进行调度执行,并展示返回的内容。