View a markdown version of this page

Implemente Multi-Agent la plataforma de inteligencia para reuniones con el SDK de Strands Agents y AWS Fargate - 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 Multi-Agent la plataforma de inteligencia para reuniones con el SDK de Strands Agents y AWS Fargate

Aishita Batra y Muskan., Amazon Web Services

Resumen

Este patrón implementa una plataforma de inteligencia de reuniones multiagente AWS Fargate que genera automáticamente actas estructuradas, resúmenes ejecutivos, narraciones de audio e informes en PDF formateados a partir de las transcripciones de las reuniones. La solución utiliza el SDK de Strands Agents para organizar cuatro agentes de IA especializados: Amazon Bedrock para la inferencia de modelos de lenguaje y Amazon Polly para la conversión de texto a voz.

Los usuarios suben las transcripciones de las reuniones a través de una interfaz web de Streamlit y el sistema las procesa de forma asíncrona a través de una canalización de agentes coordinada. La infraestructura se implementa automáticamente mediante GitHub Actions with AWS AWS Cloud Development Kit (AWS CDK) e incluye monitoreo integrado, autoscalamiento y alta disponibilidad.

Requisitos previos y limitaciones

Requisitos previos 

  • Un activo Cuenta de AWS con permisos administrativos

  • AWS CDK instalada la versión 2.114.1 o posterior

  • AWS CLI instalado y configurado con los permisos AWS Identity and Access Management (IAM) adecuados

  • Node.js 18 o posterior

  • Python 3.12 o posterior

  • Git instalado

  • Docker instalado (opcional, para pruebas locales)

  • Una GitHub cuenta con los secretos del repositorio configurados: AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY

  • Amazon Bedrock con acceso al modelo Anthropic Claude 3 Sonnet habilitado en su región

  • Acceso a Amazon Polly activado (activado de forma predeterminada en la mayoría de las regiones)

  • Permisos de IAM para Amazon Simple Storage Service (Amazon S3), Amazon Elastic Container Service (Amazon ECS), Fargate, Elastic Load Balancing y Amazon Virtual Private Cloud (Amazon VPC)

  • Amazon VPC, IAM, Amazon CloudWatch y Amazon Simple Notification Service (Amazon SNS)

Limitaciones

  • El tiempo de procesamiento es de 2 a 7 minutos por reunión, según la complejidad de la transcripción.

  • La longitud máxima de la transcripción es de 50 000 caracteres por solicitud.

  • Los resúmenes de audio se condensan automáticamente a 3000 caracteres (límite de caracteres de Amazon Polly).

  • La disponibilidad de Amazon Bedrock Claude 3 Sonnet varía según. Región de AWS

  • El estado del trabajo se almacena en la memoria y no es persistente durante los reinicios del contenedor, a menos que configure S3-based la persistencia.

  • La carga directa solo admite .txt archivos.

  • El Application Load Balancer impone un tiempo de espera de 15 minutos para procesar las solicitudes.

  • Algunos AWS servicios no están disponibles en todos. Regiones de AWS Para conocer la disponibilidad regional, consulta AWS los servicios por región. Para ver los puntos de conexión específicos, consulte la página Service endpoints and quotas y elija el enlace del servicio.

Arquitectura

Arquitectura de destino

La solución implementa un sistema de IA multiagente utilizando el SDK de Strands Agents y AWS Fargate con la siguiente arquitectura:

  1. Los usuarios cargan las transcripciones de las reuniones a través de una aplicación web Streamlit alojada localmente o en un servidor remoto.

  2. Un Application Load Balancer en las subredes públicas distribuye el tráfico al servicio Fargate entre dos zonas de disponibilidad.

  3. Las tareas de Fargate se ejecutan en subredes privadas con acceso a NAT Gateway y alojan el backend de FastAPI y la lógica de orquestación de agentes de Strands.

  4. El sistema multiagente Strands procesa las transcripciones mediante cuatro agentes secuenciales: generación de actas estructuradas, generación de resúmenes concisos, narración de audio y creación de informes en PDF.

  5. Amazon Bedrock proporciona inferencia de modelos de lenguaje (Claude 3 Sonnet) para los agentes de generación de actas y resúmenes.

  6. Amazon Polly convierte el resumen conciso en una narración de audio MP3.

  7. Amazon S3 almacena las transcripciones cargadas, los archivos de salida generados y el estado de los trabajos con políticas de administración del ciclo de vida.

  8. Amazon CloudWatch proporciona registros centralizados, alarmas de CPU y memoria y supervisión del estado del servicio con notificaciones de Amazon SNS.

  9. GitHub Actions proporciona un CI/CD despliegue automatizado mediante pruebas AWS CDK de validación del estado.

Automatización y escala

  • Fargate de ECS: escalado automático de contenedores de 1 a 3 instancias en función de los umbrales de uso de memoria y CPU del 70%.

  • CloudWatchsupervisión: alarmas de estado de la CPU (65%), memoria (80%) y servicio integradas con las notificaciones de Amazon SNS.

  • Application Load Balancer: distribución del tráfico con controles de estado cada 60 segundos y 15 minutos de inactividad para tareas de procesamiento de IA de larga duración.

  • Procesamiento de tareas en segundo plano: análisis asíncrono de reuniones mediante FastAPI para la ejecución simultánea de tareas. BackgroundTasks

  • S3-based persistencia de tareas: almacenamiento persistente del estado de las tareas en Amazon S3 que garantiza la continuidad de las tareas durante los reinicios de contenedores y los eventos de escalado.

  • GitHub Acciones CI/CD: proceso de implementación automatizado con aprovisionamiento de la infraestructura de CDK y pruebas de validación del estado.

Tools (Herramientas)

Servicios de AWS

  • Amazon Bedrock: proporciona inferencia de modelos de lenguaje (Claude 3 Sonnet) para los agentes de análisis y resumen de reuniones. Consulte la documentación de Amazon Bedrock.

  • Amazon CloudWatch : supervisa el rendimiento de los contenedores, captura los registros de las aplicaciones y activa alarmas para los umbrales de estado de la CPU, la memoria y el servicio. Consulta la CloudWatch CloudWatch documentación de Amazon.

  • Amazon Elastic Container Service (Amazon ECS): organiza las tareas relacionadas con los contenedores de Fargate mediante comprobaciones de estado y detección de servicios. Consulte la documentación de Amazon ECS.

  • Amazon Polly: convierte resúmenes concisos de reuniones en narraciones de audio MP3. Consulte la documentación de Amazon Polly.

  • Amazon Simple Notification Service (Amazon SNS): envía notificaciones de alarma desde la supervisión. CloudWatch Consulte la documentación de Amazon SNS.

  • Amazon Simple Storage Service (Amazon S3): almacena las transcripciones cargadas, los archivos de salida generados y el estado de los trabajos con administración del ciclo de vida. Consulte la documentación de Amazon S3.

  • AWS CDK — Define e implementa toda la infraestructura como código. Consulte la AWS CDK documentación.

  • AWS Fargate — Ejecuta cargas de trabajo de aplicaciones en contenedores sin administrar servidores, con un autoscalamiento de 1 a 3 instancias. AWS Fargate Consulte la documentación.

  • Elastic Load Balancing: distribuye el tráfico entrante a las tareas de Fargate entre las zonas de disponibilidad. Consulte la documentación de Elastic Load Balancing.

Otras herramientas

  • Docker: crea imágenes de contenedores para realizar pruebas locales. Consulte la documentación de Docker.

  • FastAPI: proporciona el backend de la API REST para el envío de trabajos, la verificación del estado y las operaciones con archivos. Consulte la documentación de FastAPI.

  • GitHub Acciones: automatiza el proceso de CI/CD implementación. Consulte la documentación de GitHub acciones.

  • ReportLab— Genera informes en formato PDF a partir de actas de reuniones estructuradas. Consulte la ReportLab documentación.

  • SDK de Strands Agents: organiza flujos de trabajo de varios agentes con un mínimo de código mediante el patrón @tool decorador. Consulte la documentación del SDK de Strands.

  • Streamlit: proporciona la interfaz de usuario basada en la web para cargar las transcripciones y descargar los resultados. Consulte la documentación de Streamlit.

Repositorio de código

El código de este patrón está disponible en el repositorio GitHub sample-ai-meeting-minutes-generator.

Prácticas recomendadas

  • Utilice instrucciones del sistema claras y específicas para cada agente a fin de garantizar un formato de salida uniforme y una documentación profesional para las reuniones.

  • Implemente la gestión del ciclo de vida de Amazon S3 con una retención de 90 días para la optimización de costes y la limpieza automática de archivos.

  • Utilice el seguimiento de S3-based trabajos de Amazon para mantener el estado de los eventos de reinicios y escalado de contenedores para un procesamiento confiable.

  • Configure CloudWatch alarmas para el estado de la CPU, la memoria y el servicio con las notificaciones de Amazon SNS para una supervisión proactiva.

  • Valide y limpie las cargas de archivos y el formato del contenido antes de procesarlos para evitar errores del sistema y problemas de seguridad.

  • 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.

  • Considere AWS AgentCore la posibilidad de realizar despliegues de producción que requieran una organización gestionada y una sobrecarga operativa simplificada. Se prefiere el SDK de Strands cuando se necesita una mayor personalización de las interacciones de los agentes y un control especializado del flujo de trabajo.

  • Implemente una evaluación sistemática de los resultados de los agentes comparándolos con las actas de las reuniones generadas por personas para mejorar continuamente las solicitudes del sistema y el rendimiento de los agentes.

Epics

TareaDescripciónHabilidades requeridas

Clone el repositorio

  1. Para clonar el repositorio del patrón, ejecuta el siguiente comando:

git clone https://github.com/aws-samples/sample-ai-meeting-minutes-generator.git
  1. Navegue hasta el directorio del proyecto:

cd meeting-minutes-app
AWS DevOps

Crea tu propio repositorio de Git

  1. Crea un repositorio nuevo en tu plataforma Git preferida (GitHub GitLab, o Bitbucket).

  2. Actualiza el origen remoto para que apunte a tu repositorio:

git remote set-url origin https://<your-git-platform>.com/<your-username>/<your-repo-name>.git
  1. Envía el código a tu repositorio:

git push -u origin main
Desarrollador de aplicaciones

Configura los secretos del repositorio para CI/CD.

  1. Ve a la página de configuración de tu repositorio.

  2. Selecciona Secretos y variables y, a continuación, selecciona Acciones (para GitHub) o la sección equivalente para tu plataforma Git.

  3. Agrega los siguientes secretos del repositorio:

    • Nombre: AWS_ACCESS_KEY_ID, valor: <your-aws-access-key-id>

    • Nombre: AWS_SECRET_ACCESS_KEY, valor: <your-aws-secret-access-key>

DevOps ingeniero

Implemente la infraestructura mediante el CI/CD flujo de trabajo.

  1. Inicie la implementación insertando el código en su rama principal:

git add . git commit -m "Deploy multi-agent meeting intelligence platform" git push origin main
  1. El flujo de trabajo GitHub Actions aprovisiona automáticamente la infraestructura mediante AWS CDK.

DevOps ingeniero

Verifique la implementación de la infraestructura.

  1. Navega hasta la CI/CD sección de tu repositorio (por ejemplo,https://github.com/<your-username>/<your-repo-name>/actions).

  2. Elige el flujo de trabajo en ejecución para ver los registros y el progreso en tiempo real.

  3. Abre el AWS CloudFormation servicio Consola de administración de AWS y navega hasta él.

  4. Seleccione la MeetingMinutesFargateStackpila de la lista.

  5. Compruebe que el estado de la pila muestre CREATE_COMPLETE.

  6. Selecciona la pestaña Salidas y anota el valor de ServiceURL para usarlo en la siguiente epopeya.

DevOps ingeniero, administrador de la nube
TareaDescripciónHabilidades requeridas

Configure el entorno de desarrollo local

  1. Navegue hasta el directorio de la aplicación:

cd meeting_minutes_agent/app
  1. Cree y active un entorno virtual de Python:

python -m venv venv source venv/bin/activate # Linux/Mac # Or on Windows: venv\Scripts\activate
  1. Instale las dependencias requeridas.

pip install -r requirements.txt pip install streamlit
Desarrollador de aplicaciones

Recupera la URL del servicio de backend.

  1. Abre Consola de administración de AWS y navega hasta el AWS CloudFormation servicio.

  2. Seleccione la pila MeetingMinutesFargateStack.

  3. Elija la pestaña Salidas.

  4. Localice la clave ServiceURL y copie su valor de URL correspondiente.

Administrador de la nube

Inicie la aplicación y verifique la conectividad.

  1. Inicie la aplicación Streamlit con la URL del servidor:

BACKEND_URL="http://<your-service-url>.us-east-1.elb.amazonaws.com" streamlit run meeting_minutes_agent/app/streamlit_app.py
  1. Abre un navegador web y navega hasta. http://localhost:8501

  2. Compruebe que la interfaz muestre el estado de conexión al backend en la barra lateral.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Procese la transcripción de una reunión y verifique los resultados.

  1. Cargue la transcripción de una reunión mediante uno de estos métodos:

    • Utilice el sample_meeting.txt archivo proporcionado en el repositorio.

    • Cargue la transcripción (.txtarchivo) de su propia reunión.

    • Pegue el contenido de la transcripción de la reunión directamente en el área de entrada de texto.

  2. Seleccione Generar minutos para iniciar el flujo de trabajo de procesamiento con varios agentes.

  3. Supervise el progreso del procesamiento en tiempo real a través de la interfaz.

  4. Descargue y verifique los resultados generados:

    • meeting_minutes_*.txt— Actas estructuradas de las reuniones

    • meeting_audio_*.mp3— Narración resumida en audio

    • meeting_report_*.pdf— Informe completo en PDF

  5. Compruebe que los cuatro archivos de salida estén presentes y contengan el contenido esperado.

Desarrollador de aplicaciones

Resolución de problemas

ProblemaSolución

Error de acceso al modelo Amazon Bedrock

Compruebe que el modelo Anthropic Claude 3 Sonnet esté activado en su región. Abra la consola Amazon Bedrock, elija Model access y confirme que Claude 3 Sonnet muestre Acceso concedido.

El bootstrap de CDK falla

Ejecute cdk bootstrap aws://<account-id>/<region> manualmente antes del despliegue. Compruebe que sus AWS CLI credenciales tienen permisos para CloudFormation Amazon S3 e IAM.

  • La tarea de Fargate no se inicia

Consulte los detalles de las tareas detenidas en la consola Amazon ECS. Las causas más comunes incluyen permisos de rol de IAM incorrectos, falta de acceso a Amazon Bedrock o problemas de configuración de VPC. Revise CloudWatch los registros de la tarea.

Se agota el tiempo de espera del procesamiento (tiempo de espera de ALB de 15 minutos)

El Application Load Balancer tiene un tiempo de espera de inactividad de 15 minutos. Para transcripciones muy largas, reduzca el tamaño de entrada a menos de 50 000 caracteres o aumente el tiempo de espera de ALB en la configuración de CDK.

La generación de audio falla

Amazon Polly tiene un límite de 3000 caracteres. El agente de resúmenes concisos condensa el contenido automáticamente por debajo de este límite. Si la generación de audio sigue fallando, compruebe que el acceso a Amazon Polly esté habilitado en su región.

GitHub El despliegue de las acciones falla

Compruebe que AWS_ACCESS_KEY_ID los secretos AWS_SECRET_ACCESS_KEY del repositorio estén configurados correctamente. Compruebe que el usuario de IAM tiene permisos para la implementación de CDK (CloudFormation Amazon ECS, Amazon S3, IAM).

El backend no está conectado (Streamlit muestra que está desconectado)

Compruebe que la variable de BACKEND_URL entorno coincide con la ServiceURL de la pestaña CloudFormation Salidas. Confirme que el servicio Fargate esté funcionando y en buen estado en la consola de Amazon ECS.

Se perdió el estado del trabajo tras reiniciar el contenedor

Habilite la persistencia de los S3-based trabajos de Amazon configurando la variable de S3_JOB_TRACKING entorno. Sin esto, el estado del trabajo solo se almacena en la memoria y se pierde al reiniciarse el contenedor.

Recursos relacionados

Referencias

Herramientas

Información adicional

Multi-agent flujo de trabajo de procesamiento

La solución organiza el procesamiento de las reuniones a través de cuatro agentes especializados que se ejecutan secuencialmente dentro de las tareas de Fargate. A cada trabajo se le asigna un identificador de trabajo único y se ejecuta de forma asíncrona para garantizar la escalabilidad y el aislamiento de errores.

  1. Generador de actas estructuradas (generate_structured_minutes): toma como entrada la transcripción y el título de la reunión sin procesar. Utiliza Amazon Bedrock Claude 3 Sonnet para producir minutas de reuniones completas, que incluyen información sobre la reunión, los puntos de la agenda, el resumen del debate, las acciones con las personas asignadas y los plazos, y los próximos pasos. Guarda el resultado como un archivo de texto sin formato.

  2. Generador de resúmenes concisos (concise_minutes_agent): toma como entrada todos los minutos estructurados del Agente 1. Utiliza Amazon Bedrock Claude 3 Sonnet para crear un resumen ejecutivo de menos de 3000 caracteres para la generación de audio y la lectura rápida.

  3. Generador de audio (audio_generator_agent): toma como entrada los breves minutos del Agente 2. Utiliza la speak herramienta Strands de Amazon Polly para generar un archivo de audio MP3 que narra el resumen conciso.

  4. Generador de informes en PDF (create_comprehensive_pdf): toma como entrada todos los minutos estructurados del Agente 1. Utiliza la ReportLab biblioteca para producir un informe PDF profesional con estilos de título personalizados, encabezados de sección, diseño de texto legible y metadatos.

Flujo de datos

  1. Carga por parte del usuario: la transcripción de la reunión se carga a través de la interfaz de usuario de Streamlit o mediante una llamada directa a la API.

  2. Inicialización del trabajo: FastAPI crea un ID de trabajo único y lo devuelve inmediatamente para su procesamiento asíncrono.

  3. Procesamiento en segundo plano: el flujo de trabajo del agente Strands de cuatro pasos se ejecuta secuencialmente.

  4. Administración de archivos: los archivos generados se cargan en Amazon S3 con direcciones URL de descarga prefirmadas.

  5. Finalización del trabajo: el estado se actualiza con enlaces de descarga para todos los resultados generados.

Consideraciones sobre mejoras futuras

  • Seguimiento persistente de los trabajos con Amazon DynamoDB para garantizar la fiabilidad entre contenedores

  • Multi-format soporte de entrada (.docx, archivos de transcripción .pdf de audio)

  • Real-time WebSocket actualizaciones de progreso

End-to-End Flujo de procesamiento

  • La solución organiza el procesamiento de las reuniones mediante una secuencia coordinada de agentes especializados que se ocupan de las tareas de Fargate.

  • A cada trabajo se le asigna un identificador de trabajo único y se ejecuta de forma asíncrona para garantizar la escalabilidad y el aislamiento de fallas.

  • El flujo de trabajo incluye la recopilación de transcripciones → la generación de actas estructuradas → el resumen ejecutivo → la narración de audio → la creación de informes en PDF, con cada paso validado y registrado en tiempo real.

Four-Step Procesamiento de agentes

  1. Generador de actas estructuradas: produce actas detalladas de las reuniones.

  2. Generador de resúmenes concisos: crea un resumen ejecutivo para una revisión rápida y una narración de audio.

  3. Generador de audio: genera una narración en MP3 del resumen.

  4. Generador de informes en PDF: produce informes PDF pulidos y formateados.

Gestión automatizada de archivos e integración en la nube

  • Carga automática de resultados: los informes de texto estructurado, audio y PDF se cargan automáticamente en Amazon S3 con la división adecuada por ID de trabajo.

  • Comprobaciones de integridad y gestión del ciclo de vida: se registran las confirmaciones de carga, la validación de los archivos y la limpieza, lo que garantiza la transparencia y la fiabilidad de las operaciones.

  • Las tareas en segundo plano de FastAPI gestionan la ejecución asíncrona de los trabajos.

Integración y salidas de la interfaz de usuario

  • La interfaz de usuario Streamlit muestra la conexión interna, el área de entrada de transcripciones y la opción Generar minutos después de cargar la transcripción de la reunión a través de la URL de S3 Pre-signed para iniciar las tareas.

  • Una vez finalizado el procesamiento, las salidas de texto estructurado, audio y PDF están disponibles para su descarga a través de las direcciones URL de Pre-signed S3, a las que se puede acceder mediante los botones de la interfaz de usuario en los que se puede hacer clic.