Agente de Strands de Python
Genera un Agente Strands en Python para construir agentes de IA con herramientas, y opcionalmente desplegarlo en Amazon Bedrock AgentCore Runtime. Por defecto, el generador usa FastAPI para exponer un servidor HTTP. Alternativamente, puedes elegir el protocolo Agent-to-Agent (A2A) para interoperabilidad con otros agentes compatibles con A2A, o el protocolo AG-UI para integración directa con el frontend mediante CopilotKit.
¿Qué es Strands?
Sección titulada «¿Qué es Strands?»Strands es un framework Python ligero y listo para producción para construir agentes de IA. Características clave incluyen:
- Ligero y personalizable: Bucle de agente simple que no interfiere
- Listo para producción: Observabilidad completa, tracing y opciones de despliegue escalables
- Agnóstico a modelos y proveedores: Soporta múltiples modelos de distintos proveedores
- Herramientas comunitarias: Conjunto potente de herramientas contribuidas por la comunidad
- Soporte multi-agente: Técnicas avanzadas como equipos de agentes y agentes autónomos
- Modos de interacción flexibles: Soporte conversacional, streaming y no streaming
Generar un Agente Strands
Sección titulada «Generar un Agente Strands»Puedes generar un Agente Strands en Python de dos formas:
- Instale el Nx Console VSCode Plugin si aún no lo ha hecho
- Abra la consola Nx en VSCode
- Haga clic en
Generate (UI)en la sección "Common Nx Commands" - Busque
@aws/nx-plugin - py#strands-agent - Complete los parámetros requeridos
- Haga clic en
Generate
pnpm nx g @aws/nx-plugin:py#strands-agentyarn nx g @aws/nx-plugin:py#strands-agentnpx nx g @aws/nx-plugin:py#strands-agentbunx nx g @aws/nx-plugin:py#strands-agentTambién puede realizar una ejecución en seco para ver qué archivos se cambiarían
pnpm nx g @aws/nx-plugin:py#strands-agent --dry-runyarn nx g @aws/nx-plugin:py#strands-agent --dry-runnpx nx g @aws/nx-plugin:py#strands-agent --dry-runbunx nx g @aws/nx-plugin:py#strands-agent --dry-runOpciones
Sección titulada «Opciones»| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| project Requerido | string | - | El proyecto al que agregar el Strands Agent |
| computeType | string | BedrockAgentCoreRuntime | El tipo de cómputo para alojar tu Strands Agent. |
| name | string | - | El nombre de tu Strands Agent (predeterminado: agent) |
| auth | string | IAM | El método utilizado para autenticar con tu Strands Agent. Elige entre IAM (predeterminado) o Cognito. |
| protocol | string | HTTP | El protocolo del servidor para tu Strands Agent. HTTP expone un servidor HTTP FastAPI. A2A expone un servidor de protocolo Agent-to-Agent. AG-UI expone un servidor de protocolo Agent-User Interaction para integración directa con el frontend. |
| iacProvider | string | Inherit | El proveedor de IaC preferido. Por defecto, esto se hereda de tu selección inicial. |
Salida del Generador
Sección titulada «Salida del Generador»El generador añadirá los siguientes archivos a tu proyecto Python existente. Los archivos generados dependen del protocol elegido:
Protocolo HTTP (por defecto)
Sección titulada «Protocolo HTTP (por defecto)»Directorioyour-project/
Directorioyour_module/
Directorioagent/ (o nombre personalizado si se especifica)
- __init__.py Inicialización del paquete Python
- init.py Configuración de aplicación FastAPI con middleware CORS y manejo de errores
- agent.py Definición principal del agente con herramientas de ejemplo
- main.py Punto de entrada FastAPI para Bedrock AgentCore Runtime
- Dockerfile Punto de entrada para alojar tu agente (excluido cuando
computeTypeesNone)
- pyproject.toml Actualizado con dependencias de Strands
- project.json Actualizado con objetivos de servicio del agente
Protocolo A2A
Sección titulada «Protocolo A2A»Cuando protocol se establece en A2A, el punto de entrada usa el Strands A2A Server en lugar de FastAPI:
Directorioyour-project/
Directorioyour_module/
Directorioagent/ (o nombre personalizado si se especifica)
- __init__.py Inicialización del paquete Python
- agent.py Definición principal del agente con herramientas de ejemplo
- main.py Punto de entrada del servidor A2A
- Dockerfile Punto de entrada para alojar tu agente (excluido cuando
computeTypeesNone)
- pyproject.toml Actualizado con dependencias de Strands
- project.json Actualizado con objetivos de servicio del agente
Protocolo AG-UI
Sección titulada «Protocolo AG-UI»Cuando protocol se establece en AG-UI, el punto de entrada usa la integración ag-ui-strands, que expone tu agente mediante el protocolo AG-UI para integración directa con el frontend usando CopilotKit:
Directorioyour-project/
Directorioyour_module/
Directorioagent/ (o nombre personalizado si se especifica)
- __init__.py Inicialización del paquete Python
- agent.py Definición principal del agente con herramientas de ejemplo
- main.py Punto de entrada del servidor AG-UI usando ag-ui-strands
- Dockerfile Punto de entrada para alojar tu agente (excluido cuando
computeTypeesNone)
- pyproject.toml Actualizado con dependencias de Strands y AG-UI
- project.json Actualizado con objetivos de servicio del agente
Infraestructura
Sección titulada «Infraestructura»Dado que este generador proporciona infraestructura como código basada en tu proveedor de iacProvider seleccionado, creará un proyecto en packages/common que incluye los constructos CDK o módulos de Terraform correspondientes.
El proyecto común de infraestructura como código tiene la siguiente estructura:
Directoriopackages/common/constructs
Directoriosrc
Directorioapp/ Constructos para infraestructura específica de un proyecto/generador
- …
Directoriocore/ Constructos genéricos reutilizados por los constructos en
app- …
- index.ts Punto de entrada que exporta los constructos de
app
- project.json Objetivos de compilación y configuración del proyecto
Directoriopackages/common/terraform
Directoriosrc
Directorioapp/ Módulos de Terraform para infraestructura específica de un proyecto/generador
- …
Directoriocore/ Módulos genéricos reutilizados por los módulos en
app- …
- project.json Objetivos de compilación y configuración del proyecto
Para desplegar tu Agente Strands, se generan los siguientes archivos:
Directoriopackages/common/constructs/src
Directorioapp
Directorioagents
Directorio<project-name>
- <project-name>.ts Constructo CDK para desplegar tu agente
Directoriopackages/common/terraform/src
Directorioapp
Directorioagents
Directorio<project-name>
- <project-name>.tf Módulo para desplegar tu agente
Directoriocore
Directorioagent-core
- runtime.tf Módulo genérico para despliegue en Bedrock AgentCore Runtime
Trabajando con tu Agente Strands
Sección titulada «Trabajando con tu Agente Strands»Añadiendo Herramientas
Sección titulada «Añadiendo Herramientas»Las herramientas son funciones que el agente de IA puede llamar para realizar acciones. Strands usa un enfoque basado en decoradores para definirlas.
Puedes añadir nuevas herramientas en el archivo agent.py:
from strands import Agent, tool
@tooldef calculate_sum(numbers: list[int]) -> int: """Calcula la suma de una lista de números""" return sum(numbers)
@tooldef get_weather(city: str) -> str: """Obtiene información meteorológica de una ciudad""" # Tu integración de API del tiempo aquí return f"Weather in {city}: Soleado, 25°C"
# Añade herramientas al agenteagent = Agent( system_prompt="Eres un asistente útil con acceso a varias herramientas.", tools=[calculate_sum, get_weather],)El framework Strands maneja automáticamente:
- Validación de tipos basada en type hints
- Generación de esquema JSON para tool calling
- Manejo de errores y formato de respuestas
Usando Herramientas Preconstruidas
Sección titulada «Usando Herramientas Preconstruidas»Strands provee herramientas preconstruidas a través del paquete strands-tools:
from strands_tools import current_time, http_request, file_read
agent = Agent( system_prompt="Eres un asistente útil.", tools=[current_time, http_request, file_read],)Configuración de Modelos
Sección titulada «Configuración de Modelos»Por defecto, Strands usa Claude 4 Sonnet, pero puedes personalizar el proveedor. Consulta la documentación de Strands sobre proveedores de modelos:
from strands import Agentfrom strands.models import BedrockModel
# Crea un BedrockModelbedrock_model = BedrockModel( model_id="anthropic.claude-sonnet-4-20250514-v1:0", region_name="us-west-2", temperature=0.3,)
agent = Agent(model=bedrock_model)Consumiendo Servidores MCP
Sección titulada «Consumiendo Servidores MCP»Puedes añadir herramientas de servidores MCP a tu agente Strands.
Para consumir servidores MCP creados con los generadores py#mcp-server o ts#mcp-server puedes hacer uso del generador connection.
- Instale el Nx Console VSCode Plugin si aún no lo ha hecho
- Abra la consola Nx en VSCode
- Haga clic en
Generate (UI)en la sección "Common Nx Commands" - Busque
@aws/nx-plugin - connection - Complete los parámetros requeridos
- Haga clic en
Generate
pnpm nx g @aws/nx-plugin:connectionyarn nx g @aws/nx-plugin:connectionnpx nx g @aws/nx-plugin:connectionbunx nx g @aws/nx-plugin:connectionTambién puede realizar una ejecución en seco para ver qué archivos se cambiarían
pnpm nx g @aws/nx-plugin:connection --dry-runyarn nx g @aws/nx-plugin:connection --dry-runnpx nx g @aws/nx-plugin:connection --dry-runbunx nx g @aws/nx-plugin:connection --dry-runConsulta la guía del generador connection para detalles sobre cómo se configura la conexión.
Para otros servidores MCP, consulta la Documentación de Strands.
Más información
Sección titulada «Más información»Para una guía detallada sobre cómo escribir agentes Strands, consulta la documentación de Strands.
Protocolo
Sección titulada «Protocolo»El protocolo de servidor de tu agente determina cómo se comunica. Todas las opciones son servidas por FastAPI — el punto de entrada difiere:
- HTTP (por defecto): Un servidor FastAPI estándar con un endpoint personalizado
/invocations, CORS y streaming. Mejor para integraciones de clientes personalizados. - A2A: El Strands A2A Server montado sobre una aplicación FastAPI. Mejor cuando tu agente necesita ser descubrible e invocable por otros agentes compatibles con A2A.
- AG-UI: La integración ag-ui-strands, que expone el protocolo AG-UI mediante SSE. Mejor para integración directa con el frontend usando CopilotKit en un sitio web React.
Todos los protocolos exponen /ping para el contrato de verificación de salud del runtime de AgentCore. Los agentes A2A escuchan en el puerto 9000; los agentes HTTP y AG-UI escuchan en el puerto 8080. El Dockerfile y la infraestructura generados están configurados para ti.
Servidor FastAPI (protocolo HTTP)
Sección titulada «Servidor FastAPI (protocolo HTTP)»El servidor HTTP generado incluye:
- Configuración de aplicación FastAPI con middleware CORS
- Middleware de manejo de errores
- Generación de esquema OpenAPI
- Endpoint de verificación de salud (
/ping) - Endpoint de invocación del agente (
/invocations)
Personalizando Entradas y Salidas de Invocación con Pydantic
Sección titulada «Personalizando Entradas y Salidas de Invocación con Pydantic»El endpoint de invocación del agente usa modelos Pydantic para definir y validar los esquemas de solicitud y respuesta. Puedes personalizar estos modelos en main.py para que coincidan con los requisitos de tu agente.
Definiendo Modelos de Entrada
Sección titulada «Definiendo Modelos de Entrada»El modelo InvokeInput por defecto acepta un mensaje.
from pydantic import BaseModel
class InvokeInput(BaseModel): message: strPuedes extender este modelo para incluir cualquier campo adicional que tu agente necesite.
El ID de sesión se extrae del header HTTP x-amzn-bedrock-agentcore-runtime-session-id, de acuerdo con el contrato de sesión de Bedrock AgentCore Runtime. Si el header no se proporciona, se genera un UUID aleatorio como alternativa.
Definiendo Modelos de Salida
Sección titulada «Definiendo Modelos de Salida»Para respuestas de streaming, el generador proporciona JsonStreamingResponse que serializa automáticamente modelos Pydantic al formato JSON Lines (application/jsonl). Este formato es compatible con la especificación de streaming de OpenAPI 3.2 y funciona perfectamente con el cliente TypeScript generado.
Por defecto, el agente produce objetos StreamChunk que contienen el texto de respuesta del agente:
class StreamChunk(BaseModel): content: strPuedes personalizar el modelo StreamChunk según tus necesidades:
from pydantic import BaseModel
class StreamChunk(BaseModel): content: str timestamp: str token_count: intExiste una solicitud de característica abierta para soporte nativo en FastAPI.
SDK Python de Bedrock AgentCore
Sección titulada «SDK Python de Bedrock AgentCore»El generador incluye una dependencia del SDK Python de Bedrock AgentCore para las constantes PingStatus. Si lo deseas, es sencillo usar BedrockAgentCoreApp en lugar de FastAPI, sin embargo ten en cuenta que se pierde la seguridad de tipos.
Puedes encontrar detalles sobre las capacidades del SDK en la documentación.
Servidor A2A (protocolo A2A)
Sección titulada «Servidor A2A (protocolo A2A)»Cuando protocol=A2A, el main.py generado monta A2AServer.to_fastapi_app() sobre una aplicación FastAPI padre que también expone /ping. Cuando se despliega en AgentCore, el punto de entrada resuelve el ARN público del runtime desde AppConfig y lo anuncia en la tarjeta del agente.
La mayoría de los usuarios no necesitarán modificar este archivo — edita agent.py para cambiar herramientas o el prompt del sistema. El servidor A2A puebla la tarjeta del agente (/.well-known/agent-card.json) desde el name y description del constructor Agent.
Servidor AG-UI (protocolo AG-UI)
Sección titulada «Servidor AG-UI (protocolo AG-UI)»Cuando protocol=AG-UI, el main.py generado envuelve tu Agent de Strands en un ag_ui_strands.StrandsAgent y crea una aplicación FastAPI mediante create_strands_app(). La aplicación resultante expone un único endpoint POST que transmite eventos de AG-UI mediante Server-Sent Events (SSE), así como /ping para la verificación de salud del runtime de AgentCore.
La mayoría de los usuarios no necesitarán modificar este archivo — edita agent.py para cambiar herramientas o el prompt del sistema.
Ejecutando tu Agente Strands
Sección titulada «Ejecutando tu Agente Strands»Desarrollo Local
Sección titulada «Desarrollo Local»El generador configura un target llamado <your-agent-name>-serve para iniciar tu agente localmente:
pnpm nx agent-serve your-projectyarn nx agent-serve your-projectnpx nx agent-serve your-projectbunx nx agent-serve your-projectEste comando usa uv run para ejecutar tu agente con el SDK Python de Bedrock AgentCore.
Desplegando tu Agente Strands a Bedrock AgentCore Runtime
Sección titulada «Desplegando tu Agente Strands a Bedrock AgentCore Runtime»Infraestructura como Código
Sección titulada «Infraestructura como Código»Si seleccionaste BedrockAgentCoreRuntime para computeType, se genera la infraestructura CDK o Terraform relevante que puedes usar para desplegar tu Strands Agent en Amazon Bedrock AgentCore Runtime.
Se genera una construcción CDK para tu agente, nombrada según el name que elegiste al ejecutar el generador, o <ProjectName>Agent por defecto.
Puedes usar esta construcción CDK en una aplicación CDK:
import { MyProjectAgent } from ':my-scope/common-constructs';
export class ExampleStack extends Stack { constructor(scope: Construct, id: string) { new MyProjectAgent(this, 'MyProjectAgent'); }}Se genera un módulo Terraform para ti, nombrado según el name que elegiste al ejecutar el generador, o <ProjectName>-agent por defecto.
Puedes usar este módulo terraform en un proyecto Terraform:
# Agentmodule "my_project_agent" { # Relative path to the generated module in the common/terraform project source = "../../common/terraform/src/app/agents/my-project-agent"}Autenticación
Sección titulada «Autenticación»El generador proporciona una opción auth para configurar la autenticación de tu Strands Agent. Puedes elegir entre autenticación IAM (predeterminada) o Cognito al generar tu agente.
Por defecto, tu Strands Agent estará protegido usando autenticación IAM, simplemente despliégalo sin ningún argumento:
import { MyProjectAgent } from ':my-scope/common-constructs';
export class ExampleStack extends Stack { constructor(scope: Construct, id: string) { new MyProjectAgent(this, 'MyProjectAgent'); }}Puedes otorgar acceso para invocar tu agente en Bedrock AgentCore Runtime usando el método grantInvokeAccess, por ejemplo:
import { MyProjectAgent } from ':my-scope/common-constructs';
export class ExampleStack extends Stack { constructor(scope: Construct, id: string) { const agent = new MyProjectAgent(this, 'MyProjectAgent'); const lambdaFunction = new Function(this, ...);
agent.grantInvokeAccess(lambdaFunction); }}# Agentmodule "my_project_agent" { # Relative path to the generated module in the common/terraform project source = "../../common/terraform/src/app/agents/my-project-agent"}Para otorgar acceso para invocar tu agente, necesitarás agregar una política como la siguiente, haciendo referencia a la salida module.my_project_agent.agent_core_runtime_arn:
{ Effect = "Allow" Action = [ "bedrock-agentcore:InvokeAgentRuntime" ] Resource = [ module.my_project_agent.agent_core_runtime_arn, "${module.my_project_agent.agent_core_runtime_arn}/*" ]}Autenticación Cognito
Sección titulada «Autenticación Cognito»Cuando seleccionas autenticación Cognito, el generador configura el agente para usar Cognito para la autenticación.
La construcción generada acepta una propiedad identity que configura la autenticación Cognito:
import { MyProjectAgent, UserIdentity } from ':my-scope/common-constructs';
export class ExampleStack extends Stack { constructor(scope: Construct, id: string) { const identity = new UserIdentity(this, 'Identity');
new MyProjectAgent(this, 'MyProjectAgent', { identity, }); }}La construcción UserIdentity puede generarse usando el generador ts#react-website#auth, o puedes crear tu propio UserPool y UserPoolClient de CDK.
El módulo generado acepta las variables user_pool_id y user_pool_client_ids para la autenticación Cognito:
module "user_identity" { source = "../../common/terraform/src/core/user-identity"}
module "my_project_agent" { source = "../../common/terraform/src/app/agents/my-project-agent"
user_pool_id = module.user_identity.user_pool_id user_pool_client_ids = [module.user_identity.user_pool_client_id]}Targets de Bundle y Docker
Sección titulada «Targets de Bundle y Docker»Para construir tu Agente Strands para Bedrock AgentCore Runtime, se añade un target bundle que:
- Exporta dependencias Python a
requirements.txtusandouv export - Instala dependencias para la plataforma objetivo (
aarch64-manylinux_2_28) conuv pip install
También se añade un target docker específico de tu Agente Strands, que copia el Dockerfile y los artefactos empaquetados en un directorio de contexto docker. Esto co-localiza el Dockerfile con la salida construida, permitiendo a CDK construir la imagen Docker directamente usando AgentRuntimeArtifact.fromAsset.
Observabilidad
Sección titulada «Observabilidad»Tu agente se configura automáticamente con observabilidad usando AWS Distro for Open Telemetry (ADOT), mediante auto-instrumentación en tu Dockerfile.
Puedes encontrar trazas en CloudWatch seleccionando “GenAI Observability”. Para ver trazas, habilita Transaction Search.
Para más detalles, consulta la documentación de observabilidad de AgentCore.
Invocando tu Agente Strands
Sección titulada «Invocando tu Agente Strands»Invocar el Servidor Local
Sección titulada «Invocar el Servidor Local»Para invocar un Agente ejecutándose localmente mediante el target <your-agent-name>-serve, puedes enviar una simple solicitud POST a /invocations en el puerto donde se ejecuta tu agente local. Por ejemplo, con curl:
curl -N -X POST http://localhost:8081/invocations \ -d '{"message": "what is 3 + 5?"}' \ -H "Content-Type: application/json"Invocar el Agente Desplegado
Sección titulada «Invocar el Agente Desplegado»Para invocar tu Agente desplegado en Bedrock AgentCore Runtime, puedes enviar una solicitud POST al endpoint del plano de datos de Bedrock AgentCore Runtime con tu ARN de runtime codificado en URL.
Puedes obtener el ARN de runtime desde tu infraestructura de la siguiente manera:
import { CfnOutput } from 'aws-cdk-lib';import { MyProjectAgent } from ':my-scope/common-constructs';
export class ExampleStack extends Stack { constructor(scope: Construct, id: string) { const agent = new MyProjectAgent(this, 'MyProjectAgent');
new CfnOutput(this, 'AgentArn', { value: agent.agentCoreRuntime.agentRuntimeArn, }); }}# Agentmodule "my_project_agent" { # Relative path to the generated module in the common/terraform project source = "../../common/terraform/src/app/agents/my-project-agent"}
output "agent_arn" { value = module.my_project_agent.agent_core_runtime_arn}El ARN tendrá el siguiente formato: arn:aws:bedrock-agentcore:<region>:<account>:runtime/<agent-runtime-id>.
Luego puedes codificar el ARN en URL reemplazando : con %3A y / con %2F.
La URL del plano de datos de Bedrock AgentCore Runtime para invocar el agente es la siguiente:
https://bedrock-agentcore.<region>.amazonaws.com/runtimes/<url-encoded-arn>/invocationsLa forma exacta de invocar esta URL depende del método de autenticación utilizado.
Autenticación IAM
Sección titulada «Autenticación IAM»Para autenticación IAM, la solicitud debe firmarse usando AWS Signature Version 4 (SigV4).
acurl <region> bedrock-agentcore -N -X POST \'https://bedrock-agentcore.<region>.amazonaws.com/runtimes/<url-encoded-arn>/invocations' \-d '{"message": "what is 3 + 5?"}' \-H 'Content-Type: application/json'curl con Sigv4 habilitado
Puedes agregar el siguiente script a tu archivo .bashrc (y ejecutar source en él) o pegar lo siguiente en la misma terminal en la que deseas ejecutar el comando.
acurl () { REGION=$1 SERVICE=$2 shift; shift; curl --aws-sigv4 "aws:amz:$REGION:$SERVICE" --user "$(aws configure get aws_access_key_id):$(aws configure get aws_secret_access_key)" -H "X-Amz-Security-Token: $(aws configure get aws_session_token)" "$@"}Para realizar una solicitud curl autenticada con sigv4, invoca acurl de la siguiente manera:
acurl <region> <service> <other-curl-arguments>Por ejemplo:
API Gateway
Sección titulada «API Gateway»acurl ap-southeast-2 execute-api -X GET https://xxxStreaming Lambda function url
Sección titulada «Streaming Lambda function url»acurl ap-southeast-2 lambda -N -X POST https://xxxPuedes agregar la siguiente función a tu perfil de PowerShell o pegar lo siguiente en la misma sesión de PowerShell en la que deseas ejecutar el comando.
# PowerShell profile or current sessionfunction acurl { param( [Parameter(Mandatory=$true)][string]$Region, [Parameter(Mandatory=$true)][string]$Service, [Parameter(ValueFromRemainingArguments=$true)][string[]]$CurlArgs )
$AccessKey = aws configure get aws_access_key_id $SecretKey = aws configure get aws_secret_access_key $SessionToken = aws configure get aws_session_token
& curl --aws-sigv4 "aws:amz:$Region`:$Service" --user "$AccessKey`:$SecretKey" -H "X-Amz-Security-Token: $SessionToken" @CurlArgs}Para realizar una solicitud curl autenticada con sigv4, invoca acurl usando estos ejemplos:
API Gateway
Sección titulada «API Gateway»acurl ap-southeast-2 execute-api -X GET https://xxxStreaming Lambda function url
Sección titulada «Streaming Lambda function url»acurl ap-southeast-2 lambda -N -X POST https://xxxAutenticación JWT / Cognito
Sección titulada «Autenticación JWT / Cognito»Para autenticación Cognito, pasa el Access Token de Cognito en el header Authorization:
curl -N -X POST 'https://bedrock-agentcore.<region>.amazonaws.com/runtimes/<url-encoded-arn>/invocations' \ -d '{"message": "what is 3 + 5?"}' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <access-token>"Puedes obtener el access token usando el comando cognito-idp admin-initiate-auth del AWS CLI, por ejemplo:
aws cognito-idp admin-initiate-auth \ --user-pool-id <user-pool-id> \ --client-id <user-pool-client-id> \ --auth-flow ADMIN_NO_SRP_AUTH \ --auth-parameters USERNAME=<username>,PASSWORD=<password> \ --region <region> \ --query 'AuthenticationResult.AccessToken' \ --output textNavegador / Sitio Web React
Sección titulada «Navegador / Sitio Web React»Para invocar tu Agente Strands desde un sitio web React, puedes hacer uso del generador connection, que configura automáticamente un cliente con la autenticación correcta (IAM o Cognito).
- Instale el Nx Console VSCode Plugin si aún no lo ha hecho
- Abra la consola Nx en VSCode
- Haga clic en
Generate (UI)en la sección "Common Nx Commands" - Busque
@aws/nx-plugin - connection - Complete los parámetros requeridos
- Haga clic en
Generate
pnpm nx g @aws/nx-plugin:connectionyarn nx g @aws/nx-plugin:connectionnpx nx g @aws/nx-plugin:connectionbunx nx g @aws/nx-plugin:connectionTambién puede realizar una ejecución en seco para ver qué archivos se cambiarían
pnpm nx g @aws/nx-plugin:connection --dry-runyarn nx g @aws/nx-plugin:connection --dry-runnpx nx g @aws/nx-plugin:connection --dry-runbunx nx g @aws/nx-plugin:connection --dry-runConsulta la guía del generador connection para detalles sobre cómo se configura la conexión.
Invocando un Agente A2A como Herramienta
Sección titulada «Invocando un Agente A2A como Herramienta»Para delegar trabajo desde este agente a un agente A2A remoto (ya sea TypeScript o Python), usa el generador connection. Este genera un cliente autenticado con SigV4 para el agente objetivo y transforma mediante AST el agent.py de este agente para registrar el agente A2A remoto como un delegado decorado con @tool.
- Instale el Nx Console VSCode Plugin si aún no lo ha hecho
- Abra la consola Nx en VSCode
- Haga clic en
Generate (UI)en la sección "Common Nx Commands" - Busque
@aws/nx-plugin - connection - Complete los parámetros requeridos
- Haga clic en
Generate
pnpm nx g @aws/nx-plugin:connectionyarn nx g @aws/nx-plugin:connectionnpx nx g @aws/nx-plugin:connectionbunx nx g @aws/nx-plugin:connectionTambién puede realizar una ejecución en seco para ver qué archivos se cambiarían
pnpm nx g @aws/nx-plugin:connection --dry-runyarn nx g @aws/nx-plugin:connection --dry-runnpx nx g @aws/nx-plugin:connection --dry-runbunx nx g @aws/nx-plugin:connection --dry-runConsulta la guía del generador connection para detalles sobre cómo se configura la conexión.