简介
在我之前的文章中,我们探讨了谷歌开源的A2A协议,除此之外在Google Cloud Next 25大会,还发布了ADK,它以最少的代码修改充当模型上下文协议 (MCP) 客户端,从而以模型友好的方式与外部工具和 API 无缝集成。
Google宣布了代理间 (A2A) 协议——一项强大的开放标准,允许 AI 代理跨组织边界进行通信、协作和协调行动。A2A 协议支持在不同企业系统之间进行安全且结构化的代理通信,而无需考虑底层代理框架。
快速回顾
1. MCP(模型上下文协议)
在我之前的文章中,我们探讨了 MCP 背后的核心概念、它如何与传统的 API 集成方法协同工作、它的主要优势以及完整的工作代码演示。
2. ADK(代理开发工具包)
我们在之前的文章中也介绍了谷歌的开源 ADK 工具包,包括不同的代理类别、可用的工具类型,以及完整的实践演示,包括 ADK、MCP 作为客户端和 Gemini LLM 的实际操作。
在本文中,我们将重点理解 Agent2Agent (A2A) 协议的核心概念,并深入探讨代码实现。
什么是 A2A 协议?
A2A(代理到代理)协议是由谷歌开发的开放协议,用于跨组织或技术边界的代理之间通信。
使用 A2A,代理无需共享内存、思维或工具即可为最终用户完成任务。相反,代理之间以各自的原生模式交换上下文、状态、指令和数据。
- 简单:重用现有标准
- 企业级:身份验证、安全、隐私、追踪、监控
- 异步优先:(非常)长时间运行的任务和人机交互
- 模式无关:文本、音频/视频、表单、iframe 等
- 不透明执行:代理之间无需共享思维、计划或工具。
A2A 与 MCP — 主要区别
- MCP 使企业 API 不受工具限制,且易于 LLM 调用
- A2A 允许分布式代理(使用 ADK、LangChain、CrewAI 等构建)无缝地相互通信。
A2A 是面向代理的 API,而 MCP 是面向工具的 API
A2A 协议 — 核心概念
A2A(代理到代理)协议基于几个基本概念构建,这些概念可实现代理之间的无缝互操作。在本文中,我们将使用多代理旅行规划应用程序来更好地理解核心概念。
1. 基于任务的通信
代理之间的每次交互都被视为一项任务——一个具有明确起始和结束的清晰工作单元。这使得通信结构化且可跟踪。示例
基于任务的通信(请求)
{
"jsonrpc":"2.0",
"method":"tasks/send",
"params":{
"taskId":"20250615123456",
"message":{
"role":"user",
"parts":[
{
"text":"Find flights from New York to Miami on 2025-06-15"
}
]
}
},
"id":"12345"
}
基于任务的沟通(响应)
{
"jsonrpc":"2.0",
"id":"12345",
"result":{
"taskId":"20250615123456",
"state":"completed",
"messages":[
{
"role":"user",
"parts":[
{
"text":"Find flights from New York to Miami on 2025-06-15"
}
]
},
{
"role":"agent",
"parts":[
{
"text":"I found the following flights from New York to Miami on June 15, 2025:\n\n1. Delta Airlines DL1234: Departs JFK 08:00, Arrives MIA 11:00, $320\n2. American Airlines AA5678: Departs LGA 10:30, Arrives MIA 13:30, $290\n3. JetBlue B9101: Departs JFK 14:45, Arrives MIA 17:45, $275"
}
]
}
],
"artifacts":[]
}
}
2. 代理发现
代理可以通过从标准位置 (/.well-known/agent.json) 读取其 agent.json 文件来自动发现其他代理的操作。无需手动设置。以下是代理卡示例
- 用途:可公开访问的发现端点
- 位置:符合 A2A 协议的标准化 Web 访问路径
- 用法:供其他代理/客户端进行外部发现
- 角色:启用自动代理发现
{
"name":"Travel Itinerary Planner",
"displayName":"Travel Itinerary Planner",
"description":"An agent that coordinates flight and hotel information to create comprehensive travel itineraries",
"version":"1.0.0",
"contact":"code.aicloudlab@gmail.com",
"endpointUrl":"http://localhost:8005",
"authentication":{
"type":"none"
},
"capabilities":[
"streaming"
],
"skills":[
{
"name":"createItinerary",
"description":"Create a comprehensive travel itinerary including flights and accommodations",
"inputs":[
{
"name":"origin",
"type":"string",
"description":"Origin city or airport code"
},
{
"name":"destination",
"type":"string",
"description":"Destination city or area"
},
{
"name":"departureDate",
"type":"string",
"description":"Departure date in YYYY-MM-DD format"
},
{
"name":"returnDate",
"type":"string",
"description":"Return date in YYYY-MM-DD format (optional)"
},
{
"name":"travelers",
"type":"integer",
"description":"Number of travelers"
},
{
"name":"preferences",
"type":"object",
"description":"Additional preferences like budget, hotel amenities, etc."
}
],
"outputs":[
{
"name":"itinerary",
"type":"object",
"description":"Complete travel itinerary with flights, hotels, and schedule"
}
]
}
]
}
3. 跨框架互操作性
A2A 可跨不同的代理框架(例如 ADK、CrewAI 和 LangChain)运行,因此使用不同工具构建的代理仍然可以协同工作。
4. 多模式消息传递
A2A 通过 Parts 系统支持各种内容类型,允许代理以统一的消息格式交换文本、结构化数据和文件。
5. 标准化消息结构
A2A 使用简洁的 JSON-RPC 样式发送和接收消息,使实现保持一致且易于解析。
6. 技能和能力
代理会发布其功能(“技能”)以及所需的输入和提供的输出,以便其他人了解如何使用它们。示例
// Skill declaration in agent card
"skills":[
{
"name":"createItinerary",
"description":"Creates a travel itinerary",
"inputs":[
{"name":"origin","type":"string","description":"Origin city or airport"},
{"name":"destination","type":"string","description":"Destination city or airport"},
{"name":"departureDate","type":"string","description":"Date of departure (YYYY-MM-DD)"},
{"name":"returnDate","type":"string","description":"Date of return (YYYY-MM-DD)"}
]
}
]
// Skill invocation in a message
{
"role":"user",
"parts":[
{
"text":"Create an itinerary for my trip from New York to Miami"
},
{
"type":"data",
"data":{
"skill":"createItinerary",
"parameters":{
"origin":"New York",
"destination":"Miami",
"departureDate":"2025-06-15",
"returnDate":"2025-06-20"
}
}
}
]
}
7. 任务生命周期
每个任务都会经历明确定义的阶段:已提交 → 正在运行 → 完成(或失败/取消)。我们可以随时跟踪任务的状态。
8. 实时更新(流式传输)
长时间运行的任务可以使用服务器发送事件 (SSE) 流式传输更新,以便代理可以实时接收进度。
9. 推送通知
代理可以使用 Webhook 主动通知其他人任务更新,并支持安全通信(JWT、OAuth 等)。
10. 结构化表单
代理可以使用 DataPart 请求或提交结构化表单,这使得处理 JSON 或配置等输入变得简单。
架构
以下演示仅用于说明多代理之间的 A2A 协议。
上述架构采用模块化多智能体 AI 系统,每个智能体均可独立部署,并使用 Google 的 A2A(Agent-to-Agent)协议进行通信。
上述架构的核心组件
- 用户界面层 - 向前端服务器发送 HTTP 请求
- 代理层 - 协调主机代理、代理 1 和代理 2
- 协议层 - 代理之间的 A2A 协议通信
- 外部数据层 - 使用 MCP 访问外部 API
代理角色:
- 行程规划代理 - 充当中央协调器 - 主机代理,协调用户与专业代理之间的交互。
- 航班搜索代理 — 专门负责根据用户输入获取航班选项的代理
- 酒店搜索代理 — 专门负责根据用户偏好获取酒店住宿的代理
本项目中的 MCP 实现:
航班搜索 MCP 服务器
- 连接:航班搜索(代理 1)连接到 MCP 航班服务器
- 功能:连接到航班预订 API 和数据库
酒店搜索 MCP 服务器
- 连接:酒店搜索(代理 2)连接到 MCP 酒店服务器
- 功能:连接到酒店预订系统和聚合器
代理通信流程
- 用户通过 Streamlit UI 提交旅行查询
- 旅行计划器解析查询以提取关键信息
- 旅行计划器向航班搜索代理请求航班信息
- 航班搜索代理通过调用 MCP 服务器返回可用航班
- 旅行计划器提取目的地详情
- 旅行计划器向酒店搜索代理请求酒店信息
- 酒店搜索代理返回住宿选项
- 旅行计划器将所有数据整合成完整的行程
由于字符限制,下一部分内容再下一篇文章中翻译给大家。笔者觉得这篇Meiaum上的文章写的非常好,非常详细,能给我们带来很多思考。后续文章中我会总结下这里面的知识点。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
基于此,我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近70次后,终于把整个AI大模型的学习门槛,降到了最低!
在这个版本当中:
第一您不需要具备任何算法和数学的基础
第二不要求准备高配置的电脑
第三不必懂Python等任何编程语言
您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型教程已经给大家整理并打包,现在将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
五、AI产品经理大模型教程
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓