View a markdown version of this page

Implementación de 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.

Implementación de 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 administrar 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 fundacionales 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 prácticas recomendadas 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 administración del estado de Terraform para las implementaciones a gran escala se aplican a este patrón.

  • Algunas Servicios de AWS no están disponibles en todas Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte AWS Services by Region. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del 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 de lenguaje natural (NLP), 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 administració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 de cómputo, las redes, los grupos de seguridad y las funciones AWS Identity and Access Management (IAM). Garantiza implementaciones consistentes y con control de versiones en todos los entornos. La implementación de Terraform crea lo siguiente:

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

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

    • Roles de IAM con los permisos adecuados

    • CloudWatch Registro de Amazon

    • Ejecución programada por parte de Amazon EventBridge

En el siguiente diagrama, se ilustra la arquitectura para la implementación de sistemas de agentes múltiples de CrewAI mediante el uso de Amazon Bedrock y Terraform.

Flujo de trabajo para implementar sistemas de agentes múltiples de 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 de Amazon Bedrock incluye la especificación del modelo fundacional (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 de 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 completos.

  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 una supervisión de seguridad coherente 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.

Información general de los agentes de IA

Este patrón crea varios agentes de IA, cada uno con roles, 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 resultados 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 archivo config/agents.yaml describe las capacidades y configuraciones de cada agente de este equipo).

El procesamiento del análisis de seguridad consiste en 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)

    • Configuraciones y buckets de Amazon S3

    • Roles, políticas y permisos de IAM

    • Configuraciones de nube privada virtual (VPC) y configuración de red

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

    • Configuraciones y funciones de Lambda

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

  2. El agente que realiza pruebas de penetración identifica las posibles vulnerabilidades.

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

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

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

  2. Los problemas de seguridad se organizan por servicio, gravedad e impacto en la conformidad.

  3. Se generan recomendaciones de correcció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 de la conformidad 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 escalar 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 resultados 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 conformidad pueden centrarse en áreas reguladoras específicas, como las siguientes:

    • Agente de conformidad con el estándar de seguridad de datos del sector de tarjetas de pago (PCI DSS)

    • Agente de conformidad con la Ley de Portabilidad y Responsabilidad de Seguros Médicos de EE. UU de 1996 (Health Insurance Portability and Accountability Act of 1996, HIPAA).

    • Agente de conformidad con los Controles del Sistema y Organizaciones 2 (SOC 2)

    • Agente de conformidad con el Reglamento General de Protección de Datos (RGPD)

Al ampliar cuidadosamente los agentes disponibles, esta solución puede proporcionar información de seguridad más profunda y especializada, al tiempo que mantiene 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.

Tools (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 lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos. En 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 multiagéntica

  • 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, consulta las mejores prácticas de backend en Prácticas recomendadas para usar el proveedor de Terraform AWS .

  • Utilice los espacios de trabajo para separar los entornos de desarrollo, almacenamiento provisional y producción.

  • Siga el principio de privilegio mínimo y conceda los permisos mínimos necesarios para llevar a cabo 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 CloudWatch de 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 un 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 archivo terraform.tfvars a partir del ejemplo terraform.tfvars.example en el directorio de terraform.

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

DevOps ingeniero

Cree la infraestructura.

Para crear la infraestructura, ejecute los comandos siguientes:

cd terraform
terraform init
terraform plan

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

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 Consola de administración de AWS 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 como se define en las variables de Terraform).

  3. En la página de la función puede realizar las siguientes acciones:

    • Ver los detalles de la configuración.

    • Supervisar las métricas de ejecución.

    • Ver CloudWatch los registros.

    • Probar la función de forma manual.

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 desencadenarlos manualmente mediante los siguientes pasos:

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

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

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

  4. Para ejecutar el evento, seleccione Prueba.

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

DevOps ingeniero

Acceda a los registro del agente para la depuración.

Los agentes de CrewAI se ejecutan en un entorno de 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 exhaustivo de la seguridad de su AWS infraestructura.

Para facilitar la depuración detallada del comportamiento del agente, haga lo siguiente:

  1. En el Consola de administración de AWS, vaya a CloudWatch Registros.

  2. Busque el grupo de registro para la función de Lambda.

  3. Busque entradas de registro con los nombres de los agentes (por ejemplo, especialista en asignación 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 de los agentes.

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

  1. En Consola de administración de AWS, 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 Consola de administración de AWS, navegue hasta. CloudWatch

  2. Vaya a Grupos de registros.

  3. Seleccione el grupo de registro denominado /aws/lambda/{project_name}-function.

  4. En Flujos de registro, elija el flujo de registro más reciente para ver información de ejecución detallada.

DevOps ingeniero

Personalice el comportamiento del agente.

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 el rol, 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 de 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 comando siguiente:

terraform plan -destroy
aviso

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

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

terraform destroy
DevOps ingeniero

Resolución de problemas

ProblemaSolución

Comportamiento del agente

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

Problemas de la red de 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 archivo config/agents.yaml.

    • Defina historias de fondo, 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 la tarea:

    • Actualice el archivo config/tasks.yaml 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 archivo agents.yaml 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 del equipo de auditoría de seguridad:

  • Cree herramientas personalizadas para los nuevos agentes.

  • Intégrelo con dispositivos externos 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 de 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 de 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.