想让AI团队“1+1>2”?秘密就在A2A!Agentic模式15深度解析,解锁智能体协作的终极密码!

内容来自Antonio Gullí的Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems一书。

单个Agent在处理复杂的多方面问题时往往面临局限,即便它们具备先进的功能。为了解决这一问题,Agent间通信技术使得那些可能基于不同框架构建的各种人工智能代理能够有效协作。这种协作包括无缝的协调、任务分配以及信息交换。

谷歌的A2A协议是一种旨在促进此类通用通信的开放标准。本章将详细介绍A2A协议、其实际应用方式,以及它在谷歌ADK中的实现方式。

一、代理间通信模式概述

Agent2Agent(A2A)协议是一种开放标准,旨在实现不同Agent框架之间的通信与协作。该标准确保了各Agent框架之间的互操作性,使得使用LangGraph、CrewAl或Google ADK等技术开发的Agent能够实现协同工作,而无需考虑其开发背景或所使用的框架差异。

A2A技术得到了众多技术公司和服务提供商的支持,其中包括Atlassian、Box、LangChain、MongoDB、Salesforce、SAP以及ServiceNow。微软计划将A2A功能整合到Azure AI Foundry与Copilot Studio中,以此体现其对开放技术标准的承诺。此外,AuthO与SAP也在将其平台及相关工具支持A2A功能。

作为一种开源协议,A2A欢迎社区成员的贡献,以促进其发展与广泛应用。

二、 A2A的核心概念

A2A协议为Agent之间的交互提供了一种结构化的方法,其构建基于几个核心概念。对于任何致力于开发或集成符合A2A标准的系统的人来说,彻底理解这些概念至关重要。A2A协议的基础要素包括核心Agent、Agent Card、Agent discovery、通信与任务处理方式、交互机制以及安全保障措施,所有这些内容都将在后续内容中得到详细阐述。

Core Actors:A2A模式涉及三个主要主体:

  • User:发起Agent请求帮助
  • A2A Client(Client Agent):代表用户执行操作或请求信息的应用程序或Agent
  • A2A Server(Remote Agent):提供HTTP接口的Agent或系统,用于处理客户端请求并返回结果。该远程Agent属于透明系统,即客户端无需了解其内部运作机制。

Agent Card:Agent的数字身份由其他Agent Card定义,它是一个JSON格式文件。其中包含用于客户端进行交互以及实现自动发现功能所需的关键信息,包括Agent的身份信息、断点URL以及版本号。此外,文件还详细列出了Agent所支持的功能,如流式传输或推送通知、具体技能、默认的输入/输出模式,以及认证要求。下面是一个WeatherBot的Agent Card示例。

{
"name": "WeatherBot",
"description": "Provides accurate weather forecasts and historicaldata.",
"url": "http://weather-service.example.com/a2a",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"stateTransitionHistory": true
},
"authentication": { "schemes": ["apiKey"] },
"defaultInputModes": ["text"],
"defaultOutputModes": ["text"],
"skills": [
{
"id": "get_current_weather",
"name": "Get Current Weather",
"description": "Retrieve real-time weather for any location.",
"inputModes": ["text"],
"outputModes": ["text"],
"examples": [
"What's the weather in Paris?",
"Current conditions in Tokyo"
],
"tags": ["weather", "current", "real-time"]
},
{
"id": "get_forecast",
"name": "Get Forecast",
"description": "Get 5-day weather predictions.",
"inputModes": ["text"],
"outputModes": ["text"],
"examples": [
"5-day forecast for New York",
"Will it rain in London this weekend?"
],
"tags": ["weather", "forecast", "prediction"]
}
]
}

Agent discovery:允许客户端查找Agent Card,这些Card详细说明了可用点对点服务器的功能特性。实现这一功能有多种策略可供选择。

  • Well-Known URI:Agent将其Agent Card托管在标准的路径上(比如:/.well-known/agent.json),这种方法能够为公共用途或特定领域提供广泛且通常自动化实现的访问功能。
  • 托管式注册表:这类注册表提供了一个集中式的目录,用于发布Agent Card信息,并可依据特定条件进行查询。这种方案非常适合需要集中管理及访问控制的企业环境。
  • 直接配置方式:Agent Card信息被直接嵌入到系统中或以私有方式共享。这种方法适用于那些系统之间耦合紧密、且动态发现功能并非关键要求的私有系统。

无论采用何种方法,确保Agent Card端点的安全性都至关重要。这可以通过访问控制、相互TLS协议或网络限制来实现,尤其是当卡片中包含敏感信息(尽管这些信息不属于机密信息)时。

通信与任务:在A2A框架中,通信是围绕异步任务来组织的,这些任务构成了长时运行进程的基本工作单元。每个任务都被赋予一个唯一的标识符,并会经历提交、处理中或已完成等不同状态,这种设计有助于实现复杂操作中的并行处理。Agent之间的通信是通过消息来完成的。

这种通信方式包含属性,这些属性是描述消息的关键值元数据,用于说明消息的优先级或创建时间等信息;同时,通信内容还由一个或多个部分组成,这些部分承载了实际要传输的数据,例如纯文本、文件或结构化的JSON数据。Agent在执行任务过程中产生的实际输出结果被称为“工件”。与消息类似,工件也由一个或多个部分构成,并且可以在结果陆续生成时进行增量式传输。在A2A框架中,所有通信均通过HTTP(S)协议进行,数据传输时使用JSON-RPC 2.0协议。为确保多次交互之间的连续性,系统会使用服务器生成的上下文信息来将相关任务归类在一起,并保持交互过程中的上下文一致性。

交互机制:请求/响应模式(轮询方式)以及服务器主动推送事件的方式。A2A技术提供了多种交互方式,以满足各类人工智能应用的需求,每种方式都具有其独特的交互机制。

  • 同步请求/响应:适用于需要快速、即时完成的操作。在这种模式下,客户端发送请求后,会主动等待服务器处理该请求,并在单次同步交互中返回完整的响应结果。
  • 异步轮询:适用于处理时间较长的任务。客户端发送请求后,服务器会立即回复“正在处理”状态以及任务ID。此时客户端便可继续执行其他操作。 定期向服务器发送新请求以检查任务的状态,直到任务被标记为“已完成”或“失败”为止。
  • 流式更新(服务器推送事件——SSE):非常适合用于接收实时的、分阶段的更新结果。这种机制会在服务器与客户端之间建立一条持久性的单向连接,使得远程Agent能够持续推送更新信息,例如状态变化或部分处理结果,而无需客户端多次发起请求。
  • 推送通知(Webhook):适用于那些需要长时间运行或消耗大量资源的任务,因为在这些任务中维持持续连接或频繁进行轮询会显得效率低下。客户端可以注册一个Webhook地址,当任务的状态发生显著变化时(例如任务完成时),服务器会向该地址发送异步通知。

Agent Card明确了该Agent是否支持流式传输或推送通知功能。此外,A2A技术对交互方式并无限制,因此它不仅能支持文本形式的交互,还能支持音频、视频等其他数据类型的交互,从而实现功能丰富、多模态的人工智能应用。流式传输与推送通知功能均会在Agent Card中予以标注。

{
"jsonrpc": "2.0",
"id": "1",
"method": "sendTask",
"params": {
"id": "task-001",
"sessionId": "session-001",
"message": {
"role": "user",
"parts": [
{
"type": "text",
"text": "What is the exchange rate from USD to EUR?"
}
]
},
"acceptedOutputModes": ["text/plain"],
"historyLength": 5
}
}

同步请求使用 sendTask 方法,客户端通过该方法提出查询并期望获得一个完整、单一的回复结果。相比之下,流式请求则使用 sendTaskSubscribe 方法来建立持久连接,从而使代理能够分阶段发送多个增量更新信息或部分查询结果。

{
"jsonrpc": "2.0",
"id": "2",
"method": "sendTaskSubscribe",
"params": {
"id": "task-002",
"sessionId": "session-001",
"message": {
"role": "user",
"parts": [
{
"type": "text",
"text": "What's the exchange rate for JPY to GBP today?"
}
]
},
"acceptedOutputModes": ["text/plain"],
"historyLength": 5
}
}

安全性:Agent间通信(A2A):Agent间通信是系统架构中的关键组成部分,它实现了Agent之间的安全、无缝的数据交换。通过多种内置机制,该技术确保了数据传输的可靠性与完整性。

相互传输层安全协议(TLS):通过加密及身份验证机制建立连接,从而防止未经授权的访问及数据窃取,确保通信安全。

全面的审计日志:所有Agent之间的通信内容都会被详细记录下来,包括信息流动情况、涉及的Agent以及所执行的操作。这些审计记录对于确保责任追究、排查故障以及进行安全分析至关重要。

Agent Card Declaration:认证要求在Agent Card中得到了明确说明。Agent Card是一种配置文档,用于描述代理的身份、功能以及安全策略。这种方式实现了认证管理的集中化与简化。

凭证处理:Agent通常使用安全的凭证进行身份验证,这些凭证如 OAuth 2.0 令牌或 API 密钥,通过 HTTP 头部传递。这种方法可以有效防止凭证信息泄露在 URL 或消息正文中,从而提升整体安全性。

三、A2A vs. MCP

A2A是一种补充Anthropic的模型上下文协议(MCP)的协议(见图1)。MCP主要负责为Agent及其与外部数据及工具的交互提供结构化的上下文支持,而A2A则促进Agent之间的协作与沟通,实现任务的分工与协同完成。

A2A模式的目的是提升效率、降低集成成本,并促进在复杂的多Agent系统开发过程中的创新与互联互通性。 因此,要有效地设计、实现并应用A2A技术,就必须深入理解其核心组成部分及运作机制。唯有如此,才能构建出具备协作能力且能实现互操作的Agentic系统。

实际应用与使用场景

跨Agent通信对于构建跨不同领域的复杂人工智能解决方案至关重要,它有助于实现系统的模块化、可扩展性,并进一步提升系统的智能水平。

  • 多框架协作:A2A的主要用途在于实现各类独立的人工智能Agent之间的沟通与协作,而这些Agent可能基于不同的技术框架进行开发(例如ADK、LangChain、CrewAl等)。这对于构建复杂的多Agent系统至关重要——因为在这样的系统中,不同的Agent通常负责处理问题的不同方面。
  • 自动化工作流协调:在企业环境中,A2A技术可通过让Agent任务进行分配与协调,从而助力处理复杂的工作流程。例如,某个Agent可以负责初始数据收集工作,随后将相关任务委托给另一名Agent进行处理分析,最后再由第三名Agent生成报告——整个过程均通过A2A协议完成通信。
  • 动态信息检索:各Agent节点能够相互通信,以获取和交换实时信息。某个主要Agent节点可以向专门的“数据采集Agent”请求实时市场数据,后者则会利用外部应用程序接口来收集所需信息,并将其反馈给请求方。

What:单独的Agent,尤其是那些基于不同框架构建的Agent,往往难以独自解决复杂的多方面问题。其主要障碍在于缺乏一种通用的语言或协议,使得这些Agent无法有效地进行沟通与协作。这种孤立状态阻碍了复杂系统的构建——在这样的系统中,多个专业化的Agent可以结合自身的独特能力来完成更复杂的任务。如果没有标准化的方法,整合这些不同的Agent将会耗费大量资源、耗费大量时间,同时也会阻碍更强大、更完善的智能体解决方案的开发。

Why:Agent通信协议为这一问题提供了开放、标准化的解决方案。该协议基于HTTP技术,能够实现不同智能Agent之间的互操作性,使它们能够无缝地协调任务、分配工作并共享信息,而无需考虑它们所使用的底层技术。该协议的核心组成部分是“Agent Card”——一种数字身份文件,用于描述Agent的功能、技能以及通信接口,从而便于Agent之间的发现与交互。A2A协议定义了多种交互机制,包括同步通信与异步通信,以满足各种不同的应用场景需求。通过建立通用的代理协作标准,A2A协议促进了模块化、可扩展的生态系统的发展,为构建复杂的、由多个Agent组成的智能系统提供了有力支持。

经验法则:当需要协调两个或多个AI Agent之间的协作时,可使用此模式,尤其是当这些Agent采用不同的开发框架构建时(例如Google ADK、LangGraph、CrewAI)。这种模式非常适合构建复杂的模块化应用程序,在这类应用中,不同的Agent负责处理工作流程中的特定环节——比如将数据分析任务交给某个Agent,而将报告生成任务交给另一个Agent。此外,当某个Agent需要动态发现并利用其他Agent的功能来完成某项任务时,这种模式也至关重要。

关键要点

  • Google A2A协议是一种基于HTTP的开放标准,旨在促进使用不同框架开发的Agent之间的通信与协作。
  • AgentCard作为Agent的数字标识符,能够让其他Agent自动识别并了解该Agent的能力。
  • A2A支持同步请求-响应模式(通过“tasks/send”实现)以及流式更新模式(通过“tasks/sendSubscribe”实现),以满足不同的通信需求。
  • 该协议支持多轮对话,且需要进行用户输入。该状态允许Agent在交互过程中请求额外信息并保持上下文信息。
  • A2A架构支持模块化设计,各类专用Agent可独立地在不同端口上运行,从而实现系统的可扩展性与分布式特性。
  • 诸如Trickle Al这样的工具有助于可视化及追踪点对点通信过程,从而帮助开发人员监控、调试并优化多Agent系统。
  • 虽然A2A是一种用于管理不同Agent之间任务和工作流程的高层协议,但模型上下文协议(MCP)则为LLM提供了与外部资源进行交互的标准化接口。

结论

Agent间通信协议为克服各个智能Agent之间的孤立性问题提供了至关重要的开放标准。该协议基于HTTP架构,确保了运行在不同平台上的智能Agent之间能够实现无缝协作与互联互通——这些平台包括Google ADK、LangGraph以及CrewAl等。其中,Agent Card是该协议的核心组成部分,它充当智能Agent的数字身份标识,明确说明了Agent的功能,并支持其他Agent对其能力的动态识别。该协议的灵活性使其能够支持多种交互方式,包括同步请求、异步轮询以及实时流式传输,从而满足各种应用场景的需求。

这使得构建模块化且可扩展的架构成为可能——通过组合各种专用Agent,便可协调复杂的自动化工作流程。安全性是其中至关重要的方面,相关技术包括内置的MTLS加密机制以及严格的身份验证要求,旨在保护通信内容的安全。虽然A2A协议与其他标准(如MCP)相辅相成,但其核心优势在于实现Agent之间的高级协调与任务分配。众多大型科技公司的支持,以及实际应用案例的不断涌现,进一步凸显了该协议的重要性。A2A协议为开发者们奠定了基础,使他们能够构建出更复杂、更分布式、更具智能性的多代理系统。归根结底,A2A协议是构建一个创新且具备互操作性的人工智能协作生态系统的关键支柱。

如何高效转型Al大模型领域?

作为一名在一线互联网行业奋斗多年的老兵,我深知持续学习和进步的重要性,尤其是在复杂且深入的Al大模型开发领域。为什么精准学习如此关键?

  • 系统的技术路线图:帮助你从入门到精通,明确所需掌握的知识点。
  • 高效有序的学习路径:避免无效学习,节省时间,提升效率。
  • 完整的知识体系:建立系统的知识框架,为职业发展打下坚实基础。

AI大模型从业者的核心竞争力

  • 持续学习能力:Al技术日新月异,保持学习是关键。
  • 跨领域思维:Al大模型需要结合业务场景,具备跨领域思考能力的从业者更受欢迎。
  • 解决问题的能力:AI大模型的应用需要解决实际问题,你的编程经验将大放异彩。

以前总有人问我说:老师能不能帮我预测预测将来的风口在哪里?

现在没什么可说了,一定是Al;我们国家已经提出来:算力即国力!

未来已来,大模型在未来必然走向人类的生活中,无论你是前端,后端还是数据分析,都可以在这个领域上来,我还是那句话,在大语言AI模型时代,只要你有想法,你就有结果!只要你愿意去学习,你就能卷动的过别人!

现在,你需要的只是一份清晰的转型计划和一群志同道合的伙伴。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。

在这里插入图片描述

第一阶段(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 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值