|
由于 Agent 的火爆,Anthropic 提出的MCP (Model Context Protocol,模型上下文协议) 也跟着火爆起来,关于 MCP 的资料很多,这一篇是 MCP servers 的作者 Mahesh Murag 今年 2 月底在 AI Engineer Summit 上的分享,内容丰富又硬核,推荐,唯一美中不足的是里面的观众提问有点多,视频整体节奏没那么好。 分享主题:MCP (Model Context Protocol) 及其在 AI 应用和 Agent 中的应用 1. MCP 的动机与背景: 核心概念:模型的能力取决于提供的上下文。 演进:从最初的 Chatbot 手动输入上下文,发展到模型直接连接数据源和工具,实现更强大和个性化的 AI 应用。 MCP 的目标:作为一个开放协议,实现 AI 应用、Agent 与工具和数据源之间的无缝集成。 2. MCP 的类比与构成: 类比API:标准化 Web 应用前后端交互的方式。 类比LSP(Language Server Protocol): 标准化 IDE 与编程语言特定工具的交互方式。 MCP 的三个主要接口: -Prompts: 「用户」控制的预定义模板,用于常见交互。 -Tools: 「模型」控制的工具,LLM 可以自主决定何时调用。 -Resources: 「应用」控制的数据,应用可以灵活使用。 注:这三个接口分别是由「用户」、「模型」、「应用」三方控制的,是非常精辟的总结。 3. MCP 解决的问题:碎片化 问题:不同团队构建 AI 系统的方式各不相同,导致碎片化,重复造轮子。 MCP 的愿景:标准化 AI 开发,应用开发者可以零成本连接到任何 MCP Server。 MCP Server(服务器端):对各种系统和工具的封装,为 LLM 提供访问接口。 例如数据库、CRM 系统、版本控制系统等。 MCP Clients(客户端):类似 Cursor、Windsurf 和 Goose 等应用程序。 4. MCP 的价值: -应用开发者:一旦应用兼容 MCP,即可连接任何 Server,无需额外工作。 -工具/API 提供者:构建一次 MCP Server,即可被各种 AI 应用采用。 -最终用户:获得更强大、上下文更丰富的 AI 应用。 -企业:明确划分不同团队的职责,加速 AI 应用开发。 例如,数据基础设施团队负责维护 MCP Server,应用团队专注于构建 AI 应用。 5. MCP 的采用情况: AI 应用和 IDE 领域,例如 Github、文档站。 Server 端,已有一千多个社区构建的 Server,以及 Cloudflare、Stripe 等公司的官方集成。 开源社区的积极贡献。 6. 构建 MCP 应用: -MCP Client(客户端):调用 Tool,查询 Resource,填充 Prompt。 -MCP Server(服务器端):暴露 Tool、Resource 和 Prompt,供 Client 使用。 7. Tool、Resource 和 Prompt 的详细解释: Tool: -模型控制,LLM 决定何时调用。 - 用于检索数据、发送数据、更新数据库、写入文件等。 Resource: - 应用控制,应用决定如何使用。 - 用于提供图片、文本文件、JSON 数据等。 - 支持静态和动态资源。 - 支持资源通知,Server 可以主动通知 Client 更新。 Prompt: - 用户控制,用户手动调用。 - 用于定义常见交互的模板,例如文档问答、代码总结等。 8. MCP 与 Agent 的关系: MCP 是 Agent 的基础协议。 Augmented LLM(增强型LLM): LLM 与检索系统、工具和记忆的结合。 MCP 提供了 LLM 与这些组件交互的标准化方式。 Agent 的核心: Augmented LLM 运行在一个循环中,不断执行任务、调用工具、分析结果。 MCP 的作用: 使 Agent 具备可扩展性,可以在运行时发现新的能力。 9. mcp-agent 框架介绍(by LasMile AI): 展示了如何使用 MCP 构建 Agent 系统。 提供了一套用于构建 Agent 的组件:Agent、Task。 简化了 Agent 的构建过程,使开发者可以专注于 Agent 逻辑本身。 通过声明式方式声明 Agent 的任务以及可用的 Server 和 Tool。 10. Agent 的协议能力: Sampling (推断请求): MCP Server 可以请求 Client 执行 LLM 推理调用,而无需 Server 自行集成 LLM。 Composability (可组合性): 任何应用或 API 都可以同时作为 MCP Client 和 MCP Server。 11. MCP 路线图: -远程服务器和 Auth: 支持 OAuth 2.0 认证,Server 负责处理认证流程。 实现远程托管的 Server,无需用户手动安装和配置。 通过 Session Token 实现 Client 和 Server 的安全交互。 -注册表(Registry): 统一托管的元数据服务,用于发现和管理 MCP Server。 解决 Server 的发现和发布问题。 支持版本控制、身份验证、安全验证等功能。 强调开发体验和文档。 |