Implemente sistemas de agentes en Amazon Bedrock con el marco CrewAI mediante Terraform - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implemente sistemas de agentes en Amazon Bedrock con el marco CrewAI mediante Terraform

Vanitha Dontireddy, Amazon Web Services

Resumen

Este patrón demuestra cómo implementar sistemas de IA multiagente escalables mediante el marco CrewAI integrado con Amazon Bedrock y Terraform. La solución permite a las organizaciones crear, implementar y gestionar flujos de trabajo sofisticados de agentes de IA mediante la infraestructura como código (IaC). En este patrón, las capacidades de orquestación multiagente de CrewAI se combinan con los modelos básicos de Amazon Bedrock y la automatización de la infraestructura de Terraform. Como resultado, los equipos pueden crear sistemas de IA listos para la producción que aborden tareas complejas con una supervisión humana mínima. El patrón implementa las mejores prácticas operativas, de escalabilidad y de seguridad de nivel empresarial.

Requisitos previos y limitaciones

Requisitos previos 

Limitaciones

  • Las interacciones entre los agentes están limitadas por las ventanas de contexto del modelo.

  • Las consideraciones de gestión del estado de Terraform para las implementaciones a gran escala se aplican a este patrón.

  • Algunos Servicios de AWS no están disponibles en todos. Regiones de AWS Para ver la disponibilidad regional, consulta AWS Servicios por región. Para conocer puntos de enlace específicos, consulte Puntos de enlace y cuotas del servicio y elija el enlace para el servicio.

Arquitectura

En este patrón, se producen las siguientes interacciones:

  • Amazon Bedrock proporciona la base para la inteligencia de los agentes a través de su conjunto de modelos básicos (FMs). Ofrece a los agentes de IA capacidades de procesamiento del lenguaje natural (PNL), razonamiento y toma de decisiones, a la vez que mantiene una alta disponibilidad y escalabilidad.

  • El marco CrewAI sirve como capa central de orquestación para crear y administrar agentes de IA. Gestiona los protocolos de comunicación de los agentes, la delegación de tareas y la gestión del flujo de trabajo a la vez que se integra con Amazon Bedrock.

  • Terraform administra toda la infraestructura mediante código, incluidos los recursos informáticos, las redes, los grupos de seguridad y las funciones AWS Identity and Access Management (IAM). Garantiza despliegues consistentes y controlados por versiones en todos los entornos. La implementación de Terraform crea lo siguiente:

    • AWS Lambda función para ejecutar la aplicación CrewAI

    • Depósitos de Amazon Simple Storage Service (Amazon S3) para código e informes

    • Funciones de IAM con los permisos adecuados

    • CloudWatch Registro de Amazon

    • Ejecución programada por parte de Amazon EventBridge

El siguiente diagrama ilustra la arquitectura para implementar sistemas multiagente CrewAI mediante Amazon Bedrock y Terraform.

Flujo de trabajo para implementar sistemas multiagente CrewAI mediante Terraform y Amazon Bedrock.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. El usuario clona el repositorio.

  2. El usuario ejecuta el comando terraform apply para implementar los AWS recursos.

  3. La configuración del modelo Amazon Bedrock incluye la especificación del modelo base (FM) que se utilizará para configurar los agentes de CrewAI.

  4. Se establece una EventBridge regla para activar la función Lambda de acuerdo con el programa definido.

  5. Cuando se activa (de forma programada o manual), la función Lambda se inicializa y asume la función de IAM con permisos de acceso y Servicios de AWS Amazon Bedrock.

  6. El marco CrewAI carga las configuraciones de los agentes desde archivos YAML y crea agentes de IA especializados (el equipo de auditoría de seguridad de la infraestructura).AWS La función Lambda ejecuta estos agentes de forma secuencial para analizar los AWS recursos, analizar las vulnerabilidades de seguridad y generar informes de auditoría exhaustivos.

  7. CloudWatch Los registros recopilan información de ejecución detallada de la función Lambda con un período de retención de 365 días y AWS Key Management Service (AWS KMS) cifrado para cumplir con los requisitos de conformidad. Los registros proporcionan visibilidad de las actividades de los agentes, el seguimiento de los errores y las métricas de rendimiento, lo que permite una supervisión eficaz del proceso de auditoría de seguridad y la solución de problemas.

  8. El informe de auditoría de seguridad se genera y almacena automáticamente en el bucket de Amazon S3 designado. La configuración automatizada ayuda a mantener un monitoreo de seguridad uniforme con una sobrecarga operativa mínima.

Tras la implementación inicial, el flujo de trabajo proporciona auditorías e informes de seguridad continuos para su AWS infraestructura sin intervención manual.

Descripción general de los agentes de IA

Este patrón crea varios agentes de IA, cada uno con funciones, objetivos y herramientas únicos:

  • El agente analista de seguridad recopila y analiza la información sobre AWS los recursos.

  • El agente probador de penetración identifica las vulnerabilidades en AWS los recursos.

  • El agente experto en conformidad comprueba las configuraciones con respecto a las normas de conformidad.

  • El agente redactor de informes recopila los hallazgos en informes exhaustivos.

Estos agentes colaboran en una serie de tareas y aprovechan sus habilidades colectivas para realizar auditorías de seguridad y generar informes exhaustivos. (El config/agents.yaml archivo describe las capacidades y configuraciones de cada agente de este equipo).

El procesamiento del análisis de seguridad consta de las siguientes acciones:

  1. El agente analista de seguridad examina los datos recopilados sobre AWS los recursos, como los siguientes:

    • Instancias y grupos de seguridad de Amazon Elastic Compute Cloud (Amazon EC2)

    • Buckets y configuraciones de Amazon S3

    • Funciones, políticas y permisos de IAM

    • Configuraciones de nube privada virtual (VPC) y ajustes de red

    • Bases de datos y configuración de seguridad de Amazon RDS

    • Funciones y configuraciones de Lambda

    • Otras Servicios de AWS dentro del ámbito de la auditoría

  2. El agente probador de penetración identifica las posibles vulnerabilidades.

  3. Los agentes colaboran a través del marco CrewAI para compartir sus hallazgos.

La generación de informes consiste en las siguientes acciones:

  1. El agente redactor del informe recopila las conclusiones de todos los demás agentes.

  2. Los problemas de seguridad se organizan por servicio, gravedad e impacto en el cumplimiento.

  3. Se generan recomendaciones de remediación para cada problema identificado.

  4. Se crea un informe completo de auditoría de seguridad en formato markdown y se carga en el bucket de Amazon S3 designado. Los informes históricos se conservan para hacer un seguimiento del cumplimiento y mejorar la postura de seguridad.

Las actividades de registro y supervisión incluyen:

  • CloudWatch los registros capturan los detalles de la ejecución y cualquier error.

  • Las métricas de ejecución de Lambda se registran para su supervisión.

nota

El código proviene aws-security-auditor-crew del repositorio GitHub 3P-Agentic_Frameworks, disponible en la colección Samples. AWS

Disponibilidad y escala

Puede ampliar los agentes disponibles a más de los cuatro agentes principales. Para ampliarlo con más agentes especializados, considere los siguientes tipos de agentes nuevos:

  • Un agente especialista en inteligencia de amenazas puede hacer lo siguiente:

    • Supervisa las fuentes de amenazas externas y las correlaciona con los hallazgos internos

    • Proporciona un contexto sobre las amenazas emergentes relevantes para su infraestructura

    • Prioriza las vulnerabilidades en función de su explotación activa en el entorno natural

  • Los agentes del marco de cumplimiento pueden centrarse en áreas reguladoras específicas, como las siguientes:

    • Agente de cumplimiento del estándar de seguridad de datos de la industria de tarjetas de pago (PCI DSS)

    • Agente de cumplimiento de la Ley de Portabilidad y Responsabilidad de los Seguros de Salud de 1996 (HIPAA)

    • Agente de cumplimiento de System and Organization Controls 2 (SOC 2)

    • Agente de cumplimiento del Reglamento General de Protección de Datos (GDPR)

Al ampliar cuidadosamente los agentes disponibles, esta solución puede proporcionar información de seguridad más profunda y especializada y, al mismo tiempo, mantener la escalabilidad en entornos de gran tamaño. AWS Para obtener más información sobre el enfoque de implementación, el desarrollo de herramientas y las consideraciones de escalado, consulte Información adicional.

Herramientas

Servicios de AWS

  • Amazon Bedrock es un servicio de IA totalmente gestionado que permite que los modelos básicos de alto rendimiento (FMs) estén disponibles para su uso a través de una API unificada.

  • Amazon CloudWatch Logs le ayuda a centralizar los registros de todos sus sistemas y aplicaciones Servicios de AWS para que pueda supervisarlos y archivarlos de forma segura.

  • Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos finales de invocación HTTP que utilizan destinos de API o buses de eventos en otros. Cuentas de AWS En este patrón, se utiliza para programar y organizar los flujos de trabajo de los agentes.

  • AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • AWS SDK para Python (Boto3)es un kit de desarrollo de software que le ayuda a integrar su aplicación, biblioteca o script de Python con Servicios de AWS.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos. Siguiendo este patrón, proporciona almacenamiento de objetos para los artefactos de los agentes y la administración del estado.

Otras herramientas

  • CrewAI es un marco de código abierto basado en Python para crear sistemas de IA multiagente.

  • Terraform es una herramienta de infraestructura como código (IaC) HashiCorp que le ayuda a crear y administrar recursos locales y en la nube.

Repositorio de código

El código de este patrón está disponible en el repositorio. GitHub deploy-crewai-agents-terraform

Prácticas recomendadas

  • Implemente una administración de estado adecuada para Terraform mediante un backend de Amazon S3 con bloqueo de Amazon DynamoDB. Para obtener más información, consulte Prácticas recomendadas de backend en Prácticas recomendadas para usar el proveedor de Terraform. AWS

  • Utilice los espacios de trabajo para separar los entornos de desarrollo, puesta en escena y producción.

  • Siga el principio de privilegios mínimos y conceda los permisos mínimos necesarios para realizar una tarea. Para obtener más información, consulte Otorgar privilegio mínimo y Prácticas recomendadas de seguridad en la documentación de IAM.

  • Habilite el registro y la supervisión detallados a través de CloudWatch los registros.

  • Implemente mecanismos de reintento y gestión de errores en las operaciones de los agentes.

Epics

TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Para clonar el repositorio de este patrón en su máquina local, ejecute el siguiente comando:

git clone "git@github.com:aws-samples/deploy-crewai-agents-terraform.git" cd deploy-crewai-agents-terraform
DevOps ingeniero

Edite las variables de entorno.

Para editar las variables de entorno, haga lo siguiente:

  1. Cree un terraform.tfvars archivo a partir del ejemplo terraform.tfvars.example en el directorio terraform.

  2. Edite las variables de entorno para usar su propia información.

DevOps ingeniero

Crea la infraestructura.

Para crear la infraestructura, ejecute los siguientes comandos:

cd terraform
terraform init
terraform plan

Revise el plan de ejecución detenidamente. Si los cambios planificados son aceptables, ejecute el siguiente comando:

terraform apply --auto-approve
DevOps ingeniero
TareaDescripciónHabilidades requeridas

Acceda a los agentes.

Los agentes del equipo de auditoría e informes de seguridad de la AWS infraestructura se despliegan como una función Lambda. Para acceder a los agentes, siga estos pasos:

  1. Inicie sesión en AWS Management Console y abra la AWS Lambda consola en https://console.aws.amazon.com/lambda/.

  2. En la página Funciones, busque y, a continuación, seleccione la función denominada{project_name}\ function (tal y como se define en las variables de Terraform).

  3. Desde la página de la función, puedes realizar las siguientes acciones:

    • Ver los detalles de configuración.

    • Supervise las métricas de ejecución.

    • Ver CloudWatch registros.

    • Pruebe la función manualmente.

DevOps ingeniero

(Opcional) Configure la ejecución manual de los agentes.

Los agentes están configurados para ejecutarse automáticamente según una programación diaria (medianoche UTC). Sin embargo, puede activarlos manualmente mediante los siguientes pasos:

  1. En la consola Lambda, seleccione la función denominada. {project_name}

  2. En la página de la función, seleccione la pestaña Probar.

  3. Crea un nuevo evento de prueba con un objeto JSON vacío{}.

  4. Para ejecutar el evento, selecciona Probar.

Para obtener más información, consulte Probar las funciones de Lambda en la consola en la documentación de Lambda.

DevOps ingeniero

Acceda a los registros del agente para realizar la depuración.

Los agentes de CrewAI se ejecutan en un entorno Lambda con los permisos necesarios para realizar auditorías de seguridad y almacenar informes en Amazon S3. El resultado es un informe de rebajas que proporciona un análisis de seguridad integral de su infraestructura. AWS

Para facilitar la depuración detallada del comportamiento de los agentes, haga lo siguiente:

  1. En el AWS Management Console, vaya a CloudWatch Registros.

  2. Busque el grupo de registros de la función Lambda.

  3. Busque entradas de registro con los nombres de los agentes (por ejemplo, especialista en mapeo de infraestructuras y analista de seguridad exploratorio).

  4. Revise los registros para obtener información sobre las acciones de cada agente.

DevOps ingeniero

Vea los resultados de la ejecución del agente.

Para ver los resultados de la ejecución de un agente, haga lo siguiente:

  1. En AWS Management Console, navegue hasta Amazon S3.

  2. Abra el bucket de Amazon S3 denominado {project_name}-reports-{random_suffix} (tal y como se define en las variables de Terraform).

Los informes se almacenan con nombres de archivo basados en marcas de tiempo de la siguiente manera: security-audit-report-YYYY-MM-DD-HH-MM-SS.md)

DevOps ingeniero

Supervise la ejecución de los agentes.

Para supervisar la ejecución de los agentes a través de los CloudWatch registros, haga lo siguiente:

  1. En el AWS Management Console, navegue hasta. CloudWatch

  2. Ve a Grupos de registros.

  3. Seleccione el nombre del grupo de registros/aws/lambda/{project_name}-function.

  4. En Secuencias de registro, elija la secuencia de registro más reciente para ver información detallada sobre la ejecución.

DevOps ingeniero

Personalice el comportamiento de los agentes.

Para modificar los agentes o sus tareas, haga lo siguiente:

  1. Actualice los archivos de configuración en su repositorio local:

    • El siguiente archivo define la función, las capacidades y la configuración de cada agente: src/aws_infrastructure_security_audit_and_reporting/config/agents.yaml

    • El siguiente archivo define las tareas y los flujos de trabajo de los agentes:

    src/aws_infrastructure_security_audit_and_reporting/config/tasks.yaml

  2. Para volver a empaquetar y actualizar la función Lambda, utilice los siguientes comandos:

cd terraform
terraform apply
DevOps ingeniero
TareaDescripciónHabilidades requeridas

Elimine los recursos creados.

Para eliminar toda la infraestructura creada por este patrón, ejecute el siguiente comando:

terraform plan -destroy
aviso

El siguiente comando eliminará permanentemente todos los recursos creados por este patrón. El comando solicitará una confirmación antes de eliminar cualquier recurso.

Revisa el plan de destrucción detenidamente. Si las eliminaciones planificadas son aceptables, ejecute el siguiente comando:

terraform destroy
DevOps ingeniero

Solución de problemas

ProblemaSolución

Comportamiento del agente

Para obtener información sobre este problema, consulte Probar y solucionar problemas del comportamiento de los agentes en la documentación de Amazon Bedrock.

Problemas con la red Lambda

Para obtener información sobre estos problemas, consulte Solución de problemas de red en Lambda en la documentación de Lambda.

Permisos de IAM

Para obtener información sobre estos problemas, consulte Solución de problemas de IAM en la documentación de IAM.

Recursos relacionados

AWS Blogs

AWS documentación

Otros recursos

Información adicional

Esta sección contiene información sobre el enfoque de implementación, el desarrollo de herramientas y las consideraciones de escalado relacionadas con el análisis anterior sobre Automatización y escalabilidad.

Enfoque de implementación

Considere el siguiente enfoque para añadir agentes:

  1. Configuración del agente:

    • Añada nuevas definiciones de agentes al config/agents.yaml archivo.

    • Defina historias, objetivos y herramientas especializados para cada agente.

    • Configure las capacidades de memoria y análisis en función de la especialidad del agente.

  2. Orquestación de tareas:

    • Actualice el config/tasks.yaml archivo para incluir nuevas tareas específicas del agente.

    • Cree dependencias entre las tareas para garantizar un flujo de información adecuado.

    • Implemente la ejecución paralela de tareas cuando sea apropiado.

Implementación técnica

A continuación se incluye una adición al agents.yaml expediente de un agente especialista en inteligencia de amenazas propuesto:

Example new agent configuration in agents.yaml threat_intelligence_agent: name: "Threat Intelligence Specialist" role: "Cybersecurity Threat Intelligence Analyst" goal: "Correlate AWS security findings with external threat intelligence" backstory: "Expert in threat intelligence with experience in identifying emerging threats and attack patterns relevant to cloud infrastructure." verbose: true allow_delegation: true tools: - "ThreatIntelligenceTool" - "AWSResourceAnalyzer"

Desarrollo de herramientas

Con el marco CrewAI, puede tomar las siguientes medidas para mejorar la eficacia de su equipo de auditoría de seguridad:

  • Cree herramientas personalizadas para los nuevos agentes.

  • Intégrelas con herramientas externas APIs para obtener información sobre amenazas.

  • Desarrolle analizadores especializados para diferentes tipos. Servicios de AWS

Consideraciones de escalado

Al ampliar su sistema de informes y auditorías de seguridad de la AWS infraestructura para gestionar entornos más grandes o auditorías más exhaustivas, aborde los siguientes factores de escalamiento:

  • Recursos computacionales

    • Aumente la asignación de memoria Lambda para gestionar agentes adicionales.

    • Considere la posibilidad de dividir las cargas de trabajo de los agentes en varias funciones de Lambda.

  • Administración de costos

    • Supervise el uso de la API Amazon Bedrock a medida que aumenta el número de agentes.

    • Implemente la activación selectiva de los agentes en función del alcance de la auditoría.

  • Eficiencia de colaboración

    • Optimice el intercambio de información entre los agentes.

    • Implemente estructuras jerárquicas de agentes para entornos complejos.

  • Mejora de la base de conocimientos

    • Proporcione a los agentes bases de conocimiento especializadas para sus dominios.

    • Actualice periódicamente los conocimientos sobre los agentes con las nuevas prácticas recomendadas de seguridad.