Pular para o conteúdo

Site React para AgentCore Gateway

O gerador connection pode conectar um site React aos agentes expostos por um AgentCore Gateway gerado com protocol: http.

O navegador se comunica apenas com o Gateway — requisições para <gatewayUrl>/<targetName>/invocations são encaminhadas por proxy para o runtime do agente por trás dele. Como o site nunca precisa alcançar os runtimes diretamente, os agentes podem ser implantados dentro de uma VPC, com o Gateway como o único ponto de entrada governado fornecendo autenticação e observabilidade.

Antes de usar este gerador, certifique-se de ter:

  1. Um projeto de site React
  2. Um projeto agentcore-gateway gerado com protocol: http
  3. Pelo menos um agente AG-UI ou HTTP anexado ao Gateway através do gerador de conexão Gateway para agente

O gerador cria um cliente de site para cada agente AG-UI ou HTTP anexado ao Gateway (alvos A2A são ignorados — eles falam JSON-RPC de agente para agente, não um protocolo de navegador). Ele gera os mesmos clientes que conectar o site a cada agente diretamente (AG-UI/CopilotKit para agentes AG-UI, um cliente OpenAPI para agentes HTTP Python), roteados através do Gateway em vez de no runtime.

Terminal window
pnpm nx g @aws/nx-plugin:connection
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
Terminal window
pnpm nx g @aws/nx-plugin:connection --dry-run

Selecione o projeto do site como origem e o projeto do Gateway como destino.

ParâmetroTipoPadrãoDescrição
sourceProject Obrigatóriostring-O projeto de origem
targetProject Obrigatóriostring-O projeto de destino para conectar
sourceComponent string-O componente de origem para conectar (nome do componente, caminho relativo à raiz do projeto de origem, ou id do gerador). Use '.' para selecionar explicitamente o projeto como origem.
targetComponent string-O componente de destino para conectar (nome do componente, caminho relativo à raiz do projeto de destino, ou id do gerador). Use '.' para selecionar explicitamente o projeto como destino.
preferInstallDependencies booleantrueSe deve preferir instalar dependências após a execução do gerador. Defina como false para adiar a instalação ao executar múltiplos geradores em lote (uma instalação ainda é executada se necessário para que os geradores subsequentes possam calcular o grafo de projetos Nx); instale uma vez no final.

Para cada agente AG-UI exposto, os mesmos arquivos da conexão React para agente AG-UI são gerados (um AguiProvider, um hook useAgui<Agent> e um módulo de componente CopilotKit com tema), com o hook lendo a URL do Gateway da configuração de runtime:

  • Directorypackages/<website>/src
    • Directorycomponents
      • AguiProvider.tsx Provedor CopilotKit registrando cada agente
      • Directorycopilot/ Componentes de chat com tema
    • Directoryhooks
      • useAgui<Agent>.tsx Conecta ao agente através da rota /<targetName>/invocations do Gateway

Para cada agente HTTP Python exposto, os mesmos arquivos da conexão React para agente Python são gerados (um cliente OpenAPI type-safe, hooks e um provedor), com a URL base do cliente roteada através do Gateway.

A URL do Gateway é registrada no namespace connection.gateways.<GatewayClassName> da Configuração de Runtime, então ela é publicada no runtime-config.json do site.

Para um Gateway IAM, conceda aos usuários autenticados do site permissão para invocá-lo (um Gateway Cognito não precisa de concessão — o navegador autentica com seu token bearer JWT em vez disso):

packages/infra/src/stacks/application-stack.ts
const identity = new UserIdentity(this, 'UserIdentity');
new Website(this, 'Website');
const myGateway = new MyGateway(this, 'MyGateway');
myGateway.addAgent(myAgent);
myGateway.grantInvokeAccess(identity.identityPool.authenticatedRole);

O target dev do site ganha uma dependência no target dev do projeto Gateway, que inicia o gateway local mais todos os agentes anexados. A configuração de runtime do site é sobrescrita no modo local-dev para apontar a URL do Gateway para o gateway local, então o navegador exercita as mesmas rotas /<targetName>/invocations localmente:

Terminal window
pnpm nx dev <website-name>

O gerador conecta o site aos agentes anexados ao Gateway no momento em que é executado. Após anexar outro agente ao Gateway, execute novamente o gerador de conexão para gerar seu cliente de site — clientes existentes são deixados intocados.