
随着人工智能代理的广泛应用,确保标准化、安全性以及支持开放创新的协议需求日益增长。本篇将介绍三种满足这些需求的协议:模型上下文协议(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 助手预订航班为例:
- AI 助手(MCP 客户端)连接航空公司提供的 MCP 服务器。
- 客户端查询服务器可用工具,如“搜索航班”、“预订航班”。
- 用户请求搜索从波特兰到檀香山的航班,助手调用“搜索航班”工具并传递参数。
- MCP 服务器调用航空公司内部 API,返回航班信息给助手。
- 用户选择航班后,助手调用“预订航班”工具完成预订。
代理间通信协议(A2A)
A2A 协议在 MCP 基础上进一步实现不同 AI 代理间的通信与协作,支持跨组织、跨环境和不同技术栈的代理共同完成任务。
A2A 核心组件
- 代理卡(Agent Card):类似 MCP 服务器的工具列表,包含代理名称、任务描述、技能列表、当前端点 URL、版本及功能信息。
- 代理执行器(Agent Executor):负责将用户对话上下文传递给远程代理,远程代理使用自身 LLM 解析请求并执行任务。
- 工件(Artifact):远程代理完成任务后生成的结果,包含工作内容描述和文本上下文,发送后连接关闭。
- 事件队列(Event Queue):处理消息传递和更新,确保任务完成前连接不中断。
A2A 优势
- 增强协作:不同厂商和平台的代理可共享上下文,协同自动化工作。
- 模型选择灵活:每个代理可选择最适合的 LLM,支持定制化优化。
- 内置认证:协议自带安全认证框架,保障代理交互安全。
A2A 应用示例
在旅行预订场景中:
- 用户向“旅行代理”发出包含航班、酒店和租车的综合预订请求。
- 旅行代理使用 LLM 分析任务,识别需调用其他专业代理。
- 通过 A2A 协议连接“航空代理”、“酒店代理”和“租车代理”。
- 各专业代理执行对应任务,利用自身 LLM 和工具完成预订。
- 旅行代理汇总所有结果,向用户返回完整的预订信息。
自然语言网页协议(NLWeb)
网站是用户获取信息的主要渠道。NLWeb 通过自然语言接口,使网站内容可被 AI 代理发现和交互。
NLWeb 组件
- NLWeb 应用(核心服务代码):处理自然语言查询,驱动网站的自然语言功能。
- NLWeb 协议:定义网站自然语言交互的基本规则,返回 JSON 格式响应,构建“AI 网页”的基础。
- MCP 服务器:NLWeb 同时作为 MCP 服务器,向 AI 系统共享工具和数据,融入代理生态。
- 嵌入模型:将网站内容转换为向量表示,便于计算机比较和检索。
- 向量数据库:存储内容向量,支持快速检索相关信息,兼容多种存储系统。
NLWeb 应用示例
以旅行预订网站为例:
- 网站产品目录通过 Schema.org 格式化,数据被 NLWeb 工具处理并存入向量数据库。
- 用户通过聊天界面输入自然语言查询,如“帮我找下周在檀香山带泳池的亲子酒店”。
- NLWeb 应用将查询发送给 LLM 理解,同时检索向量数据库获取相关酒店信息。
- LLM 结合检索结果,生成准确且基于真实数据的自然语言回复。
- 外部 AI 代理可通过 MCP 方法直接查询网站,如询问“檀香山附近有哪些酒店推荐素食餐厅?”,NLWeb 返回结构化 JSON 响应。
进一步交流
欢迎加入 Microsoft Foundry Discord 与其他学习者交流,参加答疑时间,解决您的 AI 代理相关问题。


