AI News HubLIVE
站內改寫2 分鐘閱讀

構建無服務器A2A網關:實現智能體發現、路由與訪問控制

本文介紹如何在AWS上構建一個無服務器A2A網關,統一管理多個AI智能體的通信,包括路徑路由、集中權限控制和語義搜索。網關通過三個層面(管理、控制、執行)簡化智能體集成,支持標準A2A協議,無需修改客户端。

來源AWS Machine Learning Blog作者: Reilly Manton

隨着企業在不同團隊、供應商和基礎設施中部署AI智能體,管理智能體間的通信成為日益增長的運營負擔。如果沒有集中化層,每個新智能體的集成都會增加點對點連接、獨立的憑據和自定義路由邏輯。團隊花費工程週期來構建連接,而非開發智能體能力。訪問控制變得碎片化,缺乏單一位置來強制執行哪些客户端可以訪問哪些智能體。其結果是新的智能體工作流上市速度變慢,由於不一致的身份驗證策略導致安全風險增加,以及每個新智能體加入網絡時運營開銷呈二次方增長。

網關模式通過在智能體前端放置一個單一入口點來解決這一問題,無論智能體運行在Amazon ECS、AWS Lambda、Amazon Bedrock AgentCore運行時、非AWS雲還是混合環境。它集中處理路由並強制執行細粒度權限,而不將團隊綁定到特定的運行時、框架或編排層。該模式建立在智能體間通信協議(A2A)的基礎上,該協議標準化了智能體之間的通信方式。如果沒有中央編排器,20個智能體的部署需要多達190個點對點連接。

本文中,你將學習如何在AWS上構建一個無服務器A2A網關,該網關使用基於路徑的路由(/agents/{agentId})將多個智能體託管在單個域名下。標準A2A客户端無需修改即可工作。該解決方案包含三個層面:管理層面(集中化智能體註冊,支持發現和語義搜索)、控制層面(使用JWT作用域和Lambda授權器實施細粒度訪問控制)、執行層面(單域路由,支持OAuth後端認證和SSE流式傳輸)。

架構

Amazon API Gateway(REST API)作為單一入口點。架構使用REST API,因為它支持響應流式傳輸。流式傳輸對於基於SSE的實時智能體響應是必需的。Lambda授權器檢查JWT作用域,並生成允許訪問特定智能體路徑(/agents/agent-a/*)而拒絕其他路徑的IAM策略。

Lambda函數實現網關邏輯:授權器驗證JWT並基於作用域到智能體的映射生成IAM策略;註冊表列出調用方可以訪問的智能體,並將URL重寫為指向網關;搜索使用Amazon Bedrock中的Amazon Titan文本嵌入進行語義智能體發現;代理通過Lambda Web適配器將請求路由到後端智能體,支持SSE流式傳輸;管理用於智能體註冊和生命週期管理。

Amazon DynamoDB存儲三個表:智能體註冊表、權限表和速率限制計數器表。Amazon Cognito使用OAuth 2.0客户端憑證流處理身份驗證。令牌中的作用域決定調用方可以訪問哪些智能體。AWS Secrets Manager存儲後端憑據。

網關設計

A2A原生端點遵循A2A協議規範,並路由到後端智能體。網關支持規範中定義的兩種協議綁定:JSON-RPC和HTTP+JSON/REST。此外,網關端點提供代理發現、搜索和生命週期管理功能。

三層模型

隨着智能體部署的增長,團隊需要了解可用內容。管理層面提供集中化註冊表,其中智能體及其功能、後端URL和狀態被編目。控制層面基於JWT作用域強制執行細粒度權限,未授權的請求在API Gateway級別被拒絕。執行層面處理請求到後端智能體的實際路由,支持SSE流式傳輸和OAuth身份驗證。

部署與測試

網關完全使用Terraform部署。前提條件包括Terraform >= 1.5.0、Python 3.12、配置了有效憑據的AWS CLI和Docker。代碼可在 aws-samples GitHub倉庫中找到。克隆倉庫、配置變量、構建Lambda包並部署。測試包括獲取憑證、獲得JWT、部署示例智能體、註冊智能體到網關、更新權限以及發送消息。

該解決方案提供了一個可擴展、安全且易於管理的智能體通信基礎設施,適用於企業級AI應用。