在 Amazon Bedrock AgentCore Runtime 中引入智能体到智能体协议支持
本文说明如何在 Amazon Bedrock AgentCore Runtime 上部署 A2A 服务,配置智能体发现与认证,并用主机、监控、运维三类智能体完成事件响应。

目录
#在 Amazon Bedrock AgentCore Runtime 中引入智能体到智能体协议支持
我们近期宣布 Amazon Bedrock AgentCore Runtime 支持智能体到智能体协议(Agent-to-Agent, A2A)。有了这项能力,智能体可以发现对等方、共享能力,并使用标准化通信跨平台协调动作。
Amazon Bedrock AgentCore Runtime 提供一个安全的无服务器环境,用于部署人工智能(Artificial Intelligence, AI)智能体和工具。它可以配合任意框架和模型,支持实时和长时间运行的工作负载,并通过内置认证支持会话隔离。在支持模型上下文协议(Model Context Protocol, MCP)的基础上,现在又支持A2A 协议,Bedrock AgentCore Runtime 让智能体之间可以无缝通信。使用不同框架构建的智能体,包括 Strands Agents、OpenAI Agents SDK、LangGraph、Google ADK 或 Claude Agents SDK,可以用一种共同的、可核验的格式共享上下文、能力和推理。
在本文中,我们演示如何使用 A2A 协议,让用不同框架构建的 AI 智能体无缝协作。你将了解如何在 AgentCore Runtime 上部署 A2A 服务器,配置智能体发现和认证,并构建一个真实的多智能体事件响应系统。我们将覆盖完整的 A2A 请求生命周期,从智能体卡片发现到任务委派,说明标准化协议如何消除多智能体协调的复杂性。
理解多智能体系统
构建有效的智能体系统需要若干基础组件。其中包括记忆,既有用于维持对话上下文的短期记忆,也有用于跨会话保留洞察的长期记忆;智能体可以原生访问或通过 MCP 服务器访问的工具;用于更安全的认证和权限管理的身份,使智能体可以代表用户行动,或自主访问资源;以及用于检测有害内容、帮助防止幻觉,并确保响应符合策略和事实准确性的护栏(guardrails)。
MCP 把单个智能体连接到它的工具和数据,A2A 则让多个智能体彼此协调。例如,一个零售库存智能体可以用 MCP 查询产品数据库,再用 A2A 与外部供应商智能体通信以下订单。
A2A 协议通过跨越多样边界的无缝互操作性,为多智能体系统带来好处。用 Strands 或 OpenAI 等不同框架构建、由 Anthropic Claude、GPT-4 或 Llama 等不同大语言模型(Large Language Model, LLM)驱动、并托管在包括 AWS 或边缘设备在内的不同系统上的智能体,可以无需复杂的转换层就通信和协调。这种互操作性还配合松耦合和模块化:每个智能体作为独立单元运行,可以开发、测试、部署甚至升级,而不扰乱整个系统。新的专用智能体可以无缝加入环境,由于交互边界定义清楚,一个智能体的故障保持隔离,有助于防止故障在系统中级联。该协议还支持动态的智能体发现和编排。智能体通过标准化模式公布自己的能力,编排智能体可以根据实时任务需求发现并调用专用智能体。
Amazon Bedrock AgentCore Runtime 上的 A2A 请求生命周期
A2A 协议定义了结构化的请求生命周期,由若干特定组件共同协调多智能体通信。关键要素如下:
- 用户(User):通过客户端智能体发起请求,可以是定义了需要多智能体协助之目标的人类操作者,也可以是自动化服务。
- A2A 客户端(A2A Client,客户端智能体):代表用户行动,使用 A2A 协议发起通信,以便发现远程智能体并向其请求任务。
- A2A 服务器(A2A Server,远程智能体):暴露实现 A2A 协议的 HTTP 端点,以接收请求、处理任务并返回结果。不同智能体都可以承担这一角色,使用基于 HTTP/S 或服务器发送事件(Server-Sent Events)的 JSON-RPC 2.0 处理同步和异步交互。
- 智能体卡片(Agent Card):每个智能体发布的一份 JSON 元数据文件,用于公布其身份、能力、端点和认证要求。这使动态发现成为可能:智能体在委派任务之前,先查询对等智能体能做什么。
- 任务对象(Task Object):表示流经系统的每个工作单元,具有唯一 ID 和生命周期。随着智能体协调,任务可能长时间运行、涉及多轮,并跨越若干协同工作的智能体。
- 产物(Artifact):任务完成时产生的输出,可以包括结构化文本、JSON、图像、音频或其他多模态内容。智能体在协作完成用户原始请求时交换这些产物。
多智能体用例:监控与事件响应
为演示在 Amazon Bedrock AgentCore Runtime 上使用 A2A 的多智能体系统,我们将逐步说明一个企业监控与事件响应方案。这个真实用例展示用不同框架构建的专用智能体如何通过 A2A 协议无缝协调,以处理复杂的运维挑战。
该监控与事件响应方案实现了中心辐射架构,包含三个专用智能体,每个都使用 Amazon Bedrock AgentCore 的能力。这些能力是提供核心功能的模块化构建块,例如用于上下文感知响应的 AgentCore Memory、使用 Amazon Cognito 为智能体做更安全认证并决定每个智能体可以执行何种动作的 AgentCore Identity、用于更安全且集中访问工具的 AgentCore Gateway,以及用于跟踪、调试和监控 AI 智能体性能的可观测性。架构和演示视频见下方,供参考:
该多智能体系统包含以下组件:
- 主机智能体(Host agent,Google ADK):充当智能体交互的智能路由层和协调中枢。它演示使用 A2A 的跨系统互操作性。该智能体使用 Google 的智能体开发工具包(Agent Development Kit)在 Amazon Bedrock AgentCore Runtime 上运行,同时通过标准化 A2A 协议与托管在 AWS 上的智能体无缝通信。主机智能体的关键职责包括:
- 动态智能体发现: 为每个远程智能体从 AWS Systems Manager Parameter Store 获取身份提供者(Identity Provider, IDP)配置,从而在多智能体系统中实现更安全的认证
- 能力感知: 从每个 A2A 服务器检索智能体卡片,以了解可用技能和端点
- 智能路由: 分析用户查询,并按能力把查询路由到合适的专用智能体
- 多智能体协调: 编排需要多个智能体的复杂工作流
- 监控智能体(Monitoring agent,Strands Agents SDK):作为运维智能层,持续分析各 AWS 服务的 CloudWatch 日志、指标、仪表盘和告警。该智能体专门识别异常、跟踪错误模式,并从大量遥测数据中呈现可执行洞察。当出现不寻常模式时,监控智能体发起与其他专用智能体的对话,以协调响应动作。监控智能体的关键职责包括:
- CloudWatch 集成:
- 列出并分析 CloudWatch 仪表盘
- 获取特定 AWS 服务(Lambda、ECS、EC2)的日志
- 监控告警和警报状态
- 分析日志组中的模式和错误
- 跨账户访问: 支持跨多个 AWS 账户进行监控
- 运维智能体(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 示例。本文将聚焦这个用例的实现。
先决条件
要部署多智能体监控系统实现,请遵循先决条件步骤:
- AWS 账户:你需要一个具有适当权限的有效 AWS 账户
- AWS CLI:安装并使用你的凭证配置 AWS CLI
注意:若要部署到其他区域,你需要更新 cloudformation/vpc-stack.yaml 中的 DynamoDB 前缀列表映射。细节见 VPC Stack 文档。
部署步骤
本指南带你使用基础设施即代码(infrastructure-as-code)在 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 参数
接下来,提供部署时使用的参数。对每个选项按回车,即可使用默认的 Amazon Bedrock 模型 ID,以及每个智能体的 CloudFormation 堆栈名称。
API 密钥:你需要下列 API 密钥(部署脚本会提示输入):
- OpenAI API 密钥:从 OpenAI Platform 获取
- Tavily API 密钥:从 Tavily 获取
- Google API 密钥:从 Google AI Studio 获取
配置好这些信息后,启动部署过程,并分别在 AWS 控制台和终端中跟踪它。
步骤 4:提供运行时 CLI 参数
使用下列命令运行前端。这会设置并运行 React 前端用户界面,使用户可以与多智能体事件响应系统交互,以监控 AWS 基础设施、查询 CloudWatch 指标和日志,并通过协同工作的 A2A 智能体搜索补救策略。
cd frontend
npm install
chmod +x ./setup-env.sh
./setup-env.sh
npm run dev这次部署创建一个多智能体 A2A 系统,三个专用 AI 智能体运行在 Amazon Bedrock AgentCore Runtime 上,并使用 A2A 协议编排。Cognito 堆栈通过创建一个带有四个不同客户端应用(WebSearch、Monitoring、Gateway 和 Host Agent 客户端)的 Cognito 用户池,提供基于 OAuth 2.0 的机器到机器认证。
监控智能体(使用 Strands SDK 构建)通过 AgentCore Gateway,使用 Smithy 模型定义连接到 CloudWatch 指标和日志,并带有用于事件跟踪的自定义语义记忆策略。
运维智能体(使用 OpenAI Agents SDK 构建)与 Tavily API 对接以做补救研究,主机智能体(使用 Google ADK 构建)充当协调者,使用 HTTP 协议把任务委派给两个专用 A2A 智能体。
端到端事件响应工作流
在本节中,我们将逐步说明一个端到端工作流:主机智能体管理对话,从用户处取得需求,并选择最合适的智能体来路由请求(监控智能体或运维智能体)。监控智能体和运维智能体暴露各自的智能体卡片,供主机智能体编排使用。在这个示例中,我们将用对各日志组做简单错误分析并搜索补救策略来测试。
该工作流包含下列步骤:
- 初次问候:用户向主机智能体发送问候消息,询问 “Hi! How are you?”。主机智能体处理该请求。主机智能体向用户回复友好问候,说 “I’m doing well, thank you!”
- 能力查询:用户询问主机智能体 “What are your capabilities?”,以了解该智能体能做什么。主机智能体向用户说明,它是一个为 AWS 监控和运维设计的编排智能体,依据的是它可以访问的远程智能体连接。
- 列出日志组和仪表盘:用户要求主机智能体列出其 AWS 账户中的日志组和仪表盘。主机智能体识别出这是监控任务,并执行
transfer_to_agent工具以委派工作。请求从主机智能体转移到监控智能体做专门处理。监控智能体使用智能体到智能体(A2A)Json RPC Transport 协议进行通信。监控智能体检索信息并返回结果,显示该账户中找到 0 个仪表盘和 153 个日志组。主机智能体从监控智能体接收结果,并向用户展示仪表盘和日志组信息。 - 分析特定日志组:用户要求主机智能体在路径
/aws/bedrock-agentcore/runtimes/hostadk-<runtimeId>-DEFAULT的特定日志组中查找错误。主机智能体判定这需要监控专长,并执行transfer_to_agent工具。请求被转移到监控智能体,并指示它分析指定日志组中的错误。监控智能体分析该日志组,发现 9 个错误和 18 个警告,并具体识别出 OTLP Export Failures。主机智能体接收分析结果,并向用户展示详细的错误分析报告。 - 调试和修复建议:用户要求主机智能体调试这些错误,并提供一份关于所需修复的报告。请求被转移到运维智能体,以搜索与 OTLP 导出失败相关的解决方案。运维智能体使用 A2A JsonRPC Transport 尝试搜索,并执行网页搜索以提供解决方案。
Amazon Bedrock AgentCore Runtime 上 A2A 的安全
Amazon Bedrock AgentCore Runtime 支持两种认证方法来保护 A2A 通信:
OAuth 2.0 认证:A2A 客户端向外部授权服务器认证,以取得 JSON Web Token(JWT),随后该令牌被包含在发往 A2A 服务器的全部请求中。这种基于令牌的方法使用机器到机器(machine-to-machine, M2M)凭证或用户联邦,实现安全、标准化的认证,使 A2A 服务器能够核验客户端身份,并基于令牌中的声明实施访问控制。
AWS IAM 认证:A2A 客户端担任一个具有调用 A2A 服务器智能体权限的 IAM 角色。这种方法利用 AWS SigV4 请求签名和 IAM 策略来控制访问,减轻对外部令牌管理的需要,同时提供细粒度权限。
Amazon Bedrock AgentCore Runtime 对 A2A 支持的内容
Amazon Bedrock AgentCore Runtime 为 A2A 通信提供全面支持。部分受支持的能力如下:
- 无状态服务器:Amazon Bedrock AgentCore Runtime 可以托管暴露 HTTP 接口的 A2A 服务器,在端口 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 Virtual Private Cloud(VPC) 中的资源。通过配置 VPC 连接,你可以安全访问私有资源,例如数据库、内部 API 以及 VPC 内的服务。
- 利用 AWS PrivateLink:Amazon Bedrock AgentCore 使用 AWS PrivateLink 在你的 Virtual Private Cloud(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 这类协议成为必要的构建块。它们造就这样一种未来:智能体可以被动态发现、组合和编排,使组织能够一次构建、随处集成。
PRIMARY_SOURCE: https://aws.amazon.com/blogs/machine-learning/introducing-agent-to-agent-protocol-support-in-amazon-bedrock-agentcore-runtime
- #A2A
- #AgentCore
- #多智能体
- #事件响应
- #部署


