View a markdown version of this page

Implementa la piattaforma di Multi-Agent Meeting Intelligence utilizzando Strands Agents SDK e AWS Fargate - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementa la piattaforma di Multi-Agent Meeting Intelligence utilizzando Strands Agents SDK e AWS Fargate

Aishita Batra e Muskan., Amazon Web Services

Riepilogo

Questo modello implementa una piattaforma di intelligence per riunioni multiagente AWS Fargate che genera automaticamente verbali strutturati, riassunti esecutivi, narrazioni audio e report in formato PDF in formato PDF a partire dalle trascrizioni delle riunioni. La soluzione utilizza l'SDK Strands Agents per orchestrare quattro agenti AI specializzati, Amazon Bedrock per l'inferenza dei modelli linguistici e Amazon Polly per la conversione da testo a voce.

Gli utenti caricano le trascrizioni delle riunioni tramite un'interfaccia web Streamlit e il sistema le elabora in modo asincrono tramite una pipeline di agenti coordinata. L'infrastruttura viene implementata automaticamente tramite GitHub Actions with AWS AWS Cloud Development Kit (AWS CDK) e include monitoraggio integrato, auto-scaling e alta disponibilità.

Prerequisiti e limitazioni

Prerequisiti

  • Un attivo Account AWS con autorizzazioni amministrative

  • AWS CDK versione 2.114.1 o successiva installata

  • AWS CLI installato e configurato con le autorizzazioni appropriate AWS Identity and Access Management (IAM)

  • Node.js 18 o versioni successive

  • Python 3.12 o successivo

  • Git installato

  • Docker installato (opzionale, per test locali)

  • Un GitHub account con i segreti del repository configurati: e AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY

  • Amazon Bedrock con accesso al modello Anthropic Claude 3 Sonnet abilitato nella tua regione

  • Accesso ad Amazon Polly abilitato (abilitato per impostazione predefinita nella maggior parte delle regioni)

  • Autorizzazioni IAM per Amazon Simple Storage Service (Amazon S3), Amazon Elastic Container Service (Amazon ECS), Fargate, Elastic Load Balancing, Amazon Virtual Private Cloud (Amazon VPC)

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

Limitazioni

  • Il tempo di elaborazione è di 2-7 minuti per riunione, a seconda della complessità della trascrizione.

  • La lunghezza massima della trascrizione è di 50.000 caratteri per richiesta.

  • I riepiloghi audio vengono automaticamente condensati a 3.000 caratteri (limite di caratteri Amazon Polly).

  • La disponibilità di Amazon Bedrock Claude 3 Sonnet varia a seconda. Regione AWS

  • Lo stato del lavoro viene archiviato in memoria e non è persistente tra i riavvii del contenitore a meno che non si configuri la S3-based persistenza.

  • Il caricamento diretto supporta solo i .txt file.

  • L'Application Load Balancer impone un timeout di 15 minuti per l'elaborazione delle richieste.

  • Alcuni AWS servizi non sono disponibili in tutti. Regioni AWS Per informazioni sulla disponibilità per regione, consulta AWS i servizi per regione. Per endpoint specifici, consulta la pagina Endpoint e quote del servizio e scegli il link relativo al servizio.

Architecture

Architettura di Target

La soluzione implementa un sistema di intelligenza artificiale multiagente utilizzando Strands Agents SDK AWS Fargate con la seguente architettura:

  1. Gli utenti caricano le trascrizioni delle riunioni tramite un'applicazione web Streamlit ospitata localmente o su un server remoto.

  2. Un Application Load Balancer in sottoreti pubbliche distribuisce il traffico verso il servizio Fargate su due zone di disponibilità.

  3. Le attività Fargate vengono eseguite in sottoreti private con accesso al gateway NAT e ospitano il backend FastAPI e la logica di orchestrazione degli agenti Strands.

  4. Il sistema multiagente Strands elabora le trascrizioni tramite quattro agenti sequenziali: generazione strutturata di minuti, generazione di riepiloghi concisi, narrazione audio e creazione di report PDF.

  5. Amazon Bedrock fornisce l'inferenza del modello linguistico (Claude 3 Sonnet) per i minuti e gli agenti di generazione dei riepiloghi.

  6. Amazon Polly converte il riepilogo conciso in una narrazione audio MP3.

  7. Amazon S3 archivia le trascrizioni caricate, i file di output generati e lo stato del lavoro con politiche di gestione del ciclo di vita.

  8. Amazon CloudWatch fornisce registrazione centralizzata, allarmi di CPU e memoria e monitoraggio dello stato del servizio con notifiche Amazon SNS.

  9. GitHub Actions fornisce una CI/CD distribuzione automatizzata tramite AWS CDK test di convalida dello stato.

Automazione e scalabilità

  • Auto-scaling di ECS Fargate: scalabilità automatica dei container da 1 a 3 istanze in base a soglie di utilizzo della CPU e della memoria del 70%.

  • CloudWatchmonitoraggio: allarmi relativi alla CPU (65%), alla memoria (80%) e allo stato del servizio integrati con le notifiche di Amazon SNS.

  • Application Load Balancer: distribuzione del traffico con controlli di integrità ogni 60 secondi e timeout di inattività di 15 minuti per attività di elaborazione AI di lunga durata.

  • Elaborazione delle attività in background: analisi asincrona delle riunioni utilizzando FastAPI per l'esecuzione simultanea dei lavori. BackgroundTasks

  • S3-based persistenza del lavoro: storage persistente dello stato del lavoro in Amazon S3 che garantisce la continuità del lavoro durante i riavvii dei container e gli eventi di scalabilità.

  • GitHub Azioni CI/CD: pipeline di distribuzione automatizzata con provisioning dell'infrastruttura CDK e test di convalida dello stato.

Tools (Strumenti)

Servizi AWS

  • Amazon Bedrock: fornisce l'inferenza del modello linguistico (Claude 3 Sonnet) per gli agenti di analisi e riepilogo delle riunioni. Consulta la documentazione di Amazon Bedrock.

  • Amazon CloudWatch : monitora le prestazioni dei container, acquisisce i log delle applicazioni e attiva allarmi per le soglie di integrità di CPU, memoria e servizio. Consulta CloudWatch CloudWatch la documentazione di Amazon.

  • Amazon Elastic Container Service (Amazon ECS) — Orchestra le attività dei container Fargate con controlli dello stato e individuazione dei servizi. Consulta la documentazione di Amazon ECS.

  • Amazon Polly: converte i riepiloghi concisi delle riunioni in narrazioni audio MP3. Consulta la documentazione di Amazon Polly.

  • Amazon Simple Notification Service (Amazon SNS) — Fornisce notifiche di allarme derivanti dal monitoraggio. CloudWatch Consulta la documentazione di Amazon SNS.

  • Amazon Simple Storage Service (Amazon S3): archivia le trascrizioni caricate, i file di output generati e lo stato del lavoro con la gestione del ciclo di vita. Consulta la documentazione di Amazon S3.

  • AWS CDK — Definisce e distribuisce tutta l'infrastruttura come codice. Consultate la AWS CDK documentazione.

  • AWS Fargate — Esegue carichi di lavoro di applicazioni containerizzate senza gestire server, con auto-scaling da 1 a 3 istanze. AWS Fargate Consultate la documentazione.

  • Elastic Load Balancing: distribuisce il traffico in entrata verso le attività di Fargate tra le zone di disponibilità. Consulta la documentazione di Elastic Load Balancing.

Altri strumenti

Archivio di codice

Il codice per questo pattern è disponibile nel repository GitHub sample-ai-meeting-minutes-generator.

Best practice

  • Utilizza istruzioni di sistema chiare e mirate per ogni agente per garantire una formattazione uniforme dell'output e una documentazione professionale delle riunioni.

  • Implementa la gestione del ciclo di vita di Amazon S3 con conservazione di 90 giorni per l'ottimizzazione dei costi e la pulizia automatica dei file.

  • Usa Amazon S3-based Job Tracking per mantenere lo stato durante i riavvii dei container e gli eventi di scalabilità per un'elaborazione affidabile.

  • Configura CloudWatch allarmi per lo stato della CPU, della memoria e del servizio con le notifiche di Amazon SNS per un monitoraggio proattivo.

  • Convalida e disinfetta i caricamenti di file e il formato dei contenuti prima dell'elaborazione per prevenire errori di sistema e problemi di sicurezza.

  • Segui il principio del privilegio minimo e concedi le autorizzazioni minime necessarie per eseguire un'attività. Per ulteriori informazioni, consulta le best practice relative alla concessione dei privilegi minimi e alla sicurezza nella documentazione IAM.

  • Prendi in considerazione AWS AgentCore le implementazioni di produzione che richiedono un'orchestrazione gestita e un sovraccarico operativo semplificato. Strands SDK è preferibile quando è necessaria una maggiore personalizzazione delle interazioni con gli agenti e un controllo specializzato del flusso di lavoro.

  • Implementa una valutazione sistematica degli output degli agenti rispetto ai verbali delle riunioni generati dall'uomo per migliorare continuamente le richieste di sistema e le prestazioni degli agenti.

Epiche

OperazioneDescriptionCompetenze richieste

Clona il repository

  1. Per clonare il repository del pattern, esegui il seguente comando:

git clone https://github.com/aws-samples/sample-ai-meeting-minutes-generator.git
  1. Vai alla directory del progetto:

cd meeting-minutes-app
AWS DevOps

Crea il tuo repository Git

  1. Crea un nuovo repository sulla tua piattaforma Git preferita (GitHub GitLab, o Bitbucket).

  2. Aggiorna l'origine remota in modo che punti al tuo repository:

git remote set-url origin https://<your-git-platform>.com/<your-username>/<your-repo-name>.git
  1. Invia il codice al tuo repository:

git push -u origin main
Sviluppatore di app

Configura i segreti del repository per. CI/CD

  1. Vai alla pagina delle impostazioni del tuo repository.

  2. Scegli Segreti e variabili, quindi scegli Azioni (per GitHub) o la sezione equivalente per la tua piattaforma Git.

  3. Aggiungi i seguenti segreti del repository:

    • Nome: AWS_ACCESS_KEY_ID, valore: <your-aws-access-key-id>

    • Nome: AWS_SECRET_ACCESS_KEY, valore: <your-aws-secret-access-key>

DevOps ingegnere

Implementa l'infrastruttura utilizzando il CI/CD flusso di lavoro.

  1. Attiva l'implementazione inviando il codice alla tua filiale principale:

git add . git commit -m "Deploy multi-agent meeting intelligence platform" git push origin main
  1. Il flusso di lavoro GitHub Actions effettua automaticamente il provisioning dell'infrastruttura utilizzando AWS CDK.

DevOps ingegnere

Verifica l'implementazione dell'infrastruttura.

  1. Vai alla CI/CD sezione del tuo repository (ad esempio,https://github.com/<your-username>/<your-repo-name>/actions).

  2. Scegli il flusso di lavoro in esecuzione per visualizzare i log e lo stato di avanzamento in tempo reale.

  3. Apri Console di gestione AWS e accedi al AWS CloudFormation servizio.

  4. Seleziona lo MeetingMinutesFargateStackstack dall'elenco.

  5. Verificate che lo stato dello stack indichi CREATE_COMPLETE.

  6. Scegliete la scheda Output e annotate il valore ServiceUrl da usare nella prossima epopea.

DevOps ingegnere, amministratore del cloud
OperazioneDescriptionCompetenze richieste

Configurare l'ambiente di sviluppo locale

  1. Passa alla directory dell'applicazione:

cd meeting_minutes_agent/app
  1. Crea e attiva un ambiente virtuale Python:

python -m venv venv source venv/bin/activate # Linux/Mac # Or on Windows: venv\Scripts\activate
  1. Installa le dipendenze richieste:

pip install -r requirements.txt pip install streamlit
Sviluppatore di app

Recupera l'URL del servizio di backend.

  1. Apri Console di gestione AWS e accedi al servizio. AWS CloudFormation

  2. Selezionare lo MeetingMinutesFargateStackstack.

  3. Seleziona la scheda Outputs (Output).

  4. Individuate la chiave ServiceUrl e copiate il valore URL corrispondente.

Amministratore cloud

Avvia l'applicazione e verifica la connettività.

  1. Avvia l'applicazione Streamlit con l'URL di backend:

BACKEND_URL="http://<your-service-url>.us-east-1.elb.amazonaws.com" streamlit run meeting_minutes_agent/app/streamlit_app.py
  1. Apri un browser Web e accedi a. http://localhost:8501

  2. Verifica che l'interfaccia mostri lo stato di connessione al backend nella barra laterale.

Sviluppatore di app
OperazioneDescriptionCompetenze richieste

Elabora la trascrizione di una riunione e verifica i risultati.

  1. Carica una trascrizione della riunione utilizzando uno di questi metodi:

    • Utilizza il sample_meeting.txt file fornito dal repository.

    • Carica la trascrizione (.txtfile) della tua riunione.

    • Incolla il contenuto della trascrizione della riunione direttamente nell'area di immissione del testo.

  2. Scegli Genera minuti per avviare il flusso di lavoro di elaborazione multiagente.

  3. Monitora l'avanzamento dell'elaborazione in tempo reale tramite l'interfaccia.

  4. Scarica e verifica gli output generati:

    • meeting_minutes_*.txt— Verbali strutturati delle riunioni

    • meeting_audio_*.mp3— Narrazione riassuntiva audio

    • meeting_report_*.pdf— Rapporto completo in PDF

  5. Verifica che tutti e quattro i file di output siano presenti e contengano il contenuto previsto.

Sviluppatore di app

Risoluzione dei problemi

ProblemaSoluzione

Errore di accesso al modello Amazon Bedrock

Verifica che il modello Anthropic Claude 3 Sonnet sia abilitato nella tua regione. Apri la console Amazon Bedrock, scegli Model access e conferma che Claude 3 Sonnet mostri l'accesso concesso.

Il bootstrap CDK fallisce

Esegui cdk bootstrap aws://<account-id>/<region> manualmente prima della distribuzione. Verifica che AWS CLI le tue credenziali dispongano delle autorizzazioni per CloudFormation Amazon S3 e IAM.

  • L'attività Fargate non riesce ad avviarsi

Controlla la console Amazon ECS per i dettagli delle attività interrotte. Le cause più comuni includono autorizzazioni errate per i ruoli IAM, accesso ad Amazon Bedrock mancante o problemi di configurazione VPC. Esamina CloudWatch i log relativi all'attività.

Timeout di elaborazione (timeout ALB di 15 minuti)

L'Application Load Balancer ha un timeout di inattività di 15 minuti. Per trascrizioni molto lunghe, riduci la dimensione di input a meno di 50.000 caratteri o aumenta il timeout ALB nella configurazione CDK.

La generazione dell'audio fallisce

Amazon Polly ha un limite di 3.000 caratteri. L'agente di riepilogo conciso condensa automaticamente i contenuti al di sotto di questo limite. Se la generazione audio continua a fallire, verifica che l'accesso ad Amazon Polly sia abilitato nella tua regione.

GitHub La distribuzione delle azioni fallisce

Verifica che AWS_ACCESS_KEY_ID i segreti AWS_SECRET_ACCESS_KEY del repository siano configurati correttamente. Verifica che l'utente IAM disponga delle autorizzazioni per la distribuzione CDK (CloudFormation Amazon ECS, Amazon S3, IAM).

Backend non connesso (Streamlit mostra disconnesso)

Verificate che la variabile di BACKEND_URL ambiente corrisponda CloudFormation al serviceUrl nella scheda Output. Verifica che il servizio Fargate sia funzionante e integro nella console Amazon ECS.

Stato del lavoro perso dopo il riavvio del contenitore

Abilita la persistenza dei S3-based job di Amazon configurando la variabile di S3_JOB_TRACKING ambiente. In caso contrario, lo stato del processo viene archiviato solo in memoria e perso al riavvio del contenitore.

Risorse correlate

Riferimenti

Strumenti

Informazioni aggiuntive

Multi-agent flusso di lavoro di elaborazione

La soluzione orchestra l'elaborazione delle riunioni tramite quattro agenti specializzati che eseguono in sequenza le attività di Fargate. A ogni lavoro viene assegnato un ID di lavoro univoco e viene eseguito in modo asincrono per la scalabilità e l'isolamento dei guasti.

  1. Structured Minutes Generator (generate_structured_minutes): utilizza come input la trascrizione e il titolo della riunione non elaborati. Utilizza Amazon Bedrock Claude 3 Sonnet per produrre verbali completi delle riunioni, tra cui informazioni sulle riunioni, punti dell'ordine del giorno, riepilogo delle discussioni, azioni con assegnatari e scadenze e passaggi successivi. Salva l'output come file di testo semplice.

  2. Concise Summary Generator (concise_minutes_agent): utilizza come input i minuti completamente strutturati dell'Agente 1. Utilizza Amazon Bedrock Claude 3 Sonnet per creare un riepilogo esecutivo di meno di 3.000 caratteri per la generazione di audio e la lettura rapida.

  3. Audio Generator (audio_generator_agent): utilizza i minuti concisi dell'Agente 2 come input. Utilizza lo speak strumento Strands con Amazon Polly per generare un file audio MP3 che narra il riepilogo conciso.

  4. PDF Report Generator (create_comprehensive_pdf): utilizza come input i minuti completamente strutturati dell'Agente 1. Utilizza la ReportLab libreria per produrre un report PDF professionale con stile personalizzato del titolo, intestazioni di sezione, layout di testo leggibile e metadati.

Flusso di dati

  1. Caricamento utente: trascrizione della riunione caricata tramite l'interfaccia utente Streamlit o una chiamata API diretta.

  2. Inizializzazione del lavoro: FastAPI crea un ID lavoro univoco e ritorna immediatamente per l'elaborazione asincrona.

  3. Elaborazione in background: il flusso di lavoro dell'agente Strands in quattro fasi viene eseguito in sequenza.

  4. Gestione dei file: i file generati vengono caricati su Amazon S3 con URL di download predefiniti.

  5. Completamento del lavoro: lo stato viene aggiornato con i link per il download di tutti gli output generati.

Considerazioni sul miglioramento futuro

  • Monitoraggio persistente dei lavori con Amazon DynamoDB per l'affidabilità tra container

  • Multi-format supporto di input (.docx.pdf, file di trascrizione audio)

  • Real-time WebSocket aggiornamenti sui progressi

End-to-End Flusso di elaborazione

  • La soluzione orchestra l'elaborazione delle riunioni attraverso una sequenza coordinata di agenti specializzati che eseguono le attività di Fargate.

  • A ciascun lavoro viene assegnato un ID di lavoro univoco ed eseguito in modo asincrono per garantire la scalabilità e l'isolamento dei guasti.

  • Il flusso di lavoro include l'inserimento della trascrizione → generazione strutturata dei minuti → riepilogo esecutivo → narrazione audio → creazione di report PDF, con ogni passaggio convalidato e registrato in tempo reale.

Four-Step Elaborazione degli agenti

  1. Structured Minutes Generator: produce verbali dettagliati delle riunioni.

  2. Generatore di riepiloghi concisi: crea un riepilogo esecutivo per una rapida revisione e una narrazione audio.

  3. Generatore audio: genera una narrazione MP3 del riepilogo.

  4. PDF Report Generator: produce report PDF raffinati e formattati.

Gestione automatizzata dei file e integrazione nel cloud

  • Caricamento automatico dell'output: i report strutturati di testo, audio e PDF vengono caricati automaticamente su Amazon S3 con il corretto partizionamento in base agli ID del lavoro.

  • Controlli di integrità e gestione del ciclo di vita: le conferme di caricamento, la convalida dei file e la pulizia vengono registrate per garantire trasparenza e affidabilità operative.

  • Le attività in background di FastAPI gestiscono l'esecuzione asincrona dei lavori.

Integrazione e output dell'interfaccia utente

  • L'interfaccia utente Streamlit mostra la connessione al backend, l'area di immissione della trascrizione e Genera minuti dopo aver caricato la trascrizione della riunione tramite l'URL S3 per avviare i lavori. Pre-signed

  • Una volta completata l'elaborazione, il testo strutturato, l'audio e gli output PDF sono resi disponibili per il download tramite gli URL Pre-signed S3, accessibili tramite i pulsanti cliccabili nell'interfaccia utente.