自 2024 年 11 月 25 日 Anthropic 的 MCP(模型上下文协议)项目公开发布以来,它就像一颗新星在 AI 领域迅速崛起,吸引了无数技术爱好者的目光。

我一直在密切关注着这个项目,因为它不仅带来了技术上的革新,更预示着 AI 代理和代理系统未来发展的新方向。

今天,我想和大家深入探讨一下 MCP,分享它为何值得我们投入时间和精力去研究,以及它将如何深刻地改变我们的技术世界。接下来的内容,将为你揭开 MCP 的神秘面纱,带你领略它的魅力与潜力。

AI Agent 和 Agentic System

让我们先来简单回顾一下 AI Agent 和代理系统(Agentic System)的基本概念。在当今的 AI 世界里,AI 代理就像是一个以 LLM(大型语言模型)为心脏的智能体,它凭借 LLM 强大的推理能力,精准地分析用户的需求,并规划出一系列行动步骤来达成目标。

想象一下,AI 代理就像是一位经验丰富的侦探,面对复杂的案件(用户的需求),它能够抽丝剥茧,一步步找到解决问题的线索(行动步骤)。而构成这个智能侦探的,主要有以下几个关键部分:

  • 规划(Planning):这是 AI 代理的大脑在思考,它要规划出一系列行动,就像制定作战计划一样,来解决用户提出的难题。比如,你问 AI 代理如何制作一杯拿铁咖啡,它就会规划出“准备咖啡豆、磨豆、萃取浓缩咖啡、蒸奶、混合”等一系列步骤。
  • 内存(Memory):短期和长期的记忆存储,这里存放着 AI 代理在推理过程中可能用到的各种信息。这些信息会随着系统提示符传递给 LLM,就像是给侦探提供了案件相关的背景资料,帮助它更好地理解情况并做出决策。
  • 工具(Tools):这是 AI 代理的“工具箱”,里面装着各种各样的工具,可以是代码中定义的简单函数,也可以是 VectorDB 这样的数据存储,或者是常规机器学习模型的 API,甚至其他代理也能成为它的工具。这些工具就像是侦探手中的放大镜、指纹检测仪等,帮助它更高效地完成任务。

不过,并非所有的 Agentic Systems(代理系统)都拥有完全的自主权去在环境中执行任务。Anthropic 提出了“增强 LLM(Augmented LLMs)”的概念,这种情况下,LLM 作为推理引擎的应用程序,只掌控工具和内存,而规划的权力则交给了代码中的拓扑结构,LLM 只能按照既定的规则去执行。

什么是 MCP?

那么,MCP 到底是什么呢?Anthropic 给出了明确的定义:MCP 是一种开放协议,旨在标准化应用程序向 LLM 提供上下文的方式。说得更直白一点,它就像是一个通用的接口,让基于 LLM 的应用程序能够更顺畅地与其他环境进行集成。

在 Agentic 系统中,AI Agent 或增强 LLM 可以通过多种途径提供上下文,比如外部数据(长期记忆的一部分)、工具(系统与环境交互的能力)、动态提示(作为系统提示符的一部分注入)等等。而 MCP 的出现,就是为了把这些复杂的交互过程规范化,让它们变得更加高效和统一。

MCP 的架构可以分为几个关键部分:

  • MCP 主机:这是以 LLM 为核心的应用程序,它希望通过 MCP 去访问各种数据。
  • MCP 客户端:它与服务器保持着一对一的紧密连接,就像是一个忠实的信使,负责传递信息。
  • MCP 服务器:这是一个轻量级的程序,通过标准化的模型上下文协议,公开特定的功能。它就像是一个多功能的工具箱,为应用程序提供了各种各样的工具和资源。
  • 本地数据源:这些是 MCP 服务器可以安全访问的本地资源,比如计算机文件、数据库和服务。
  • 远程数据源:这些是通过互联网(例如 API)连接的外部系统,MCP 服务器可以与之交互,获取更广泛的数据。

为什么需要标准化?

你可能会问,现在已经有这么多 Agent 框架了,为什么还需要 MCP 来标准化呢?原因很简单,目前的开发流程实在是太混乱了。不同的 Agent 框架虽然各有特色,但这些微小的差异并没有带来足够的价值,反而让开发者在编写代码时需要不断调整方式。与外部数据源的集成更是五花八门,即使在同一个组织内部,也常常使用不同的协议。工具的定义和附加方式也因框架而异,这无疑增加了开发的复杂性和成本。

而 MCP 的出现,就像是在混乱的交通中设立了一套统一的交通规则。它的目标是提高我们使用 Agentic 应用程序进行创新的速度,增强对这些应用程序的保护,以及简化将相关数据引入上下文的过程。想象一下,如果所有的应用程序都能按照统一的标准去交互,那么开发效率将大大提高,数据的安全性和可靠性也将得到更好的保障。

通过 MCP 分担控制责任

MCP 服务器公开了三个主要元素,这些元素是精心设计的,有助于实现特定的控制分离:

  • 提示(Prompts):这部分是用户可以掌控的。服务器的程序员可以精心设计特定的提示,这些提示与服务器公开的数据紧密相关,然后通过 LLM 注入到应用程序中,并展示给用户。这就像是给用户提供了定制化的提示,帮助他们更好地与系统交互。
  • 资源(Resources):这部分是由应用程序来控制的。资源可以是任何类型的数据,无论是文本还是二进制格式。应用程序的程序员(通常是 AI 工程师)需要决定应用程序如何使用这些信息。这个过程通常是手动的,LLM 并不参与其中的选择。
  • 工具(Tools):这部分是由模型来控制的。如果我们要为应用程序提供代理,让它知道如何与环境交互,那么工具就是实现这一目标的关键。MCP Server 公开了一个端点,可以列出所有可用的工具及其描述和所需的参数。应用程序可以将这个列表传递给 LLM,让 LLM 决定在处理手头的任务时需要哪些工具,以及如何调用它们。

这种控制分离的设计,就像是在一个复杂的工程项目中,将不同的任务分配给不同的团队,每个团队都专注于自己最擅长的部分,从而提高了整个系统的效率和可靠性。

使用 MCP 发展 AI 代理架构

为了更直观地展示 MCP 如何改变 Agentic 应用程序的架构,我们可以以一个非常简单的 Agentic RAG(Retrieval-Augmented Generation,检索增强生成)为例。

Agentic RAG

这个系统的运作流程大致如下:

  1. 分析用户查询:我们先把用户的原始问题传递给基于 LLM 的代理进行分析。在这个过程中,原始问题可能会被重写,有时甚至要重写多次,以生成一个或多个更精确的查询,这些查询将被传递到下游流程。同时,代理还会决定是否需要额外的数据源来回答这个问题。
  2. 检索步骤:如果确实需要额外的数据,那么检索步骤就会被触发。在 Agentic RAG 的场景中,可能会有一个或多个代理负责确定应该访问哪些数据源。这些数据源可以是实时用户数据(比如用户的当前位置)、用户可能感兴趣的内部文档,或者是网络上的数据等等。
  3. 生成答案:如果不需要额外的数据,我们就直接通过 LLM 生成答案(或者多个答案,或者是一组操作)。
  4. 分析、总结和评估答案:生成的答案会被仔细分析、总结,并评估其正确性和相关性。如果代理认为答案已经足够好,那么就会将它返回给用户;如果答案还需要改进,我们就会尝试重写用户的问题,然后重复生成循环。

Agentic RAG 与 MCP 服务器

现在,如果我们引入 MCP 服务器,情况就会大不相同。MCP 服务器可以面对检索过程中所有相关的数据源,通过工具来处理检索逻辑。因为 LLM 会“选择”哪些数据源对系统来说是相关的,这就让整个过程变得更加智能和高效。

这种方法带来了许多好处:

  • 我们将检索逻辑与 Agentic 系统的拓扑结构解耦,这就像是把两个原本紧密相连的齿轮分开,让它们可以独立运转。
  • 我们可以独立地发展检索组件,比如引入额外的工具、添加新的数据源,或者对现有的工具和数据源进行版本控制、演变和回滚。这就像是在一个乐高积木的世界里,你可以随时添加新的积木,或者替换掉旧的积木,而不会影响到整个建筑的结构。
  • 我们可以通过 MCP 服务器来管理数据的安全性和访问权限,这就像是给数据加上了一道坚固的防线,确保只有授权的人才能访问。
  • 一个独立的团队可以专注于他们负责的数据,而不会干扰到主 Agentic 拓扑的开发。这就像是在一个大型的项目团队中,不同的小组可以各自负责自己的任务,而不会相互干扰,提高了整个团队的效率。

在大型企业中架构的演变

随着企业规模的不断扩大,不同的团队开始拥有特定的数据资产,比如 CRM 数据、财务数据、实时网络点击流数据等等。在这样的情况下,管理这些分散的数据源变得异常困难,而 MCP 的出现就像是及时雨,带来了巨大的价值。

  • 每个数据域都可以管理自己的 MCP 服务器,这就像是每个小组都有自己的工具箱,可以随时使用里面的工具。
  • 所有的 MCP 服务器都将使用相同的协议,这就像是大家都说同一种语言,沟通起来更加顺畅。

由于上述原因,基于 LLM 的应用程序的集成工作将大大减少。AI 工程师可以继续专注于 Agent 的拓扑结构,而不用担心数据源的集成问题。在我看来,这是使用 MCP 的最大优势之一。它允许在大型项目中对系统进行解耦,不同的团队可以在自己的领域上工作,而不会干扰主 Agentic 拓扑的开发。这就像是在一个大型的建筑工地上,不同的施工队伍可以同时工作,而不会相互干扰,大大提高了整个项目的进度。

MCP 的未来规划

在未来 6 个月的规划公共路线图中,MCP 项目将会在云原生方面发力,主要包括身份验证和授权、服务发现等内容。同时,对 Agentic Systems 未来支持的重点是分层代理系统、交互式工作流程(以改善人机交互)以及结果流。这些规划都预示着 MCP 将会变得更加智能、更加高效,为我们的技术世界带来更多的可能性。

总结

虽然 MCP 目前还处于发展的初期阶段,它的边缘仍然相对粗糙,但它的未来规划看起来确实很有希望。而且,该项目得到了 Anthropic 的大力支持,这也为它在未来的发展中描绘了光明的前景。

因此,我强烈建议大家密切关注这个项目,并且可以考虑开始采用它。相信在不久的将来,MCP 将会成为 AI 代理和代理系统领域的一个重要组成部分,为我们带来更多的惊喜和创新。

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐