本文深入解析了 Google 推出的 A2A 协议旨在实现不同团队、框架和部署形态的智能体间的高效协作。文章详细阐述了 A2A 的五项设计原则包括拥抱智能体能力、利用现有标准、默认安全、支持长期任务及多模态通信。通过核心组件介绍Agent Card、A2A 服务器、A2A 客户端和工作流程详解揭示了 A2A 如何从智能体发现到任务完成实现无缝协作。此外文章对比了 A2A 与 MCP 的关系并通过篮球活动安排的案例展示了 A2A 的实际应用。最后提供了落地清单指导读者如何安全、高效地实施 A2A 协作。A2A 让智能体学会协作本文用真实案例带你串起完整闭环跟着代码走就行。一、什么是 Agent2AgentGoogle将 A2A 作为开放协议推出目标很明确让不同团队、不同框架、不同部署形态的智能体能用同一套「协作语言」连起来面向大规模、多智能体场景。二、A2A 的五条设计原则原则一句话说明拥抱智能体能力支持自然、非结构化的协作方式。利用现有标准使用 HTTP、SSE、JSON-RPC确保与现有系统的兼容性。默认安全强调企业级认证与授权思路并与 OpenAPI 等生态对齐。支持长期任务支持长期任务支持流式更新、通知、状态推进。多模态支持文本、音频、视频流等多模态通信。三、核心组件一览Agent Card公共元数据文件通常位于/.well-known/agent.json描述智能体能力、技能、端点 URL 和认证要求用于能力发现。A2A 服务器暴露 HTTP 端点实现 A2A 协议方法管理任务执行。A2A 客户端应用程序或智能体消费 A2A 服务通过tasks/send或tasks/sendSubscribe与服务器交互。A2A 关键组件与技术细节如下组件描述Agent Card位于/.well-known/agent.json描述能力、技能、端点 URL、认证要求用于发现。A2A 服务器实现协议约定的方法管理任务执行具体以官方规格为准。A2A 客户端消费 A2A 服务例如发送tasks/send或tasks/sendSubscribe。任务Task核心工作单元有唯一 ID状态如submitted、working等。消息Message通信单元角色如user/agent内含Parts。部分Part内容单元如TextPart、FilePart、DataPart。工件Artifact任务输出由 Parts 构成。流式传输常用SSE推送长任务状态。推送通知可通过Webhook异步告知进展。四、A2A 工作流程从「发现」到「完成」发现客户端读取/.well-known/agent.jsonAgent Card了解智能体能力。启动客户端发送任务请求。使用tasks/send处理即时任务返回最终 Task 对象。使用tasks/sendSubscribe处理长期任务服务器通过 SSE 事件持续推送更新。处理服务端执行任务可能流式返回也可能一次性返回。交互可选若任务状态为input-required客户端可基于相同 Task ID 继续补充输入。完成任务进入终端状态如completed、failed或canceled。该流程既支持简单任务也支持需要多轮交互的复杂任务尤其适合多模态通信环境。五、A2A 和 MCP 是什么关系二者互补不是替代对比项MCPA2A主要解决模型如何标准化接入工具、API、资源多个 Agent 之间如何协作通信类比工具说明书 / 应用商店里的能力包同事群里的协作语言、协作总线典型场景连数据库、Drive、Slack、GitHub 等Agent A 查数、Agent B 分析、Agent C 汇总MCP用于工具和资源接入通过结构化输入/输出将 Agent 连接到工具、API 和资源。Google ADK 支持 MCP 工具可与 Agent 组合使用广泛的 MCP 服务器。A2A用于 Agent 间协作在不同 Agent 间实现动态、多模态通信而无需共享内存、资源和工具。这是社区驱动的开放标准。协议交集Google 建议将 A2A 智能体通过 Agent Card 描述并注册为 MCP 资源。这样框架既能通过 MCP 调用工具又能通过 A2A 与用户、远程智能体通信实现无缝协作。例如一个智能体可以先通过 MCP 从数据库检索数据再通过 A2A 与另一个智能体协作分析数据。六、A2A 为什么这样设计解耦能力与通信MCP 专注标准化能力调用类似微服务A2A 专注动态协作类似聊天。避免智能体既要处理功能逻辑又要处理通信协议。无缝扩展性新智能体只需注册 Agent Card 到 MCP即可被其他智能体发现和调用A2A 允许智能体动态组队如临时组建“数据分析小组”。兼容现有架构MCP 可集成传统工具数据库、APIA2A 可对接人类用户或其他异构智能体。可以这样记MCP 像“应用商店”提供标准化服务如地图、支付。A2A 像“微信群聊”智能体在群里用通用语言协议讨论如何分工。Agent Card 像“个人资料”写明“我会修图”“我会翻译”方便协作时快速发现能力。七、案例安排篮球活动多智能体协作实现了一个自动根据天气情况决定是否安排篮球活动的场景。7.1 业务故事WeatherAgent提供指定日期天气数据内存模拟的智能体。BasketBallAgent收到用户日期后先拉 Agent Card 再问天气据此决定篮球活动是否成行。7.2 整体流程BasketBallAgent接收到用户提供的活动日期BasketBallAgent通过A2A协议向WeatherAgent请求该日期的天气信息WeatherAgent返回天气数据温度和天气状况BasketBallAgent根据天气状况做出决策 -如果天气不含雨或雪确认安排篮球活动 -否则取消活动并提供取消原因7.3 实现说明职责分离天气服务独立进程FastAPI决策方用requests调用边界清晰。发现端点GET /.well-known/agent.json符合“发现”叙事后续可替换为更贴近官方 schema 的 JSON。与完整 A2A 的差异当前为简化 REST 自定义 JSON未展开官方 JSON-RPC 方法名与 Message/Part 全模型鉴权上客户端发送了Bearer但服务端示例未校验 token仅适合教学生产环境需补齐。7.4 依赖requirements.txtfastapi0.115.12pydantic2.11.4Requests2.32.3uvicorn0.34.27.5 WeatherAgent服务端WeatherAgent是一个基于FastAPI实现的服务默认监听0.0.0.0:8000from fastapi import FastAPI, HTTPExceptionfrom datetime import datefrom pydantic import BaseModelimport uvicornapp FastAPI()# Agent Card 声明通过 /.well-known/agent.json 暴露WEATHER_AGENT_CARD { name: WeatherAgent, version: 1.0, description: 提供指定日期的天气数据查询, endpoints: { task_submit: /api/tasks/weather, sse_subscribe: /api/tasks/updates }, input_schema: { type: object, properties: { date: {type: string, format: date}, location: {type: string, enum: [北京]} }, required: [date] }, authentication: {methods: [API_Key]}}# 任务请求模型class WeatherTaskRequest(BaseModel): task_id: str params: dict# 模拟天气数据存储weather_db { 2026-03-18: {temperature: 16℃, condition: 雷阵雨}, 2026-03-19: {temperature: 18℃, condition: 小雨转晴}, 2026-03-20: {temperature: 15℃, condition: 多云转晴}}app.get(/.well-known/agent.json)asyncdef get_agent_card(): return WEATHER_AGENT_CARDapp.post(/api/tasks/weather)asyncdef handle_weather_task(request: WeatherTaskRequest): 处理天气查询任务 target_date request.params.get(date) # 参数验证 ifnot target_date or target_date notin weather_db: raise HTTPException(status_code400, detail无效日期参数) return { task_id: request.task_id, status: completed, artifact: { date: target_date, weather: weather_db[target_date] } }if __name__ __main__: uvicorn.run(app, host0.0.0.0, port8000)7.6 BasketBallAgent客户端BasketBallAgent是调用方负责消费WeatherAgent的服务import requestsimport uuidclass BasketBallAgent: def __init__(self): self.weather_agent_url http://localhost:8000 self.api_key SECRET_KEY# 实际应通过安全方式存储 def _create_task(self, target_date: str) - dict: 创建 A2A 标准任务对象 return { task_id: str(uuid.uuid4()), params: { date: target_date, location: 北京 } } def check_weather(self, target_date: str) - dict: 通过 A2A 协议查询天气 # 获取天气智能体能力描述 agent_card requests.get( f{self.weather_agent_url}/.well-known/agent.json ).json() # 构造任务请求 task self._create_task(target_date) # 发送任务请求 response requests.post( f{self.weather_agent_url}{agent_card[endpoints][task_submit]}, jsontask, headers{Authorization: fBearer {self.api_key}} ) if response.status_code 200: return response.json()[artifact] else: raise Exception(f天气查询失败: {response.text}) def schedule_meeting(self, date: str): 综合决策逻辑 try: result self.check_weather(date) if雨notin result[weather][condition] and雪notin result[weather][condition]: return {status: confirmed, weather: result[weather]} else: return {status: cancelled, reason: 恶劣天气} except Exception as e: return {status: error, detail: str(e)}# 使用示例if __name__ __main__: meeting_agent BasketBallAgent() result meeting_agent.schedule_meeting(2026-03-18) print(篮球安排结果:, result)7.7 如何运行安装依赖pip install -r requirements.txt版本见 7.4。终端一运行WeatherAgent.py确保本机8000端口可访问。终端二运行BasketBallAgent.py。预期结果2026-03-18为雷阵雨活动取消将schedule_meeting参数改为2026-03-20可验证“多云转晴”时活动确认。八、落地清单先画协作图明确有哪些 Agent、谁先发现谁、任务是否长运行、是否需要 SSE。再选协议层工具调用走 MCP跨 Agent 对话与任务编排走 A2A或官方 SDK / 参考实现。安全优先Agent Card 写清认证方式生产环境必须落实网关、密钥与审计。从最小闭环到规格对齐先跑通「发现 → 任务 → 工件」再对照官方 spec 补全消息模型与状态机。九、结语A2A 的意义是让智能体协作可发现、可编排、可演进系统里多一个 Agent应像多一个标准接口的同事而不是多一团无法追踪的调用。最后对于正在迷茫择业、想转行提升或是刚入门的程序员、编程小白来说有一个问题几乎人人都在问未来10年什么领域的职业发展潜力最大答案只有一个人工智能尤其是大模型方向当下人工智能行业正处于爆发式增长期其中大模型相关岗位更是供不应求薪资待遇直接拉满——字节跳动作为AI领域的头部玩家给硕士毕业的优质AI人才含大模型相关方向开出的月基础工资高达5万—6万元即便是非“人才计划”的普通应聘者月基础工资也能稳定在4万元左右。再看阿里、腾讯两大互联网大厂非“人才计划”的AI相关岗位应聘者月基础工资也约有3万元远超其他行业同资历岗位的薪资水平对于程序员、小白来说无疑是绝佳的转型和提升赛道。如果你还不知道从何开始我自己整理一套全网最全最细的大模型零基础教程我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的大模型学习资源希望能帮到你。扫码免费领取全部内容最后1、大模型学习路线2、从0到进阶大模型学习视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 入门必看大模型学习书籍文档.pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里4、AI大模型最新行业报告2026最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、面试试题/经验【大厂 AI 岗位面经分享107 道】【AI 大模型面试真题102 道】【LLMs 面试真题97 道】6、大模型项目实战配套源码适用人群四阶段学习规划共90天可落地执行第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容3、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】