Ir al contenido

Sitio Web React a AgentCore Gateway

El generador connection puede conectar un sitio web React a los agentes frontales de un AgentCore Gateway generado con protocol: http.

El navegador solo se comunica con el Gateway — las solicitudes a <gatewayUrl>/<targetName>/invocations se envían por proxy al runtime del agente detrás de él. Debido a que el sitio web nunca necesita alcanzar los runtimes directamente, los agentes pueden desplegarse dentro de una VPC, con el Gateway como el único punto de entrada gobernado que proporciona autenticación y observabilidad.

Antes de usar este generador, asegúrate de tener:

  1. Un proyecto de sitio web React
  2. Un proyecto agentcore-gateway generado con protocol: http
  3. Al menos un agente AG-UI o HTTP adjunto al Gateway a través del generador de conexión Gateway a agente

El generador crea un cliente de sitio web para cada agente AG-UI o HTTP adjunto al Gateway (los targets A2A se omiten — hablan JSON-RPC de agente a agente, no un protocolo de navegador). Genera los mismos clientes que conectar el sitio web a cada agente directamente (AG-UI/CopilotKit para agentes AG-UI, un cliente OpenAPI para agentes HTTP de Python), enrutados a través del Gateway en lugar del runtime.

Ejecute este generador@aws/nx-plugin:connection

pnpm nx g @aws/nx-plugin:connection
Construya su comando5

Requerido

Requerido

Selecciona el proyecto del sitio web como origen y el proyecto del Gateway como destino.

Opciones del generador5 opciones
sourceProjectRequeridostring

El proyecto de origen

targetProjectRequeridostring

El proyecto de destino al que conectar

sourceComponentstring

El componente de origen desde el cual conectar (nombre del componente, ruta relativa a la raíz del proyecto de origen, o id del generador). Usa '.' para seleccionar explícitamente el proyecto como origen.

targetComponentstring

El componente de destino al cual conectar (nombre del componente, ruta relativa a la raíz del proyecto de destino, o id del generador). Usa '.' para seleccionar explícitamente el proyecto como destino.

preferInstallDependenciesbooleanPredeterminado: true

Si se prefiere instalar las dependencias después de que se ejecute el generador. Establecer en false para diferir la instalación al ejecutar múltiples generadores en lote (la instalación aún se ejecuta si es necesario para que los generadores subsiguientes puedan calcular el grafo de proyectos de Nx); instalar una vez al final.

Para cada agente AG-UI frontal, se generan los mismos archivos que la conexión React a agente AG-UI (un AguiProvider, un hook useAgui<Agent> y un módulo de componente CopilotKit con tema), con el hook leyendo la URL del Gateway desde la configuración de runtime:

  • Directoriopackages/<website>/src
    • Directoriocomponents
      • AguiProvider.tsx Proveedor CopilotKit que registra cada agente
      • Directoriocopilot/ Componentes de chat con tema
    • Directoriohooks
      • useAgui<Agent>.tsx Se conecta al agente a través de la ruta /<targetName>/invocations del Gateway

Para cada agente HTTP de Python frontal, se generan los mismos archivos que la conexión React a agente Python (un cliente OpenAPI con tipos seguros, hooks y un proveedor), con la URL base del cliente enrutada a través del Gateway.

La URL del Gateway se registra en el espacio de nombres connection.gateways.<GatewayClassName> de Runtime Configuration, por lo que se publica en el runtime-config.json del sitio web.

Para un Gateway IAM, otorga a los usuarios autenticados del sitio web permiso para invocarlo (un Gateway de Cognito no necesita concesión — el navegador se autentica con su token bearer JWT en su lugar):

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);

El target dev del sitio web obtiene una dependencia en el target dev del proyecto Gateway, que inicia el gateway local más cada agente adjunto. La configuración de runtime del sitio web se sobrescribe en modo local-dev para apuntar la URL del Gateway al gateway local, por lo que el navegador ejercita las mismas rutas /<targetName>/invocations localmente:

Terminal window
pnpm nx dev <website-name>

El generador conecta el sitio web a los agentes adjuntos al Gateway en el momento en que se ejecuta. Después de adjuntar otro agente al Gateway, vuelve a ejecutar el generador de conexión para generar su cliente de sitio web — los clientes existentes se dejan intactos.