Agent 现状及架构
当前的 AI Agent,无论是和各种 Tools(各类业务服务接口)交互,还是和各类 Memory(各类存储服务接口)交互,亦或是和各类 LLMs(各类大语言模型)交互,都是通过 HTTP 协议的,除了 LLM 因为基本都遵循 OpenAI 范式以外,和其他的 Tools 和 Memory 交互都需要逐一了解它们的返回格式进行解析和适配。当一个 AI 应用包含多个 AI Agent 时,或者一个 AI 应用需要和多个业务服务接口和存储服务接口交互时,整体的开发工作量是很大的,主要体现在 3 个方面:
-
找适合该 AI 应用的业务接口和存储服务接口:
-
解析接口的返回格式:无论是三方服务接口还是公司内部的服务接口,返回格式可能都千奇百怪,需要逐一进行了解和解析。
-
编排多个 AI Agent:有 Dify 这类流程可视化的工具辅助编排,减轻了很多编排工作,但复杂度依然不低,且运行效率和性能方面还是有瓶颈的。通过编码方式做编排(比如使用 Spring AI Alibaba 或 LangChain 等),虽然性能上更优,但是复杂度更高,编排效率和灵活性都有不足。
目前很多 AI 应用就只有少数几个 AI Agent,甚至很多 AI 应用背后就只有一个 AI Agent。这也是目前 AI 应用背后的 AI Agent 依然还处在第一个阶段(Siloed, Single-Purpose Agents)的原因。
MCP(Model Context Protocol,模型上下文协议)是一种由Anthropic公司主导提出的开放协议,旨在标准化大型语言模型(LLM)与外部数据源、工具及服务的交互方式,解决大模型在动态上下文集成与实时任务执行中的难题。
MCP被类比为“大模型的HTTP协议”,其核心目标是通过统一接口实现LLM与外部资源的无缝集成,类似于HTTP标准化浏览器与服务器的交互。它允许模型动态访问数据库、文件系统、第三方API等资源,并调用工具执行特定任务(如实时天气查询、文档生成等)。Anthropic官方将其定义为“AI应用的USB-C接口”,强调其开放性和跨平台兼容性。
架构与组成
MCP采用客户端-服务器架构,包含三个核心角色:
MCP Host(宿主) :集成LLM的应用程序(如Claude桌面端、IDE工具),负责发起请求并管理用户交互。
MCP Client(客户端) :位于Host内部,与MCP Server建立1:1连接,处理协议通信。
MCP Server(服务器) :提供外部资源和工具的服务端实现,支持本地资源(如本地文件)和远程资源(如GitHub API)的接入。
协议分层包括传输层(支持Stdio/HTTP-SSE等)、协议层(基于JSON-RPC 2.0的消息格式)、功能层(定义资源、工具、提示等能力)及安全与生命周期管理层。
核心功能与特性
MCP 帮助你在 LLM 的基础上构建代理(agents)和复杂的工作流。LLM 经常需要与数据和工具集成,而 MCP 提供了:持续增长的预构建集成列表,LLM 可直接使用;灵活切换不同的 LLM 提供商和厂商;在你的基础设施内安全地处理数据的最佳实践;
标准化接口:通过JSON Schema定义资源与工具的输入输出,确保跨系统兼容性。
动态集成:支持实时调用外部工具(如数据库查询、代码执行),模型根据上下文自主决定调用时机与参数。
上下文感知:通过“资源(Resources)”“工具(Tools)”“提示(Prompts)”三类能力,动态注入环境信息以增强模型输出相关性。
安全性:工具执行需用户确认,支持TLS加密、数据隐私保护及权限控制。
MCP核心概念信息
MCP(大模型上下文协议)通过资源(Resources)、工具(Tools)和提示(Prompts)三个核心概念,为大模型与外部环境的交互提供了标准化的框架,从而实现更高效、灵活和安全的上下文管理。
资源(Resources):资源是MCP中定义的数据实体,可以是文件、数据库记录、API响应或内存中的对象等。这些资源通过URI(统一资源标识符)提供给客户端访问,使得大模型能够获取和操作外部数据。资源允许大模型访问和操作外部数据源,如读取本地文件系统中的文档、访问数据库中的记录或获取第三方API的响应数据。这种能力极大地扩展了大模型的应用范围,使其能够处理更复杂的任务。
工具(Tools):工具是MCP中定义的可执行功能,允许大模型调用外部服务或执行特定任务。这些工具可以执行从简单计算到复杂系统交互的各种操作,从而扩展大模型的能力。工具使大模型能够执行数据库查询、调用外部API、操作文件系统或执行计算任务等。通过工具,模型可以与外部系统进行交互,完成复杂的任务。提示(Prompts):提示是MCP中提供的上下文增强信息,用于指导大模型生成特定类型的输出。这些提示可以是预定义的模板、指南或动态生成的内容,帮助模型更好地理解任务需求并生成符合要求的输出。提示为大模型提供了任务指令模板、领域知识上下文和输出格式化指南,使其能够生成更准确、更相关的响应。通过提示,模型可以更好地适应不同的任务需求,提高生成内容的质量。
通过资源、工具和提示三个核心概念,MCP为大模型与外部环境的交互提供了强大的支持,使得大模型能够更高效、灵活和安全地处理上下文信息,从而推动大模型技术的进一步发展和应用。
工作原理与生命周期
MCP 协议的工作原理通常包括以下几个关键步骤:
上下文切换:通过协议管理不同任务或数据源的上下文切换。例如,当一个模型同时处理文本、图像和语音时,每个数据源或任务可以被视为一个独立的上下文。MCP 协议确保模型能够根据当前任务的需要切换上下文,并提取相关的知识进行处理。
上下文标识:为了区分不同的上下文,MCP 会为每个上下文分配一个唯一的标识符。这些标识符用于区分来自不同任务或数据源的输入和输出,以便模型能够根据需要进行正确的响应。
上下文共享:在处理多个上下文时,模型需要能够在不同上下文之间共享信息。例如,某一上下文中的知识可能对其他上下文有用,MCP 协议允许模型在上下文之间传递相关的信息,优化任务的执行效率。
上下文状态管理:每个上下文都有自己的状态(如已处理的信息、模型的当前状态等)。MCP 协议确保模型能够正确地维护每个上下文的状态,并在切换上下文时保持一致性。例如,在长时间的对话或多轮交互中,MCP 协议确保模型能够记住之前的对话内容,以便进行有意义的后续对话。
MCP 协议的生命周期可以被分为以下几个阶段:
启动阶段:系统创建并初始化一个新的上下文对象,通常会根据模型的任务需求设定初始的上下文内容。这个阶段的核心目标是为接下来的推理过程准备好所需的上下文信息。
交互阶段:模型通过不断接受新的输入(如文本、语音等)与用户进行交互。每次用户输入或任务更新时,MCP 协议会更新当前上下文,可能会进行扩展或切换。
对话历史、用户意图、回答生成等都在此阶段处理。
更新与维护阶段:在多轮对话或长时间运行的任务中,MCP 协议会周期性地更新上下文。比如,当上下文变得过大时,系统会进行清理或压缩,保留最有用的信息,删除不再相关的部分。
结束阶段:当任务结束或对话完成时,MCP 协议会终止当前上下文的生命周期。这通常意味着上下文信息被丢弃,模型进入一个清理或重置状态,为下一个任务做准备。
回顾与学习阶段:某些应用中,MCP 协议还可能包括回顾和学习的机制。系统可以根据历史上下文学习改进生成模型的能力,例如,通过分析哪些信息对正确答案贡献最大,从而优化未来的上下文处理策略。
本质和挑战
模型上下文协议(Model Context Protocol)并不是一个确定的数据格式或数据结构,它是描述 MCP Server/MCP Tool 信息的系统提示词和 MCP Server 与 LLM 之间的协同关系的结合,解决的是找接口和解析接口的问题。
上下文容量限制:信息的丢失或错误管理:对于长时间、复杂的对话或任务,模型可能需要不断压缩或丢弃部分上下文信息,从而无法处理长时间的依赖关系或跨越多个对话回合的任务。MCP协议在上下文信息的传递、更新和管理过程中,可能会出现一些信息丢失的情况,特别是在动态调整上下文的过程中。如果某些重要的上下文信息在更新时被错误地删除或忽视,可能导致模型无法正确理解新的输入。
计算和内存开销:管理复杂上下文的过程中,尤其是在大规模对话或任务执行时,MCP协议可能会带来较高的计算和内存开销。随着上下文的逐步扩展和更新,模型可能需要更大的内存和更长的计算时间来维护和优化上下文。虽然有些优化方法可以减少内存使用,例如动态裁剪不必要的上下文,但在长时间运行的任务中,仍然存在资源瓶颈。
对话中的情感与意图理解:在多轮对话中,不仅仅是文本本身,情感和意图的理解也是非常重要的。MCP协议的管理主要集中在文本内容的上下文中,但可能在捕捉对话中的情感变化、用户意图变化等方面有所不足。如果MCP协议无法处理和理解情感、语气变化等信息,可能会导致模型做出不合适的回应或产生情感上的误解。
核心应用场景
复杂的多轮对话系统(如客服、虚拟助手):在与用户的长时间、多主题交互中,模型需要准确记住之前的对话内容、用户的偏好、已经达成的共识或解决的问题。
MCP应用:MCP可以定义一个标准的格式来封装对话历史、用户画像标签、会话状态(如当前意图、已收集信息槽位等)。这使得无论对话系统内部架构如何(例如,可能涉及多个模型或服务),上下文都能被一致地理解和传递,确保对话的连贯性和个性化。
多智能体协作系统(Multi-Agent Systems): 多个AI智能体(Agent)需要协同工作完成一个复杂任务(如项目规划、联合研究),它们之间需要共享信息、传递中间结果和各自的状态。MCP可以作为智能体之间通信的上下文载体标准。一个智能体可以将它的当前状态、已完成的子任务、需要其他智能体协助的信息等打包成MCP格式,发送给协作方。接收方可以解析这个标准化的上下文,理解协作需求,并基于此进行下一步行动,提高协作效率和准确性。
跨应用/跨平台任务流转:用户可能在一个应用(如网页端)开始一项任务(如预订机票),然后在另一个应用(如手机App)上继续或完成。这要求任务状态和上下文信息能够在不同平台间无缝流转。MCP可以定义一个通用的任务上下文格式,包含任务进度、已填写的表单信息、用户的选择等。当用户切换平台时,系统可以将当前任务的MCP上下文包传递过去,新的应用或平台可以解析并恢复任务状态,提供连续的用户体验。
服务资源
Anthropic 官方 MCP Server
https://github.com/modelcontextprotocol/servers
Anthropic 官方主导的 MCP Server项目,堪称一座宝藏仓库,收纳了形形色色 MCP 服务器的参考范例。该仓库聚焦于 Model Context Protocol(MCP)服务器相关内容,涵盖了 MCP 参考实现及社区构建的服务器等资源。这里展示了 MCP 的灵活性与可扩展性,其能使大语言模型安全且可控地访问工具和数据源。服务器采用 Typescript 或 Python MCP SDK 实现。同时提供框架及相关资源,包含使用和创建服务器的说明,同时该仓库也欢大家贡献支持。
阿里云百炼MCP:一站式体验智能体应用开发+MCP服务
https://bailian.console.aliyun.com/
阿里云百炼平台推出的MCP(模型上下文协议)服务,是面向大模型应用开发的全生命周期解决方案,旨在降低智能体构建门槛。该服务通过标准化协议打通大模型与外部工具的交互通道,开发者无需编写代码即可快速整合天气、地图、导航等50余款主流MCP工具链。
mcp.so : Awesome MCP Server平台
https://mcp.so/
mcp.so 是一个社区驱动的平台,收集并整理第三方 MCP 服务器,是 AI 应用相关 MCP 服务器的中央目录,方便用户发现、分享和了解。这里有多达 8492 个 MCP 服务器,涵盖多种类型,如可部署 HTML 内容的 EdgeOne Pages MCP、能进行语音和视频生成交互的 MiniMax MCP 等。
火山引擎大模型生态广场
https://www.volcengine.com/mcp-marketplace
火山引擎大模型生态广场 目前已上线 100+ MCP Server,集成丰富的火山引擎官方云服务及优质三方生态工具。同时支持用户结合火山方舟大模型服务,快速跳转至火山方舟或其他支持 MCP 协议的平台(如 Trae、Cursor、Python 等),助力企业开发者精准打造符合自身业务场景的 AI 大模型应用,打通大模型应用落地的 “最后一公里”。
mcpservers
https://www.mcpservers.cn/servers
MCP中文社区还提供了多种服务,涵盖云存储、浏览器自动化、知识与记忆、金融、文件系统、位置服务、安全、日历管理、通信、数据库和AI聊天机器人等领域。无论你的需求涉及哪个领域,MCP平台都能为你提供丰富的资源和强大的支持,帮助你快速实现项目目标并提升开发效率。
MCP(Model Context Protocol,模型上下文协议)的发展前景,随着Al技术和大模型应用场景的不断扩展,更多企业和开发者将基于MCP构建多元化应用,推动跨平台、跨数据源的互联互通。随着实践不断深入,MCP协议标准会不断完善,进一步提升安全性和扩展性。从数据查询、任务协同到复杂的自动化流程管理,MCP将在更多垂直领域发挥关键作用,为A Agent时代带来更高效、更智能的解决方案。MCP通过标准化协议重构了AI与数据的交互方式,降低了开发门槛,为A!技术的普及和应用提供了更多可能性。预计到2025年,60%的LLM应用将采用MCP实现数据集成。表明MCP能提升开发效率,激发更广泛的开发者社区参与,催生更多创新的AI应用。
|
||
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
相关文章推荐
说明:本文部分文字与图片资源来自于网络,分享此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即后台留言通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意。
原文始发于微信公众号(CIO之家):MCP:大模型时代的USB接口
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论