Skip to content

智能体协议 MCP/A2A/NLWeb

课程视频预览

随着智能体规模日益增长,我们需要统一的协议来保障标准化、安全性与开放创新。本节聚焦三种协议:MCPA2ANLWeb

引言

  • MCP:让智能体以统一方式访问外部工具与数据;
  • A2A:让不同智能体之间可以通信协作;
  • NLWeb:为网站提供自然语言接口,使智能体可发现并交互内容。

学习目标

  • 识别 MCP、A2A、NLWeb 的核心用途与优势;
  • 说明各协议如何帮助 LLM、工具与智能体之间沟通;
  • 理解它们在搭建复杂智能体系统中的角色分工。

Model Context Protocol(MCP)

MCP 是一种开放标准,为应用提供向 LLM 暴露上下文与工具的统一方式,相当于智能体访问异构数据源的“万能适配器”。

核心组件

MCP 基于 客户端-服务器 架构,包括:

  • Host:发起连接的宿主应用,如 VSCode 等;
  • Client:宿主中的组件,与 MCP Server 建立一对一连接;
  • Server:暴露特定能力的轻量程序。

协议定义了三类能力:

  • Tools:可调用的动作/函数(如查询天气、下单);
  • Resources:只读数据,如文件、数据库记录;
  • Prompts:预定义提示模板,便于创建复杂工作流。

优势

  • 动态工具发现:智能体可动态获取工具列表与说明,无需针对每个 API 手工适配;
  • 跨模型互操作:支持切换不同 LLM;
  • 安全统一:内置认证机制,避免管理多套密钥。

示例

MCP 架构示意

例如航司通过 MCP Server 提供“搜索航班”“预订航班”工具:

  1. 客户端连接航司 MCP Server;
  2. 发现可用工具;
  3. 用户请求“查询波特兰到火奴鲁鲁”,智能体调用对应工具;
  4. MCP Server 调用内部 API 并返回结果;
  5. 用户确认后继续调用“预订”工具完成下单。

Agent-to-Agent 协议(A2A)

MCP 解决“智能体→工具”的连接,而 A2A 则负责“智能体↔智能体”的协作,尤其适用于跨组织、跨技术栈的任务协同。

核心组件

  • Agent Card:类似工具清单,包含名称、任务描述、技能列表、Endpoint、版本与能力等;
  • Agent Executor:负责将用户上下文传递给远程智能体,由对方 LLM 解析并执行;
  • Artifact:远程智能体完成任务后返回的成果(结果描述、文本等);
  • Event Queue:用于消息更新与长时任务的状态维护,防止连接过早终止。

优势

  • 增强协作:不同供应商/平台的智能体可共享上下文、协同工作;
  • 模型灵活:每个智能体可自行选择最适用的 LLM;
  • 安全内建:协议内置认证机制,保证代理间通信安全。

示例

A2A 协作流程

旅行助手需要一次性完成“机票+酒店+租车”预订:

  1. 用户向“旅行智能体”提出请求;
  2. 旅行智能体判断需要多名专业智能体协作;
  3. 通过 A2A 分别连接航司、酒店、租车智能体;
  4. 各智能体使用自身 LLM 和工具完成子任务;
  5. 旅行智能体整合结果后回复用户。

Natural Language Web(NLWeb)

NLWeb 旨在让网站具备自然语言接口,同时兼容智能体生态。

组件

  • NLWeb 应用核心:处理自然语言问题,负责调用各模块;
  • NLWeb 协议:定义自然语言交互规则,以 JSON(Schema.org)格式返回结果;
  • MCP Server 端点:网站即 MCP Server,可向外共享 ask 等工具;
  • Embedding 模型:将网站内容向量化,支持相似度检索;
  • 向量数据库:存储内容向量,支持 Qdrant、Milvus、Azure AI Search 等多种引擎。

示例

NLWeb 工作流程

  1. 网站导入航班、酒店等结构化数据并生成向量;
  2. 用户输入“帮我找一间下周带泳池的家庭友好酒店”;
  3. NLWeb 同时解析意图并检索向量数据库;
  4. LLM 整理匹配结果并生成自然语言回答;
  5. 外部智能体也可通过 MCP 接口直接查询网站内容。

常见问答

欢迎加入 Azure AI Foundry Discord 继续交流。

延伸资源

上一篇

10 智能体生产化:可观测性与评估

下一篇

12 上下文工程