Agentic Protocols

随着人工智能代理的广泛应用,确保标准化、安全性以及支持开放创新的协议需求日益增长。本篇将介绍三种满足这些需求的协议:模型上下文协议(Model Context Protocol,简称 MCP)、代理间通信协议(Agent to Agent,简称 A2A)以及自然语言网页协议(Natural Language Web,简称 NLWeb)。

课程介绍

本课程内容包括:

  • MCP 如何使 AI 代理访问外部工具和数据以完成用户任务。
  • A2A 如何实现不同 AI 代理之间的通信与协作。
  • NLWeb 如何为任何网站带来自然语言接口,使 AI 代理能够发现并交互网站内容。

学习目标

  • 识别 MCP、A2A 和 NLWeb 在 AI 代理中的核心目的和优势。
  • 解释每种协议如何促进大型语言模型(LLM)、工具和其他代理之间的通信与交互。
  • 理解各协议在构建复杂代理系统中的独特角色。

模型上下文协议(MCP)

MCP 是一种开放标准,提供了应用程序向大型语言模型(LLM)提供上下文和工具的标准化方式。它充当了连接不同数据源和工具的“通用适配器”,使 AI 代理能够以一致的方式接入。

MCP 核心组件

MCP 采用客户端-服务器架构,主要组成包括:

  • 主机(Hosts):启动与 MCP 服务器连接的 LLM 应用,如代码编辑器 VSCode。
  • 客户端(Clients):主机内维护与服务器一对一连接的组件。
  • 服务器(Servers):轻量级程序,暴露特定功能。

协议中定义了三种核心能力:

  • 工具(Tools):AI 代理调用以执行操作的独立功能,如天气查询或商品购买。
  • 资源(Resources):只读数据项或文档,客户端可按需获取,如文件内容、数据库记录。
  • 提示(Prompts):预定义模板,支持更复杂的工作流程。

MCP 优势

  • 动态工具发现:代理可动态获取服务器提供的工具列表及描述,避免传统 API 静态编码带来的维护负担。
  • 跨 LLM 互操作性:支持不同大型语言模型,便于切换和性能优化。
  • 标准化安全机制:统一认证方式,简化多服务器访问管理。

MCP 应用示例

以用户通过 AI 助手预订航班为例:

  1. AI 助手(MCP 客户端)连接航空公司提供的 MCP 服务器。
  2. 客户端查询服务器可用工具,如“搜索航班”、“预订航班”。
  3. 用户请求搜索从波特兰到檀香山的航班,助手调用“搜索航班”工具并传递参数。
  4. MCP 服务器调用航空公司内部 API,返回航班信息给助手。
  5. 用户选择航班后,助手调用“预订航班”工具完成预订。

代理间通信协议(A2A)

A2A 协议在 MCP 基础上进一步实现不同 AI 代理间的通信与协作,支持跨组织、跨环境和不同技术栈的代理共同完成任务。

A2A 核心组件

  • 代理卡(Agent Card):类似 MCP 服务器的工具列表,包含代理名称、任务描述、技能列表、当前端点 URL、版本及功能信息。
  • 代理执行器(Agent Executor):负责将用户对话上下文传递给远程代理,远程代理使用自身 LLM 解析请求并执行任务。
  • 工件(Artifact):远程代理完成任务后生成的结果,包含工作内容描述和文本上下文,发送后连接关闭。
  • 事件队列(Event Queue):处理消息传递和更新,确保任务完成前连接不中断。

A2A 优势

  • 增强协作:不同厂商和平台的代理可共享上下文,协同自动化工作。
  • 模型选择灵活:每个代理可选择最适合的 LLM,支持定制化优化。
  • 内置认证:协议自带安全认证框架,保障代理交互安全。

A2A 应用示例

在旅行预订场景中:

  1. 用户向“旅行代理”发出包含航班、酒店和租车的综合预订请求。
  2. 旅行代理使用 LLM 分析任务,识别需调用其他专业代理。
  3. 通过 A2A 协议连接“航空代理”、“酒店代理”和“租车代理”。
  4. 各专业代理执行对应任务,利用自身 LLM 和工具完成预订。
  5. 旅行代理汇总所有结果,向用户返回完整的预订信息。

自然语言网页协议(NLWeb)

网站是用户获取信息的主要渠道。NLWeb 通过自然语言接口,使网站内容可被 AI 代理发现和交互。

NLWeb 组件

  • NLWeb 应用(核心服务代码):处理自然语言查询,驱动网站的自然语言功能。
  • NLWeb 协议:定义网站自然语言交互的基本规则,返回 JSON 格式响应,构建“AI 网页”的基础。
  • MCP 服务器:NLWeb 同时作为 MCP 服务器,向 AI 系统共享工具和数据,融入代理生态。
  • 嵌入模型:将网站内容转换为向量表示,便于计算机比较和检索。
  • 向量数据库:存储内容向量,支持快速检索相关信息,兼容多种存储系统。

NLWeb 应用示例

以旅行预订网站为例:

  1. 网站产品目录通过 Schema.org 格式化,数据被 NLWeb 工具处理并存入向量数据库。
  2. 用户通过聊天界面输入自然语言查询,如“帮我找下周在檀香山带泳池的亲子酒店”。
  3. NLWeb 应用将查询发送给 LLM 理解,同时检索向量数据库获取相关酒店信息。
  4. LLM 结合检索结果,生成准确且基于真实数据的自然语言回复。
  5. 外部 AI 代理可通过 MCP 方法直接查询网站,如询问“檀香山附近有哪些酒店推荐素食餐厅?”,NLWeb 返回结构化 JSON 响应。

进一步交流

欢迎加入 Microsoft Foundry Discord 与其他学习者交流,参加答疑时间,解决您的 AI 代理相关问题。

参考资源