# Guion de presentación — 15 minutos ## 1. Preparación y objetivo — 2 minutos Ejecutar `python scripts/demo.py validate` desde `demo/`. Explicar el objetivo: el modelo interpreta la solicitud y usa herramientas MCP para obtener datos de los sistemas. Abrir [el mapa](02-arquitectura.md). Antes de presentar, seguir [preparación](03-preparacion.md), verificar acceso AWS y disponer de los dos ARN de runtime. Las consultas requieren servicios desplegados. ## 2. Onboarding — 5 minutos Abrir [el escenario](../scenarios/01-onboarding/scenario.json). El cliente `1001` proviene del ejemplo original; confirmar previamente que existe en el entorno. Si se usa otro cliente, editar el prompt del escenario. ```powershell python scripts/demo.py invoke --scenario onboarding --runtime-arn ``` Mostrar, en este orden: 1. `src/agents/onboarding/main.py`: entrada y creación del agente. 2. `src/agents/onboarding/mcp_client/client.py`: conexión al gateway. 3. `contracts/tools/`: contratos de clientes, KYC, PLD y documentos. 4. La respuesta real, contrastada con los criterios del escenario. El prompt del sistema actual es genérico; el escenario pide explícitamente las consultas. Una respuesta textual por sí sola no prueba que se hayan invocado las herramientas: corroborar con las trazas del runtime si están disponibles. Para enseñar continuidad, reutilizar el ID de sesión impreso: ```powershell python scripts/demo.py invoke --scenario onboarding --runtime-arn --session-id --prompt "Resume los documentos pendientes del cliente que acabamos de consultar." ``` ## 3. Infraestructura — 5 minutos Abrir [el escenario](../scenarios/02-infraestructura/scenario.json). ```powershell python scripts/demo.py invoke --scenario infraestructura --runtime-arn ``` Seguir el flujo desde `src/agents/aws_infrastructure/main.py`, pasando por `contracts/tools/ec2-tools.json`, hasta `src/lambdas/aws_infrastructure/aws_infrastructure.py`. Mostrar cómo las operaciones consultan recursos con boto3. La ausencia de recursos es un resultado válido; no se debe sustituir por datos inventados. ## 4. Variantes y cierre — 3 minutos Comparar `harnesses/AwsInfraHarness/harness.json` con `harnesses/AwsInfraRestricted/harness.json`: el primero permite tres iteraciones y el segundo una. Esto permite explicar límites de ejecución; no demuestra una restricción de permisos IAM. Ambos tienen memoria desactivada. Ejecutar `python scripts/demo.py package` para mostrar los dos ZIPs locales y señalar `agentcore/agentcore.json` como configuración de despliegue. El runtime invocado corresponde al código que esté desplegado en AWS; crear un ZIP local no actualiza ese runtime.