亚马逊近日宣布在Amazon Bedrock AgentCore Runtime中新增对Agent-to-Agent (A2A)协议的支持,这一突破性进展使得基于不同框架(如Strands Agents、OpenAI Agents SDK、LangGraph、Google ADK或Claude Agents SDK)构建的智能代理能够实现跨平台互操作。该协议允许代理在统一的、可验证的格式下共享上下文、能力和推理过程,为多代理系统的协同工作奠定了坚实基础。
在代理系统的核心架构中,几个关键组件确保了系统的高效运行。内存管理分为两个层级:短期内存负责维护活跃会话中的对话上下文,长期内存则保留跨多个会话的持久化洞察。工具集成使代理能够通过原生连接或模型上下文协议(MCP)服务器访问功能接口。身份管理模块实现了更安全的认证和权限控制,允许代理代表用户执行操作或自主访问资源。安全护栏则通过内容检测、幻觉预防和策略对齐等机制,确保系统响应符合事实准确性和安全规范。
A2A协议与MCP在系统架构中解决了不同层面的问题。MCP专注于单个代理与工具、数据源之间的连接,而A2A协议专门处理多代理部署场景下的代理间通信需求。这种分工使得系统设计更加清晰:MCP解决代理到资源的连接问题,A2A则专注于代理之间的协调交互。
该协议采用松耦合和模块化设计,每个代理都可以作为独立单元运行。开发者可以对单个代理进行开发、测试、部署和升级,而不会影响整个系统的稳定性。新的专业化代理可以无缝加入现有部署,同时代理故障会被隔离在明确定义的交互边界内。
A2A协议还集成了动态代理发现和编排能力。代理通过标准化模式声明其功能,形成可用函数和专业能力的注册表。编排代理可以根据实时任务需求发现并调用 specialized 代理,实现随着条件变化而自适应调整的任务路由机制。
在技术实现层面,A2A服务器(或称远程代理)通过HTTP端点暴露协议规范接口。这些服务器接收请求、处理任务并将结果返回给调用代理。架构支持基于HTTP/S的JSON-RPC 2.0同步交互和服务器发送事件(Server-Sent Events)的异步通信模式。
每个代理都会发布一个Agent Card——这是一个JSON格式的元数据文件,用于宣告代理的身份、能力、端点和认证要求。这种元数据机制实现了动态发现功能,使得代理在委托任务前能够查询对等代理的能力信息。Agent Card充当了合约规范,为其他代理提供了与发布代理正确交互所需的全部信息。
任务对象(Task Object)代表了在系统中流动的每个工作单元。每个任务携带唯一标识符,并在代理间移动时维护自身的生命周期。任务可以是涉及多个交互轮次、跨越多个代理协作的长时间运行操作。协议会跟踪代理协调过程中的任务状态,允许编排代理监控分布式代理协作的进度,并处理故障或超时情况。
在安全方面,Palo Alto Networks旗下Unit42团队指出了协议有状态设计中的潜在漏洞。根据其分析报告,"A2A协议的有状态行为让代理能够记住最近的交互并维持连贯的对话。会话走私攻击利用这一特性,在正常客户端请求和服务器响应中隐藏恶意指令。"
对于希望构建A2A系统的开发者,亚马逊提供了完整的技术资源支持。Amazon Bedrock AgentCore开发者指南包含了运行时操作、内存管理和跨代理部署身份处理的全面文档。A2A协议合约规范定义了实现代理间通信的技术要求和交互模式。这些资源与云原生架构的最佳实践相结合,为构建可靠的智能代理系统提供了完整的技术栈支持。
|