A2A协议的应用明确如下几个问题Agent是什么呢为什么需要引入多个agent呢单个agent不能解决问题吗为什么需要引入A2A协议A2A协议的作用是什么Agent的分类1. 什么是 Agent简单来说Agent 大模型**如豆包、DeepSeek 工具 交互协议**。大模型擅长文本理解与决策但无法直接执行具体操作比如查天气、查机票、创建文件为了让大模型 “长出手”就需要搭配工具如天气查询接口、机票预订系统而 MCP 协议则负责解决 “大模型如何调用工具” 的问题 —— 三者结合就是能独立完成特定任务的智能体Agent。2. 为什么需要多个 Agent单个 Agent 不行吗核心原因是“单一职责原则”“避免上下文过载”实际场景如 “查天气选机票”需要多种不同能力若让一个 Agent 包揽所有任务会导致其逻辑复杂、响应变慢大模型存在 “上下文长度限制”上下文过长时结果准确性会下降。把 Agent 按职责拆分如天气 Agent 只负责查天气、机票 Agent 只负责查机票每个 Agent 专注于单一领域既能提升专业度和响应速度也能避免单个 Agent 上下文过载。3. 为什么需要 A2A 协议它的作用是什么A2AAgent to Agent协议是多个 Agent 之间的 “通信标准”。当系统中有多个分工不同的 Agent 时它们需要协同工作如调度 Agent 要给天气 Agent 发查询指令、接收返回结果而不同 Agent 可能由不同团队开发、基于不同技术实现 ——A2A 协议的核心作用就是统一 Agent 间的交互格式如请求参数、返回结果的规范让 Agent 之间无需人工适配就能 “互相理解”实现自动化协同降低 Agent 接入和扩展的成本新 Agent 只要遵循 A2A 协议就能快速融入系统。4. Agent 的分类Agent 按角色可分为两类类似 “组长与组内成员” 的关系调度 Agent消费者 Agent相当于 “组长”不负责具体任务执行核心职责是接收用户需求如 “查天气选机票”→ 拆解任务拆成 “查天气”“查机票” 两个子任务→ 调度对应 Agent 执行 → 整合所有结果反馈给用户功能 Agent提供者 Agent相当于 “组内成员”负责执行具体任务如天气 Agent 查天气、机票 Agent 查机票只能响应调度 Agent 的指令不直接对接用户。名词解释名词描述示例Agent CardAgent 的「身份 能力说明书」jsonbr/{br/ capabilities: {br/ streaming: falsebr/ },br/ defaultInputModes: [br/ textbr/ ],br/ defaultOutputModes: [br/ textbr/ ],br/ description: 提供天气相关的查询功能,br/ name: 天气 Agent,br/ preferredTransport: JSONRPC,br/ protocolVersion: 0.3.0,br/ skills: [br/ {br/ description: 给出某地的天气预告,br/ examples: [br/ 给我纽约未来 7 天的天气预告br/ ],br/ id: 天气预告,br/ name: 天气预告,br/ tags: [br/ 天气,br/ 预告br/ ]br/ },br/ {br/ description: 给出某地当前时间的空气质量报告不做预告,br/ examples: [br/ 给我纽约当前的空气质量报告br/ ],br/ id: 空气质量报告,br/ name: 空气质量报告,br/ tags: [br/ 空气,br/ 质量br/ ]br/ }br/ ],br/ url: http://127.0.0.1:10000,br/ version: 1.0.0br/}br/Client Agent (A2A Client)A2A 调用方消费者调度AgentRemote Agent (A2A Server)A2A 服务提供方提供者天气Agent示例整体的流程分为注册阶段用户问答阶段注册阶段天气Agent调度Agent平台用户天气Agent调度Agent平台用户调度Agent的职责: 任务拆解 下发Agent列表: [天气Agent]可用工具: send_message提交天气Agent的URL请求 /.well-known/agent.json返回 Agent Card创建通过Wireshark抓包工具抓包获取结果如下用户问答阶段天气Agent调度Agent平台用户天气Agent调度Agent平台用户西雅图明天的天气怎么样西雅图明天的天气怎么样西雅图明天的天气怎么样未来三天的天气如下:...西雅图明天晴天西雅图明天晴天注蓝色表示使用A2A协议的部分进阶多个Agent提供服务机票Agent调度Agent机票Agent提供者天气Agent提供者调度Agent消费者平台用户机票Agent调度Agent机票Agent提供者天气Agent提供者调度Agent消费者平台用户前置所有Agent遵循A2A协议已完成注册任务拆解1. 查5.1-5.3天气2. 查对应日期机票3. 整合推荐按天气适配机票筛选晴朗日期的低价机票我要查5.1-5.3天气选合适的机票转发用户复合需求A2A请求查询5.1-5.3天气统一格式A2A响应返回天气数据统一格式A2A请求查询5.1-5.3机票统一格式A2A响应返回机票数据统一格式返回整合后的推荐结果展示最终结果天气适配机票推荐流式响应提问-回答如下调度Agent发送给天气Agent的请求可以发现调度Agent发送给天气Agent的请求过滤掉了订机票的提问prompt。由于5月1日是晴天后续调度Agent发给机票Agent的请求就只需要关注5月1日的机票信息了“请帮我查询2025年5月1日从西雅图飞往纽约的航班有哪些”上述过程体现了调度Agent的任务分配请求-响应示例发往机票Agent的请求{ id: 0a96020b-5876-4011-94d4-b8fc4743b911, jsonrpc: 2.0, method: message/stream, params: { configuration: { acceptedOutputModes: [ text, text/plain, image/png ] }, message: { contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, kind: message, messageId: 9a022c61-4948-4731-b0b0-2671c66b0b43, parts: [ { kind: text, text: 请帮我查询2025年5月1日从西雅图飞往纽约的航班有哪些 } ], role: user } } }注“method”: “message/stream” 流式返回机票Agent的返回data: { id: 0a96020b-5876-4011-94d4-b8fc4743b911, jsonrpc: 2.0, result: { contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, history: [ { contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, kind: message, messageId: 9a022c61-4948-4731-b0b0-2671c66b0b43, parts: [ { kind: text, text: 请帮我查询2025年5月1日从西雅图飞往纽约的航班有哪些 } ], role: user, taskId: 41469774-41a2-4b33-b0fb-1f12f6bbef6e } ], id: 41469774-41a2-4b33-b0fb-1f12f6bbef6e, kind: task, status: { state: submitted } } } data: { id: 0a96020b-5876-4011-94d4-b8fc4743b911, jsonrpc: 2.0, result: { append: false, artifact: { artifactId: 6b457be7-8c24-4ca2-879d-cd03fe3528a1, parts: [ { kind: text, text: 你要查询的机票 } ] }, contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, kind: artifact-update, lastChunk: false, taskId: 41469774-41a2-4b33-b0fb-1f12f6bbef6e } } data: { id: 0a96020b-5876-4011-94d4-b8fc4743b911, jsonrpc: 2.0, result: { append: true, artifact: { artifactId: 6b457be7-8c24-4ca2-879d-cd03fe3528a1, parts: [ { kind: text, text: 如下 } ] }, contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, kind: artifact-update, lastChunk: false, taskId: 41469774-41a2-4b33-b0fb-1f12f6bbef6e } } data: { id: 0a96020b-5876-4011-94d4-b8fc4743b911, jsonrpc: 2.0, result: { append: true, artifact: { artifactId: 6b457be7-8c24-4ca2-879d-cd03fe3528a1, parts: [ { kind: text, text: 1. 航班号 FAKE-001起飞时间 20:00余票 30 张2. 航班号 FAKE-002起飞时间 23:00余票 50 张 } ] }, contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, kind: artifact-update, lastChunk: true, taskId: 41469774-41a2-4b33-b0fb-1f12f6bbef6e } } data: { id: 0a96020b-5876-4011-94d4-b8fc4743b911, jsonrpc: 2.0, result: { contextId: b5cdbc7f-504e-4174-a543-ba8aef6e85a9, final: true, kind: status-update, status: { state: completed }, taskId: 41469774-41a2-4b33-b0fb-1f12f6bbef6e } }A2A协议视频学习