📢 转载信息
原文作者:Madhur Prashant, Eashan Kaushik, Jeffrey Burke, Sayee Kulkarni, Andy Palmer, Sriharsha M S, and Shreyas Subramanian
我们最近宣布在 Amazon Bedrock AgentCore Runtime 上支持智能体间(Agent-to-Agent, A2A)协议。有了这项新增功能,智能体便能使用标准化的通信方式,在各个平台之间发现对等智能体、共享能力并协调操作。
Amazon Bedrock AgentCore Runtime 提供了一个安全、无服务器的环境,专为部署 AI 智能体和工具而设计。它兼容任何框架和模型,支持实时和长时间运行的工作负载,并支持会话隔离,并内置了身份验证。随着对 MCP 以及现在的 A2A 协议的支持,Bedrock AgentCore Runtime 实现了智能体之间的无缝通信。使用不同框架构建的智能体,如 Strands Agents、OpenAI Agents SDK、LangGraph、Google ADK 或 Claude Agents SDK,可以以通用且可验证的格式共享上下文、能力和推理过程。
在本文中,我们将演示如何使用 A2A 协议让由不同框架构建的 AI 智能体无缝协作。您将学习如何在 AgentCore Runtime 上部署 A2A 服务器、配置智能体发现和身份验证,并构建一个用于事件响应的真实世界多智能体系统。我们将介绍完整的 A2A 请求生命周期,从智能体卡片发现到任务委托,展示标准化协议如何消除多智能体协调的复杂性。
理解多智能体系统
构建有效的智能体系统需要几个基础组件。这些包括内存,包括用于维护对话上下文的短期内存和用于跨会话保留洞察的长期内存;智能体可以通过原生方式或通过 MCP 服务器访问的工具;用于更安全身份验证和权限管理的身份,允许智能体代表用户或自主访问资源;以及用于检测有害内容、帮助防止幻觉并确保响应符合策略和事实准确性的防护栏。

虽然 MCP 将单个智能体与其工具和数据连接起来,但 A2A 允许多个智能体相互协调。例如,零售库存智能体可能会使用 MCP 查询产品数据库,然后使用 A2A 与外部供应商智能体通信以下订单。
A2A 协议通过跨越不同边界的无缝互操作性为多智能体系统带来优势。使用 Strands 或 OpenAI 等不同框架构建、由 Anthropic Claude、GPT-4 或 Llama 等各种 LLM 驱动,并托管在 AWS 或边缘设备等不同系统上的智能体,可以毫不费力地通信和协调,而无需复杂的翻译层。这种互操作性与松散耦合和模块化相辅相成,其中每个智能体作为一个独立单元运行,可以开发、测试、部署甚至升级,而不会中断整个系统。新的专业智能体可以无缝加入环境,并且由于明确定义的交互边界,一个智能体的故障会保持隔离,有助于防止系统级联故障。该协议还支持动态智能体发现和编排。智能体通过标准化架构来宣传其能力,而编排器智能体可以根据实时任务需求发现并调用专业智能体。
Amazon Bedrock AgentCore Runtime 上的 A2A 请求生命周期
A2A 协议定义了一个结构化的请求生命周期,其中包含协同多智能体通信所需的特定组件。以下是关键要素:
- 用户 (User):通过客户端智能体发起请求,可以是人工操作员或自动化服务,定义需要多智能体协助的目标。
- A2A 客户端 (Client Agent):代表用户,使用 A2A 协议发起通信,以发现和请求远程智能体的任务。
- A2A 服务器 (Remote Agent):通过实现 A2A 协议的 HTTP 端点来接收请求、处理任务并返回结果。不同的智能体可以担任此角色,使用基于 HTTP/S 的 JSON-RPC 2.0 或服务器发送事件(Server-Sent Events)处理同步和异步交互。
- 智能体卡片 (Agent Card):每个智能体发布的 JSON 元数据文件,用于宣传其身份、能力、端点和身份验证要求。这实现了动态发现功能,智能体在委托任务之前会查询其对等智能体的功能。
- 任务对象 (Task Object):代表流经系统的每个工作单元,具有唯一的 ID 和生命周期。随着智能体协调,任务可能是长期运行的、涉及多个轮次,并由多个协同工作的智能体跨越。
- 工件 (Artifact):任务完成时产生的输出,可以包括结构化文本、JSON、图像、音频或其他多模态内容。智能体在协作完成用户的原始请求时会交换这些工件。
多智能体用例:监控与事件响应
为了演示在 Amazon Bedrock AgentCore Runtime 上使用 A2A 的多智能体系统的强大功能,我们将介绍一个企业监控和事件响应解决方案。这个真实世界的用例展示了使用不同框架构建的专业智能体如何通过 A2A 协议无缝协调,以应对复杂的运营挑战。
监控和事件响应解决方案实现了一个具有三个专业智能体的中心辐射型架构,每个智能体都使用了 Amazon Bedrock AgentCore 功能——这些是提供核心能力的模块化构建块,例如用于上下文感知响应的AgentCore 内存、使用 Amazon Cognito 进行更安全的智能体身份验证和权限控制的AgentCore 身份、用于更安全和集中化工具访问的AgentCore 网关以及用于跟踪、调试和监控 AI 智能体性能的可观测性。请参考下面的架构和演示视频:

多智能体系统包含以下组件:
- 宿主智能体 (Host agent, 使用 Google ADK):充当智能体交互的智能路由层和协调中心。它使用 A2A 演示跨系统互操作性。该智能体在 Amazon Bedrock AgentCore Runtime 上运行,使用 Google 的智能体开发套件,但通过标准化 A2A 协议与托管在 AWS 上的智能体无缝通信。宿主智能体的关键职责包括:
- 动态智能体发现:从 AWS Systems Manager Parameter Store 为每个远程智能体获取身份提供商 (IDP) 配置,从而实现跨多智能体系统的更安全身份验证
- 能力感知:从每个 A2A 服务器检索智能体卡片,以了解可用的技能和端点
- 智能路由:分析用户查询并将它们路由到基于能力的适当的专业智能体
- 多智能体协调:编排需要多个智能体的复杂工作流程
- 监控智能体 (Monitoring agent, 使用 Strands Agents SDK):充当操作智能层,持续分析跨 AWS 服务的 CloudWatch 日志、指标、仪表板和警报。该智能体专注于从海量遥测数据中识别异常、跟踪错误模式并呈现可操作的见解。当出现异常模式时,监控智能体启动与其他专业智能体的对话,以协调响应操作。监控智能体的关键职责包括:
- CloudWatch 集成:
- 列出并分析 CloudWatch 仪表板
- 获取特定 AWS 服务(Lambda、ECS、EC2)的日志
- 监控警报和提醒状态
- 分析日志组以查找模式和错误
- 跨账户访问:支持跨多个 AWS 账户进行监控
- CloudWatch 集成:
- 操作智能体 (Operational agent, 使用 OpenAI SDK):提供补救策略和外部知识集成。当监控智能体检测到关键问题时,它通过 A2A 直接与操作智能体通信,提供有关问题上下文并请求特定的补救操作。操作智能体的关键职责包括:
- 网络搜索:使用 Tavily API 搜索 AWS 最佳实践、故障排除指南和解决方案
- 补救策略:根据检测到的问题提出解决方案

实施多智能体监控解决方案
现在我们已经探讨了这三个专业智能体如何协同处理 AWS 事件,让我们了解如何使用 Amazon Bedrock AgentCore Runtime 构建和部署此多智能体系统。
实施遵循渐进式方法:
- 从基础开始——我们将部署一个简单的 A2A 服务器,以了解在 AgentCore Runtime 上进行智能体部署、身份验证和调用的核心机制。
- 构建监控系统——使用相同的部署模式,我们将构建每个专业智能体(监控、操作和宿主),包括其特定的工具和能力。
- 连接智能体——配置智能体之间的 A2A 通信通道,使它们能够通过标准化协议发现和调用彼此。
- 观察系统运行——观看演示视频,其中显示实时事件检测、跨智能体协调和自动化响应。
此多智能体监控系统的所有代码示例、完整的智能体实现和部署脚本都可在我们的 GitHub 存储库中找到。
开始使用 AgentCore Runtime 上的 A2A
要了解在 Amazon Bedrock AgentCore Runtime 上部署 A2A 服务器的基础知识,包括创建、测试、部署和调用智能体的分步说明,请参阅 A2A 协议支持文档。本指南涵盖:
- 使用任何框架(Strands、OpenAI SDK、LangGraph)创建和配置 A2A 服务器
- 本地测试和验证
- 使用 AgentCore CLI 进行部署
- 身份验证设置(OAuth 2.0 和 AWS IAM)
- 智能体卡片检索和发现
- 用于调用已部署智能体的客户端实现
一旦您熟悉了这些基础知识,就可以将相同的模式应用于构建多智能体监控系统的每个组件。
请查看此 GitHub 示例中的完整示例。对于本文,我们将重点关注此用例的实现。
先决条件
要部署多智能体监控系统的实现,请遵循先决条件步骤:
注意:要在其他区域部署,您需要更新 cloudformation/vpc-stack.yaml 中的 DynamoDB 前缀列表映射。有关详细信息,请参阅 VPC 堆栈文档。
部署步骤
本指南将引导您使用基础设施即代码在 AWS 上部署多智能体系统。部署此解决方案最简单的方法是使用我们的自动化部署脚本:
步骤 1:克隆存储库
git clone https://github.com/awslabs/amazon-bedrock-agentcore-samples.git
cd 02-use-cases/A2A-multi-agent-incident-response
步骤 2:运行部署脚本
此部署脚本将验证是否已安装并配置了 AWS CLI,检查 AWS 凭证是否有效,确认区域设置为 us-west-2,交互式收集所需参数,生成唯一的 S3 存储桶名称,并自动按正确的顺序部署所有堆栈。预计部署时间约为 10-15 分钟。
uv run deploy.py
步骤 3:提供运行时 CLI 参数
接下来,提供部署时使用的参数。按 Enter 键选择每个选项以使用默认的 Amazon Bedrock 模型 ID 和每个智能体的 CloudFormation 堆栈名称。
API 密钥:您需要以下 API 密钥(部署脚本会提示输入):
- OpenAI API 密钥:从 OpenAI 平台获取
- Tavily API 密钥:从 Tavily获取
- Google API 密钥:从 Google AI Studio获取
配置完信息后,启动部署过程,并在 AWS 控制台和终端中分别跟踪。
步骤 4:提供运行时 CLI 参数
使用以下命令运行前端。这会设置并运行 React 前端 UI,允许用户与多智能体事件响应系统进行交互,以监控 AWS 基础设施、查询 CloudWatch 指标和日志,并通过协调的 A2A 智能体搜索补救策略:
cd frontend
npm install chmod +x ./setup-env.sh
./setup-env.sh npm run dev
此部署在 Amazon Bedrock AgentCore Runtime 上创建了一个多智能体 A2A 系统,其中包含三个专业 AI 智能体,并使用 A2A 协议进行编排。Cognito 堆栈通过创建包含四个不同客户端应用程序(WebSearch、Monitoring、Gateway 和 Host Agent 客户端)的 Cognito 用户池,提供基于 OAuth 2.0 的机器到机器身份验证。
监控智能体(使用 Strands SDK 构建)通过使用 Smithy 模型定义并通过 AgentCore Gateway 连接到 CloudWatch 指标和日志,并使用自定义语义内存策略进行事件跟踪。
操作智能体(使用 OpenAI Agents SDK 构建)与 Tavily API 接口以进行补救研究,而宿主智能体(使用 Google ADK 构建)充当协调器,使用 HTTP 协议将任务委托给两个专业 A2A 智能体。
端到端事件响应工作流程
在本节中,我们将逐步介绍一个端到端工作流程,其中宿主智能体管理对话,从用户那里获取需求,并选择最佳智能体来路由请求(监控或操作智能体)。监控和操作智能体公开其智能体卡片,供宿主智能体用于编排。在此示例中,我们将使用来自各种日志组的简单错误分析和搜索补救策略进行测试。

工作流程包括以下步骤:
- 初始问候:用户向宿主智能体发送问候消息:“嗨!你好吗?”。宿主智能体处理请求。宿主智能体以友好的问候“我很好,谢谢!”回复用户。
- 能力查询:用户询问宿主智能体“您有什么能力?”,以了解该智能体能做什么。宿主智能体向用户解释,它是基于其可访问的远程智能体连接而设计的 AWS 监控和操作的编排智能体。
- 列出日志组和仪表板:用户请求宿主智能体列出其 AWS 账户中的日志组和仪表板。宿主智能体识别出这是一项监控任务,并执行
transfer_to_agent工具,将工作委托给监控智能体以进行专业处理。请求通过 A2A Json RPC 传输协议从宿主智能体传输到监控智能体。监控智能体检索信息并返回结果,显示在账户中找到了 0 个仪表板和 153 个日志组。宿主智能体从监控智能体接收结果,并向用户显示仪表板和日志组信息。 - 分析特定日志组:用户请求宿主智能体在路径
/aws/bedrock-agentcore/runtimes/hostadk-<runtimeId>-DEFAULT的特定日志组中查找错误。宿主智能体确定这需要监控专业知识,并执行transfer_to_agent工具。请求传输到监控智能体,并附带分析指定日志组中错误的指令。监控智能体分析日志组并发现 9 个错误和 18 个警告,具体识别出 OTLP 导出失败。宿主智能体接收分析结果,并向用户显示详细的错误分析报告。 - 调试和修复建议:用户要求宿主智能体调试错误并提供所需修复的报告。请求传输到操作智能体,以搜索与 OTLP 导出失败相关的解决方案。操作智能体使用 A2A JsonRPC 传输尝试搜索,并执行网络搜索以提供解决方案。
Amazon Bedrock AgentCore Runtime 上的 A2A 安全性
Amazon Bedrock AgentCore Runtime 支持两种身份验证方法来保护 A2A 通信:
OAuth 2.0 身份验证:A2A 客户端向外部授权服务器进行身份验证以获取 JSON Web Token (JWT),然后将该令牌包含在所有发往 A2A 服务器的请求中。这种基于令牌的方法使用机器到机器 (M2M) 凭证或用户联合来实现安全的、标准化的身份验证,允许 A2A 服务器验证客户端身份并根据令牌的声明实施访问控制。
AWS IAM 身份验证:A2A 客户端承担具有调用 A2A 服务器智能体权限的 IAM 角色。此方法利用 AWS SigV4 请求签名和 IAM 策略来控制访问,从而无需外部令牌管理,同时提供细粒度的权限。
Amazon Bedrock AgentCore Runtime 中 A2A 支持的内容
Amazon Bedrock AgentCore Runtime 为 A2A 通信提供了全面的支持。查看一些受支持的功能:
- 无状态服务器:Amazon Bedrock AgentCore Runtime 可以托管 A2A 服务器,这些服务器公开 HTTP 接口,在端口 9000 上运行无状态 HTTP 服务器并支持 JSON-RPC 消息传递。运行时充当透明代理,保持 JSON-RPC 请求和响应不变,以保持协议保真度。
- 已身份验证的智能体卡片:支持在
/.well-known/agent-card.json处进行已身份验证的智能体卡片,其中包含其能力和技能,允许其他智能体自动发现它。 - 安全入站身份验证:Amazon Bedrock AgentCore Runtime 通过 AWS SigV4 和 OAuth 2.0 支持安全身份验证,确保智能体间通信经过授权和安全。A2A 服务器使用 HTTP 标头中提供的凭证对每个传入请求进行身份验证,利用 Amazon Bedrock AgentCore Identity。
- 安全出站授权:Amazon Bedrock AgentCore Runtime 通过 IAM 执行角色和 AgentCore Identity 实现安全的出站授权。每个智能体承担定义的 IAM 执行角色,授予其安全访问 AWS 资源的必要权限。对于与外部服务的交互,智能体可以使用 Amazon Bedrock AgentCore Identity,它为 Google、GitHub、Slack 等第三方身份提供商提供托管的 OAuth 2.0 支持。
- VPC 连接性:您可以配置 Amazon Bedrock AgentCore Runtime 以连接到 Amazon 虚拟私有云 (VPC) 中的资源。通过配置 VPC 连接性,您可以启用对 VPC 内的私有资源(如数据库、内部 API 和服务)的安全访问。
- 利用 AWS PrivateLink:Amazon Bedrock AgentCore 使用 AWS PrivateLink 在您的虚拟私有云 (VPC) 和 AgentCore 服务之间实现安全、私密的连接。通过创建接口 VPC 端点,您可以将 A2A 服务器通信保留在 VPC 内部,而无需通过公共互联网传输。
- 生命周期管理:Amazon Bedrock AgentCore Runtime 允许您配置生命周期规则,使用
idleRuntimeSessionTimeout和maxLifetime管理资源使用情况。空闲或长时间运行的会话会自动终止,以实现高效的资源利用并保持系统性能。
结论
Amazon Bedrock AgentCore Runtime 中的智能体间协议支持为构建可扩展、可互操作的多智能体系统提供了基础。通过为 AI 智能体提供标准化通信,无论其底层框架、模型或托管基础结构如何,组织都可以使用 A2A 协议组合复杂的智能体解决方案。AWS 监控和事件响应示例展示了这种方法的实际威力:一个基于 Google ADK 的编排器与使用 Strands 和 OpenAI SDK 构建的智能体协调,所有这些都部署在 AgentCore Runtime 上,共同工作以检测问题、搜索解决方案并推荐修复措施。这种级别的互操作性传统上需要大量的自定义集成工作,但 A2A 通过标准化协议使其变得简单直接。
随着 AI 系统从单一用途工具演变为协作环境,A2A 和 MCP 等协议成为必不可少的构建块。它们创造了一个未来,智能体可以被动态发现、组合和编排,使组织能够“构建一次,集成到任何地方”。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区