【Agent学习笔记】什么是MCP,什么是A2A?
为什么要有MCP和A2A?
Agent与LLM的区别之一在于Agent会使用多种工具,与多种模型协作,这类似于调用多个函数。(为了便于理解,接下来将调用的工具、模型及有关的数据笼统地概括为函数及函数的变量)但是不同人的函数并不会完全一致导致了使用的困难,如以边长(单位cm)为自变量,以正方形的周长为因变量的函数。那么计算边长可以直接使用周长函数,但是如果换一个人写的函数可能单位就是m,那么就需要“定做”单位,这时需要“定做”的自变量较少,二来转换单位并不困难,复杂度尚可接受,如果还有外接圆半径等大量不同单位、不同自变量的函数需要使用,就意味着需要为每个人的每个函数“定做”好参数,这就会增加大量复杂度。MCP和A2A就是为了“车同轨,书同文”而发明的。
MCP和A2A到底是什么?
MCP是Agent和工具之间的通讯协议(模型上下文协议 Model Context Protocol)。它规范了Agent与工具之间的传输,Agent送出的数据需要符合MCP、工具可接受的信息也要符合MCP,这就是“车同轨”,它让不同人的Agent可以很方便地和不同人编写的工具通讯。A2A则是LLM之间的通信协议,它规范了LLM之间通讯的格式,保证模型之间通讯的准确和高效性,也就是“书同文”。
MCP采用Client-Server架构,从主机(Host)经客户端(Client)与服务端(Server)通讯(值得注意的是服务端与客户端可以在同一服务器上,用stdio标准输入输出交换数据)。MCP提供了标准统一的接口,便于新的Agent直接调用和不同人的工具相互调用并且统一的标准便于管理。
A2A(Agent to Agent)强调Agent为中心,多Agent协作(MCP像领导给下级安排任务,A2A像团队间的沟通)。它基于HTTP、JR、SSE等广泛应用的协议,降低了使用成本,且持多模态和长文本的通信。
何时用 MCP和A2A?
MCP
一个 Agent 需要使用多个工具,需要标准化上下文访问,看重工具自动发现。
如:管理日历、邮件、任务的个人助手。
A2A
需要多个专业化 Agent,复杂工作流需要任务交接,需要实时流式传输。
如:含推荐、库存、定价、结算的电商。
浙公网安备 33010602011771号