前文已介绍Prompt(底层指令)、Skills(能力单元)和MCP(单体扩展坞)三大组件。三者共同构建了单智能体(Single-Agent)系统,使其具备指令理解、工具调用与外部交互能力。但现实中的复杂任务往往需多个专业化智能体协同完成。“全能型”单智能体既不现实,也缺乏效率。因此,亟需一套高层协议,规范“智能体之间如何沟通与协作”——这正是智能体间协议(Agent-to-Agent, A2A)的核心使命。
A2A协议可视为多智能体系统的“协作总线”,提供开放、标准的通信规范,支持不同厂商、技术栈与能力定位的智能体,安全、高效地分工协作,共同达成复杂目标。
A2A的核心使命:从“单兵作战”到“联合作战”
若将MCP比作“士兵如何使用瑞士军刀(各类工具)”,那么A2A解决的则是“多兵种联合作战部队如何协同指挥”的问题。在A2A出现前,智能体协作通常依赖中心化编排器(Orchestrator)手动调度,流程复杂、容错性差且难以扩展。
A2A旨在打破孤岛,定义智能体之间的通用“社交语言”与“协作礼仪”,使任意两个遵循该协议的智能体均可实现:
互相发现(Discovery):如何定位具备特定能力的协作方?
任务委托(Task Delegation):如何清晰移交子任务,并明确交付标准?
上下文共享(Context Sharing):如何在保护内部状态前提下,安全共享必要上下文?
能力授权(Capability Delegation):如何临时授权自身Skills供协作方调用?
A2A vs. MCP:两个层面的“标准化”
初学者易混淆A2A与MCP,二者虽均属标准化协议,但作用对象与层级截然不同。
在成熟多智能体系统中,MCP与A2A相辅相成:每个智能体通过MCP管理自身“个人装备”(Skills),再通过A2A实现与其他智能体的“团队沟通”。
A2A的核心概念:任务、上下文与能力切片
A2A协议的核心是一套结构化消息格式,用于智能体间任务传递。典型A2A任务委托消息包含以下关键上下文“切片”:
1. 目标(Goal):对子任务无歧义的描述。例如:“分析附件中的财报(Resource),总结核心财务指标,并以JSON格式返回。”
2. 上下文资源(Contextual Resources):完成任务所需的背景信息,可为MCP资源链接(如财报文件)或结构化数据。
3. 能力授权(Delegated Capabilities):任务发起方可临时授权自身MCP-based Skills。例如,“数据分析Agent”在委托“图表生成Agent”时,可授权其调用query_database Skill获取最新数据。
4. 交付物规格(Deliverable Specification):明确定义输出格式与标准,便于机器自动解析与验证。
该结构化设计确保协作高效安全:接收方仅获当前任务必需的最小上下文集,无需访问发起方内部状态或全部能力,显著降低复杂性与安全风险。
A2A工作流实例:一次复杂的研究任务
设想一个由文献检索Agent、数据分析Agent与报告撰写Agent组成的“AI研究助理”团队。当用户提出“研究‘长上下文窗口’对LLM性能的影响,并撰写报告”时,A2A工作流启动如下:
1. 总控Agent向文献检索Agent发起A2A任务:
Goal:“查找关于‘long context window LLM performance’的最新5篇核心论文。”
Deliverable:“返回含标题、作者、摘要和URL的JSON列表。”
2. 文献检索Agent执行并返回结果(可能调用Google Scholar等MCP工具)。
3. 总控Agent接收后,向数据分析Agent发起第二项A2A任务:
Goal:“阅读上述5篇论文(作为Contextual Resources传入),分析‘大海捞针测试’中模型性能与信息位置的关系,生成总结表格。”
Deliverable:“返回含‘位置’‘平均召回率’两列的CSV格式字符串。”
4. 数据分析Agent完成分析并返回CSV数据。
5. 总控Agent最后向报告撰写Agent发起任务:
Goal:“根据原始请求及前述论文列表、CSV数据(作为Contextual Resources传入),撰写约1000字综合报告。”
Deliverable:“返回Markdown格式报告文本。”
全过程各Agent专注本职领域,通过A2A这条“协作总线”,将成果按需、有序、安全传递,最终高效完成链式协同任务。
愿景:一个“智能体社会”
A2A是上下文工程从“个体赋能”迈向“群体智能”的决定性一步,描绘出一个由海量专业化智能体构成的庞大高效“智能体社会”图景。
在此社会中,上下文不再静止于单一应用,而是如血液般在智能体网络中按需流动。用户一个简单意图,即可触发数十个智能体的链式响应与协同,汇聚成远超单体能力的复合结果。
至此,上下文工程四大核心组件已完整呈现:最底层的Prompt、标准化的Skills、单体扩展坞MCP,以及群体协作总线A2A。四者构成从具体到抽象、从个体到群体的完整技术栈,是构建下一代复杂AI系统的关键蓝图。
最佳实践:基于A2A官方文档的实现示例
本节依据A2A官方文档(https://a2a-protocol.org/latest/tutorials/python/)展示核心组件实现逻辑。
1. 定义Agent Skill
关键属性说明:
id:技能唯一标识符
name:人类可读名称
description:功能详细说明
tags:分类与发现关键词
examples:典型提示或用例
inputModes / outputModes:支持的媒体类型
2. 定义Agent Card
Agent Card是智能体的“名片”,通过.well-known/agent-card.json端点公开:
关键属性说明:
name, description, version:基本身份信息
url:A2A服务端点地址
capabilities:支持的A2A特性(如streaming、pushNotifications)
defaultInputModes / defaultOutputModes:默认媒体类型
skills:智能体提供的技能列表
3. 实现Agent Executor
Agent Executor是实际执行任务的核心组件:
4. 启动A2A Server
5. A2A Client交互
6. A2A与MCP的关系
MCP(Model Context Protocol):规范智能体到工具/资源/API的连接,解决“Agent如何调用工具”问题;
A2A:规范智能体到智能体的通信,作为通用、去中心化标准,支持跨框架互操作。
在一个成熟系统中,每个Agent通过MCP管理自身“个人装备”(Skills),再通过A2A实现与其他Agent的“团队沟通”。

