Google 智能体设计模式:模型上下文协议 (MCP)

1. 背景与动机

  • LLM 要成为真正有效的 Agent,必须超越文本生成,具备与外部环境交互的能力:
    • 访问实时数据
    • 使用外部软件
    • 执行具体操作任务
  • MCP(Model Context Protocol) 提供了一个开放标准化接口,使 LLM 能与外部系统、数据库、工具交互,确保集成的一致性和可预测性。

2. MCP 模式概述

  • 类比 通用适配器:让任何 LLM 无需定制即可连接任意外部系统。
  • 目标:统一 Gemini、GPT、Claude、Mixtral 等 LLM 与外部应用/数据源的通信方式。
  • 架构 :客户端-服务器模式
    • MCP 服务器:公开资源(数据)、提示模板、工具(函数)
    • MCP 客户端:LLM 宿主应用或 Agent,负责发现和调用
  • 优势:降低集成复杂性,提升互操作性和可重用性。

3. 设计挑战与注意事项

  • API 设计质量决定 MCP 效果
    • 若底层 API 仅简单包装遗留接口,可能效率低下(如票务系统逐条检索)。
    • 应提供过滤、排序等确定性功能,帮助非确定性 Agent 高效工作。
  • 数据可理解性
    • MCP 仅是连接机制,若 API 返回 Agent 无法解析的数据(如 PDF),则无效。
    • 应提供结构化、可读格式(如 Markdown 文本)。

4. MCP 与工具函数调用的对比

特性 工具函数调用 模型上下文协议(MCP)
标准化 专有、供应商特定 开放标准,跨 LLM/工具互操作
范围 直接调用预定义函数 广泛框架,支持发现与通信
架构 一对一交互 客户端-服务器,多工具可组合
发现 需显式告知可用工具 支持动态发现
可重用性 与特定应用紧耦合 可重用独立 MCP 服务器
  • 类比:
    • 工具函数调用 = 固定工具箱(螺丝刀、扳手)
    • MCP = 通用电源插座系统,允许无限扩展工具生态

5. MCP 的关键要素

  • 资源:静态数据(数据库记录、文件)
  • 工具:可执行操作(发邮件、调用 API)
  • 提示:交互模板,指导 LLM 如何使用资源/工具
  • 可发现性:客户端可动态查询服务器能力
  • 安全性:需身份验证与权限控制
  • 错误处理:必须定义失败反馈机制
  • 部署模式:本地 vs. 远程服务器
  • 交互模式:按需实时 vs. 批处理
  • 传输机制:本地用 JSON-RPC over STDIO,远程用 HTTP/SSE

6. MCP 交互流程

  1. 发现:客户端查询服务器 → 返回工具/资源清单
  2. 请求制定:LLM 选择工具并生成调用参数
  3. 客户端通信:转化为标准化请求
  4. 服务器执行:验证、调用底层 API
  5. 响应与上下文更新:返回结果,LLM 更新上下文继续任务

7. 实际应用场景

  • 数据库集成:查询 Google BigQuery 等实时数据
  • 生成媒体编排:调用 Imagen(图像)、Veo(视频)、Chirp 3 HD(语音)、Lyria(音乐)
  • 外部 API 调用:天气、股票、CRM 系统
  • 信息提取:基于推理的精准条款/数据抽取
  • 自定义工具开发:通过 FastMCP 公开内部函数
  • 标准化通信:减少不同 LLM 与应用间的集成开销
  • 复杂工作流编排:跨数据库、媒体生成、邮件发送的多步骤任务
  • 物联网控制:智能家居、工业传感器、机器人
  • 金融服务自动化:交易、合规报告、个性化建议

8. 经验法则

  • 适用场景
    • 构建复杂、可扩展、需与多外部系统交互的 Agent
    • 需要跨 LLM/工具互操作性
    • 需要动态发现新能力
  • 不适用场景
    • 简单应用,仅需少量固定函数 → 工具函数调用即可

9. 关键要点总结

  • MCP 是开放标准,标准化 LLM 与外部系统的通信
  • 基于客户端-服务器架构,公开资源、工具、提示
  • 支持动态发现、可重用性和跨系统互操作
  • ADK 与 FastMCP 提供了便捷的开发与集成方式
  • MCP 让 Agent 能访问实时数据、执行操作、控制设备,超越文本生成
相关推荐
Asort3 小时前
JavaScript设计模式(九)——装饰器模式 (Decorator)
前端·javascript·设计模式
小小前端_我自坚强3 小时前
2025WebAssembly详解
前端·设计模式·前端框架
笨手笨脚の3 小时前
设计模式-责任链模式
设计模式·责任链模式·行为型设计模式
笨手笨脚の6 小时前
设计模式-策略模式
设计模式·策略模式·行为型设计模式
王嘉俊9256 小时前
设计模式--适配器模式:优雅解决接口不兼容问题
java·设计模式·适配器模式
王嘉俊9256 小时前
设计模式--组合模式:统一处理树形结构的优雅设计
java·设计模式·组合模式
rongqing20196 小时前
Google 智能体设计模式:多智能体协作
设计模式
李广坤21 小时前
状态模式(State Pattern)
设计模式
李广坤1 天前
观察者模式(Observer Pattern)
设计模式