Appearance
智能体协议 MCP/A2A/NLWeb
随着智能体规模日益增长,我们需要统一的协议来保障标准化、安全性与开放创新。本节聚焦三种协议:MCP、A2A 与 NLWeb。
引言
- 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 Server 提供“搜索航班”“预订航班”工具:
- 客户端连接航司 MCP Server;
- 发现可用工具;
- 用户请求“查询波特兰到火奴鲁鲁”,智能体调用对应工具;
- MCP Server 调用内部 API 并返回结果;
- 用户确认后继续调用“预订”工具完成下单。
Agent-to-Agent 协议(A2A)
MCP 解决“智能体→工具”的连接,而 A2A 则负责“智能体↔智能体”的协作,尤其适用于跨组织、跨技术栈的任务协同。
核心组件
- Agent Card:类似工具清单,包含名称、任务描述、技能列表、Endpoint、版本与能力等;
- Agent Executor:负责将用户上下文传递给远程智能体,由对方 LLM 解析并执行;
- Artifact:远程智能体完成任务后返回的成果(结果描述、文本等);
- Event Queue:用于消息更新与长时任务的状态维护,防止连接过早终止。
优势
- 增强协作:不同供应商/平台的智能体可共享上下文、协同工作;
- 模型灵活:每个智能体可自行选择最适用的 LLM;
- 安全内建:协议内置认证机制,保证代理间通信安全。
示例

旅行助手需要一次性完成“机票+酒店+租车”预订:
- 用户向“旅行智能体”提出请求;
- 旅行智能体判断需要多名专业智能体协作;
- 通过 A2A 分别连接航司、酒店、租车智能体;
- 各智能体使用自身 LLM 和工具完成子任务;
- 旅行智能体整合结果后回复用户。
Natural Language Web(NLWeb)
NLWeb 旨在让网站具备自然语言接口,同时兼容智能体生态。
组件
- NLWeb 应用核心:处理自然语言问题,负责调用各模块;
- NLWeb 协议:定义自然语言交互规则,以 JSON(Schema.org)格式返回结果;
- MCP Server 端点:网站即 MCP Server,可向外共享
ask等工具; - Embedding 模型:将网站内容向量化,支持相似度检索;
- 向量数据库:存储内容向量,支持 Qdrant、Milvus、Azure AI Search 等多种引擎。
示例

- 网站导入航班、酒店等结构化数据并生成向量;
- 用户输入“帮我找一间下周带泳池的家庭友好酒店”;
- NLWeb 同时解析意图并检索向量数据库;
- LLM 整理匹配结果并生成自然语言回答;
- 外部智能体也可通过 MCP 接口直接查询网站内容。
常见问答
欢迎加入 Azure AI Foundry Discord 继续交流。
