模型上下文协议如何将LLM连接到现实世界
最新一期的《In the Loop》节目深入解析了模型上下文协议(MCP),这是Anthropic在2024年11月推出的开源标准。MCP旨在解决应用人工智能中的一个关键问题:如何将大语言模型(LLMs)与现实世界工具和私有数据连接起来,使其不仅能分析信息,还能根据信息采取行动。
模型上下文协议(MCP)实现的功能
从高层次来看,MCP使大型语言模型能够通过标准化的客户端-服务器协议与外部工具、API和数据源进行交互。目前大多数大型语言模型都是在公共数据上训练的,无法访问专有或实时信息。它们也无法代表用户执行操作。MCP解决了这两个挑战。
通过为模型和系统之间的输入输出定义统一结构,MCP为模型提供了在更复杂环境中运行所需的上下文和控制能力。这种结构使得大语言模型能够获取相关数据并触发特定操作,所有这一切都在一个统一的接口内完成。
MCP 架构
MCP遵循客户端-服务器模型,包含三个关键组件:
- MCP主机: 进行交互的界面。示例包括Cursor或Claude Desktop等开发环境。主机协调模型与工具的交互。
- MCP客户端: 这些客户端在主机与各个服务器之间建立一对一连接,负责维护通信管道。
- MCP服务器: 这些服务器提供特定功能,例如访问文件、API或其他工具。服务器使用MCP标准以确保兼容性。
核心构建模块:提示、资源与工具
MCP标准化了三个核心基础组件,用于驱动模型与外部系统之间的连接:
- 提示词(Prompts): 定义模型应如何响应的模板或指令。这些由用户控制,用于引导大语言模型的行为。
- 资源: 上下文数据,如文件内容或版本历史记录。这些由客户端管理并作为只读输入,类似于REST API中的GET请求。
- 工具: 可执行函数,如写入文件或进行API调用。这些由模型控制,行为类似于POST请求。
这种结构化输入与可调用工具的结合,使LLM能够以更复杂的方式进行推理和行动。
消除冗余工作
在MCP之前,每个新工具的集成通常意味着需要从头开始重建逻辑。这些定制化实现难以复用,且很少能在不同环境中正常工作。MCP通过提供可复用的模块化系统消除了这种重复劳动。它还解决了"N乘以M"问题——即多个客户端应用必须分别与多个服务器进行单独集成的问题。借助MCP,工具和模型可以通过单一的共享协议进行交互。
入门指南
Anthropic发布了多种编程语言的SDK,帮助开发者创建兼容MCP的服务器。Python SDK允许用户通过简单的装饰器定义提示、资源和工具,从而以最少的样板代码快速启动服务器。
本期《In the Loop》节目将逐一介绍这些组件,解释它们如何协同工作,并包含开发者如何在生产环境中使用MCP使LLM发挥更大实际效用的真实案例。
观看完整剧集请点击: