MCP(模型上下文协议,Model Context Protocol)自Anthropic 2024年11月推后,迅速得到发展,非常值得关注和研究。针对MCP,本号将进行系列分析,包括:
-
协议背景及发展前景,重点介绍协议产生发展的逻辑及未来发展趋势。 -
协议应用方法,重点介绍SDK的使用 -
协议的分析及其它模型的应用,当前还主要支持Anthropic的模型,其它模型的该如何应对。
随着深入,还会有更多的内容出来,今天是第一篇。
欢迎关注及星标,防止走失。
MCP协议背景及发展前景
大模型出现后,其智能的水平很快被大家接受,并越来越受欢迎。但大模型的主要应用仍然是聊天式的交互,完全满足不了大家的预期。
究其原因,是因为大模型本身,确实只有比较简单的输入输出能力,其API接口非常单一,简单的输入输出,被动调用,没有会话的概念,没有临时记忆的能力。
智能体(Agent)
如何充分挖掘大模型能力,让大模型做更多的事情,是业界努力的方向,这其中,最重要的概念是智能体(Agent).
一个典型的智能体的结构大体是这样子的:
智能体在大模型的基础上,增加规划能力,记忆能力,及工具调用能力,形成一个完整的功能体,可以自主执行用户的任务。
更详细一点的图是这样的(此图来自OpenAI)
这里边最关键的环节,是TOOLS(工具调用),大模型能够调用工具,才真正有能力与外界交互,通过调用工具,可以获取外部数据,也可以对外部进行行动。
Function Calling
工具调用的核心是函数调用(Function calling).
Function calling 最早由 OpenAI 在 2023 年 6 月推出并实现。OpenAI 在其 GPT 模型系列中引入了这一功能,最初是在 GPT-3.5 和 GPT-4 模型中添加的 API 功能,让开发者能够定义特定函数,使大模型可以调用这些函数以获取外部数据或执行特定操作。
Function Calling直接翻译是函数调用,但它并不是由大模型直接调用的,而是在大模型的指导下调用。
典型的流程是这样的:
1.用户提交提示
2.Agent将提示与一个或多个工具/函数定义一起提交给模型。
3.模型选择适合执行用户提示的函数,将选定的函数名称和参数返回给Agent
4.Agent根据模型返回结果执行该函数并将 API 响应返回给模型
注:LLM 根本不执行函数,它只提供该执行的函数及必要的参数。
虽然Agent并不执行函数,但这个方法给了Agent和外界灵活交互的途径,迅速得到发展,除了Openai,其它各个大模型也迅速支持该功能。
模型以外,以Langchain等为代表的Agent框架,也都提供了Function calling的支持,同时,很多通用的功能,比如搜索等,直接提供了内置函数供调用,非常方便,以下是Langchain 预置工具列表的一部分(还有很多):
Function Calling局限性
Function calling给了大模型与外界交互的非常好的方法,但同时有它的局限性,包括:
-
函数的定义比较随意,包括输入输出格式等,给Agent的处理带来不少麻烦,基本的结果就是各人自己定义函数各人自己用,各框架定义的函数各框架自己用,缺乏统一性。 -
只能本地调用,不能远程调用,不能跨语言调用。 -
上下文处理非常不方便。 -
一些复杂的资源,尤其是大数据量调用等,用起来并不方便。
简单地说,这是对原有API的一种封装,是一种进步,但不够。
MCP
MCP正是在这一背景下应运而生的。Claude MCP,即模型上下文协议(Model Context Protocol),是 Anthropic Claude 的一个开源开放协议,旨在建立 AI 模型和开发环境之间的统一上下文交互,通过提供标准化的上下文信息访问,使 AI 模型能够更好地理解和处理代码。就像给它们之间搭建了一座桥梁,使得开发者可以通过一套标准将 AI 应用和数据源连接起来 。
MCP的核心思想是:将模型置于一个结构化、信息丰富的上下文环境中,使其能够理解自己的能力边界、可用资源和系统状态,从而做出更明智的交互决策。
如图:MCP 协议支持对本地资源的管理,如电脑里的文件、数据库(像 SQLite 数据库)等。开发人员可以使用 MCP 协议让桌面版 Claude 安全连接本地服务,进行文件的创建、读取、编辑等操作,还能对数据库中的数据进行交互操作,例如查询、更新等 。
对于远程资源,如 GoogleDrive、Slack 等平台的数据,Claude 借助 MCP 协议可以直接进行控制和访问。这使得企业和开发者在构建 AI 应用时,能够轻松整合不同来源的数据,如从商业工具、软件、内容库、应用程序开发环境等各种来源提取资料,协助模型产生与指令更相关的回复 。
理论上,这些功能都可以通过类似Function calling来实现,但代价非常高,而MCP是一种标准方法,有了标准方法,无论对服务端,还是客户端,实现都极为容易 ,也极易扩展。叫它USB不过份,因为USB就是这样一个协议,文件传输,打印,直到网卡,键盘,鼠标,只经遵循这个协议,都可以即插即用。
所以说,这些操作,有了MCP以后,都变得极为简单。
未来前景
有了MCP的AI程序,功能会迅速得到扩展,类似下图:
一旦插上数据的翅膀,大模型的能力会得到极大的发挥,这也是所有用户需要的。
但从另一个角度,MCP没那么神秘,它只是个协议,如果所有人都用,协议的威力将无比强大,但如果有另一个更好的协议,它也可以随时被取代。
基于HTML和TCP/IP的协议主导了互联网时代,在该协议的基础上,网站得到巨大发展,统治了一个时代。后来的Open API支持了移动应用、微服务的发展。但这两种协议都是为以前的应用程序设计的,都不足以支撑AI时代的发展。MCP给出一种可能,就是这种协议可以支撑AI应用的发展,互联网的服务方式将发展根本性变化。
理论上,现在很多应用,比如公有云,对外提供各种API供调用,未来也可以直接提供MCP协议供AI类应用使用。
目前,该协议的主要支持模型还是Anthropic Claude,最近微软的Azure openai也开始支持,已经有一些在互联网上提供MCP协议的服务器在运行,并且发展迅速,说明它已经开始得到认可。
只要更多模型、框架、应用、服务的支持,未来可期。
END
原文始发于微信公众号(AI与安全):MCP(1):协议背景和发展前景
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论