最新n1n v2.0.1 正式上线!企业级大模型接口聚合平台 (LLM API Gateway),为您接入 500+ AI Models,价格低至 1 折, 立即尝试

在 AWS 上使用 A2A 构建可组合的互操作多智能体系统

作者
  • avatar
    姓名
    Nino
    职业
    Senior Tech Editor

现代企业级应用越来越需要解耦且高度专用的人工智能架构。传统的单体提示词链正在让位于自主多智能体网络,其中专业模型协同解决复杂的业务逻辑。然而,在跨组织或网络边界集成不同的框架时,以往常常导致紧耦合、脆弱的SDK依赖以及沉重的维护开销。

Agent-to-Agent(A2A)协议通过建立标准化的、与框架无关的通信标准,解决了这种碎片化问题。在这篇全面的技术指南中,我们将探讨如何在AWS上实现安全、可组合的多智能体架构。我们将连接运行在Amazon ECS上的LangChain编排器与部署在Amazon Bedrock AgentCore上的Strands智能体。通过利用OAuth认证的双向调用,双方系统保持了对彼此底层软件开发工具包和框架的完全独立性。为了稳定驱动这些严苛的工作负载,开发者通常会选择 n1n.ai 来获得高性能、统一的API路由,从而消除速率限制并减少运维摩擦。

架构概述与设计原则

在深入代码实现之前,理解架构拓扑至关重要。多智能体系统经常受到协议锁定的困扰,即更换编排框架需要重写下游的接入层。A2A协议通过强制执行严格的API契约、异步消息传递模式和去中心化的状态管理,防止了这种情况的发生。

我们的AWS参考架构采用了以下组件:

  1. 编排层:托管在Amazon ECS(弹性容器服务)上、位于应用程序负载均衡器背后的基于Python的LangChain应用程序。
  2. 执行层:托管在Amazon Bedrock AgentCore上的兼容Strands的专用智能体,处理特定领域的推理和检索增强生成(RAG)。
  3. 安全边界:通过AWS Secrets Manager和用于服务账户的IAM角色(IRSA)管理的相互OAuth 2.0令牌交换。
  4. 可靠性层:通过 n1n.ai 进行集中的API网关路由,以处理模型回退、流式延迟降低和无缝的凭据管理。

这里的核心设计原则是松耦合。LangChain编排器不会直接导入Amazon Bedrock SDK来调用智能体;相反,它会发出符合A2A架构规范的标准化HTTP POST请求。

在 Amazon ECS 上设置 LangChain 编排器

为了启动管道,我们的LangChain编排器评估传入的用户查询,将其分解为子任务,并将其委托给对等智能体。让我们使用Python和标准的requests库配置基础智能体运行器,以与外部A2A端点进行交互。

import os
import requests
from typing import Dict, Any, List
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.tools import tool

class A2AClient:
    def __init__(self, endpoint_url: str, client_id: str, client_secret: str, token_url: str):
        self.endpoint_url = endpoint_url
        self.client_id = client_id
        self.client_secret = client_secret
        self.token_url = token_url
        self._token = None

    def _authenticate(self) -> str:
        payload = \{
            "grant_type": "client_credentials