10.1 智能体通信协议基础
这一节是理论铺垫,讲清楚「为什么要有协议、协议分哪几类、整体架构长什么样」。
10.1.1 为何需要通信协议
没有统一协议的痛点
在协议出现之前,Agent 生态是 "孤岛模式":
- 工具重复开发:同一个订单查询接口,给 LangChain 写一套工具封装,给 AutoGen 又要写一套,换个框架就要重写;
- Agent 无法互通:不同厂商、不同框架的 Agent 没法直接协作,多智能体系统只能在同一框架内定制开发;
- 业务对接成本高:你的 SpringBoot 业务系统要对接 Agent,每次都要写定制化的适配代码,没有通用标准。
协议的核心价值
统一接口规范,解耦能力与调用方:
- 工具 / 业务能力只要遵循一次协议标准,所有 Agent 都能直接调用;
- Agent 只要遵循协议,就能接入所有符合标准的工具、对接所有其他 Agent;
- 整个 Agent 生态从 "定制化对接" 变成 "插拔式复用",开发效率和可扩展性指数级提升。
10.1.2 三种协议设计理念比较
本章后续的 MCP、A2A、ANP,分别对应了三层不同维度的协议设计思路,各司其职:
表格
| 协议类型 | 核心定位 | 解决的问题 | 类比后端概念 |
|---|---|---|---|
| 工具层协议(MCP) | Agent ↔ 工具 / 数据源 的通信标准 | 统一工具调用格式,让工具一次封装、处处可用 | 统一的 API 接口规范 |
| 点对点协作协议(A2A) | Agent ↔ Agent 的通信标准 | 统一智能体间的任务委托、消息交互格式 | 服务间调用协议(gRPC) |
| 网络层协议(ANP) | 多 Agent 组网 的通信标准 | 统一 Agent 的注册、发现、路由、调度 | 服务注册中心 + API 网关 |
一句话区分:
- MCP 管「Agent 怎么用工具」;
- A2A 管「Agent 怎么找另一个 Agent 帮忙」;
- ANP 管「一大堆 Agent 怎么组织成一个网络、自动分配任务」。
10.1.3 HelloAgents 通信协议架构设计
这是教材给出的一套完整的三层协议栈架构,从上到下分层解耦:
- 网络层(ANP):负责 Agent 注册、能力发现、请求路由,是整个智能体网络的入口调度层;
- 协作层(A2A):负责 Agent 之间的任务传递、状态同步、结果返回,是智能体间的交互标准;
- 能力层(MCP):负责 Agent 对外部工具、数据源、业务系统的调用,是底层能力的接入标准。
三层之间是依赖关系:ANP 调度多个 Agent,Agent 之间用 A2A 通信,每个 Agent 又通过 MCP 调用外部工具。
10.1.4 本章学习目标与快速体验
和前面章节的设计一致:
- 目标:理解三类协议的适用场景,能跑通基础 Demo,能自定义封装业务工具;
- 快速体验:先跑一个最简 MCP 工具调用、或者两个 Agent 的 A2A 对话,先建立体感,再深入原理和实战。
10.2 MCP 协议实战
MCP = Model Context Protocol(模型上下文协议),由 Anthropic 推出,是当前行业最主流的工具接入标准,也是你最需要重点掌握的协议。
核心定位
MCP 是Agent 和外部工具 / 数据源之间的通用通信协议。 简单说:只要你的工具 / 业务接口封装成了 MCP 服务器,任何支持 MCP 的 Agent(LangChain、Claude、GPTs 等)都能像 "插 U 盘" 一样直接发现并调用,不用再为每个 Agent 单独写工具适配代码。
核心架构
- MCP 服务器(Server):提供具体能力的一方,比如把你的 SpringBoot 订单查询接口封装成 MCP 服务器,对外暴露 "查询订单" 工具;
- MCP 客户端(Client):Agent 侧的组件,负责连接 MCP 服务器,自动获取工具列表、发起调用、接收返回结果。
核心能力
- 工具自动发现:客户端连接服务器后,自动获取所有可用工具的名称、参数、描述,Agent 自动知道自己能调用哪些能力;
- 标准化工具调用:统一的请求 / 返回格式,Agent 不用关心工具底层是 HTTP 接口、数据库还是本地脚本;
- 上下文同步:可以把对话上下文、用户信息同步给工具侧,实现更精准的业务调用;
- 资源访问:除了调用工具,还可以读取文件、获取结构化数据等静态资源。
实战内容一般包含
- 启动官方提供的现成 MCP 服务器(比如文件系统工具、搜索工具);
- 在 LangChain 等 Agent 框架中接入 MCP 客户端;
- Agent 自动识别工具列表,自主调用工具完成任务。
对你的落地价值
你可以把苍穹外卖的核心业务接口(订单查询、库存查询、退款规则查询)封装成一个自定义 MCP 服务器,后续不管用什么 Agent 框架,都能直接调用你的业务能力,不用每次都手写自定义工具。
10.3 A2A 协议实战
A2A = Agent-to-Agent Protocol(智能体间协议),是多智能体协作的基础标准,OpenAI、Anthropic 等厂商都在推进相关规范。
核心定位
A2A 是Agent 与 Agent 之间的点对点协作协议,解决「一个 Agent 怎么把任务委托给另一个 Agent、怎么同步进度、怎么接收结果」的问题。 类比后端:就像微服务之间的调用协议,规定了请求格式、响应格式、错误码规范。
和普通 HTTP 调用的区别
普通 HTTP 只是传数据,A2A 是语义级的协作协议:
- 它约定了任务怎么描述、能力怎么声明、上下文怎么传递、状态怎么同步;
- 不同厂商、不同框架的 Agent,只要都遵循 A2A,就能互相理解对方的意图,无缝协作。
核心消息类型
- 能力声明:Agent 对外说明自己能做什么、擅长什么领域;
- 任务请求:发起方向接收方发送任务描述、相关上下文、要求的输出格式;
- 进度反馈:执行过程中接收方向发起方同步进度、询问补充信息;
- 结果返回:任务完成后返回结构化结果、溯源信息;
- 错误通知:任务失败时返回错误原因、是否可重试。
实战内容一般包含
- 搭建两个不同职责的 Agent(比如规划 Agent + 执行 Agent);
- 双方都接入 A2A 协议;
- 规划 Agent 拆解任务后,通过 A2A 把子任务委托给执行 Agent;
- 执行 Agent 完成后,通过 A2A 返回结果,规划 Agent 汇总输出。
对你的落地价值
当你的业务 Agent 变复杂后,可以拆分出多个专项 Agent(比如订单处理 Agent、售后客服 Agent、菜品推荐 Agent),通过 A2A 协议互相协作,主 Agent 只做调度,不用把所有逻辑都写在一个 Agent 里。
10.4 ANP 协议实战
ANP = Agent Network Protocol(智能体网络协议),是面向大规模多 Agent 系统的组网协议。
核心定位
ANP 是Agent 网络的 "调度与路由层",解决「系统里有几十个、上百个 Agent,用户发一个请求,该找谁来处理、怎么找到最合适的 Agent」的问题。 类比后端:相当于微服务体系里的「服务注册中心 + API 网关 + 负载均衡」,只不过服务节点换成了 Agent。
核心能力
- Agent 注册与发现:所有 Agent 启动后都注册到网络中,声明自己的能力、领域、性能;
- 智能路由:收到用户请求后,自动匹配最适合处理该任务的 Agent,转发请求;
- 权限与安全:统一做鉴权、限流、审计,不用每个 Agent 单独做;
- 可观测性:统一监控所有 Agent 的调用次数、耗时、成功率;
- 负载均衡:多个同能力 Agent 之间自动分配流量。
实战内容一般包含
- 搭建一个 ANP 注册中心;
- 注册多个不同能力的 Agent(比如文案 Agent、代码 Agent、客服 Agent);
- 发送通用请求,ANP 自动路由到对应 Agent 处理并返回结果;
- 测试 Agent 下线、扩容时的自动发现与调度。
对你的落地价值
如果后续你要做企业级 Agent 平台,有很多不同业务的智能体,ANP 就是统一入口。前端只需要调用 ANP 网关,不用关心背后有多少个 Agent、分别是什么地址。
10.5 构建自定义 MCP 服务器
这是本章最具实操价值的一节,也是和你现有技术栈结合最紧密的部分。
核心目标
把你自己的业务能力(比如 SpringBoot 里的接口、数据库查询、第三方服务),封装成符合 MCP 标准的服务器,让任何 Agent 都能直接调用。
典型开发步骤
- 定义工具清单 :梳理要暴露的业务能力,比如
query_order(订单号)、get_refund_rule(),定义每个工具的名称、参数、描述、返回格式; - 实现业务逻辑:每个工具对应一个处理函数,内部调用你的 SpringBoot HTTP 接口、或者直接操作数据库;
- 启动 MCP 服务:用 MCP SDK 启动服务器,暴露标准通信接口;
- 联调测试:用 Agent 端 MCP 客户端连接,验证工具自动发现、调用、返回是否正常。
对你的实际意义
这是打通「Python Agent」和「SpringBoot 业务系统」的标准化方案:
- 以前你需要在 LangChain 里手写自定义工具,一个个封装 SpringBoot 接口;
- 现在你只需要在 SpringBoot 侧(或者单独用 Python)封装一次 MCP 服务器,所有 Agent 都能直接复用,换框架也不用重写。
10.6 本章总结
本章核心可以浓缩为三句话:
- MCP 向下统一工具接入,解决 Agent "怎么用外部能力" 的问题,是能力层标准;
- A2A 横向统一 Agent 协作,解决 Agent "怎么互相帮忙" 的问题,是协作层标准;
- ANP 向上统一组网调度,解决多 Agent "怎么组织管理" 的问题,是网络层标准。