View a markdown version of this page

Deploy Multi-Agent Meeting Intelligence Platform Using Strands Agents SDK and AWS Fargate - AWS Prescriptive Guidance

Deploy Multi-Agent Meeting Intelligence Platform Using Strands Agents SDK and AWS Fargate

Aishita Batra and Muskan ., Amazon Web Services

Summary

This pattern deploys a multi-agent meeting intelligence platform on AWS Fargate that automatically generates structured minutes, executive summaries, audio narrations, and formatted PDF reports from meeting transcripts. The solution uses the Strands Agents SDK to orchestrate four specialized AI agents, Amazon Bedrock for language model inference, and Amazon Polly for text-to-speech conversion.

Users upload meeting transcripts through a Streamlit web interface, and the system processes them asynchronously through a coordinated agent pipeline. The infrastructure deploys automatically through GitHub Actions with AWS AWS Cloud Development Kit (AWS CDK) and includes built-in monitoring, auto-scaling, and high availability.

Prerequisites and limitations

Prerequisites

  • An active AWS account with administrative permissions

  • AWS CDK version 2.114.1 or later installed

  • AWS CLI installed and configured with appropriate AWS Identity and Access Management (IAM) permissions

  • Node.js 18 or later

  • Python 3.12 or later

  • Git installed

  • Docker installed (optional, for local testing)

  • A GitHub account with repository secrets configured: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY

  • Amazon Bedrock with access to the Anthropic Claude 3 Sonnet model enabled in your Region

  • Amazon Polly access enabled (enabled by default in most Regions)

  • IAM permissions for 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 CloudWatch, and Amazon Simple Notification Service (Amazon SNS)

Limitations

  • Processing time is 2–7 minutes per meeting, depending on transcript complexity.

  • Maximum transcript length is 50,000 characters per request.

  • Audio summaries are automatically condensed to 3,000 characters (Amazon Polly character limit).

  • Amazon Bedrock Claude 3 Sonnet availability varies by AWS Region.

  • Job status is stored in memory and is not persistent across container restarts unless you configure S3-based persistence.

  • Direct upload supports .txt files only.

  • The Application Load Balancer enforces a 15-minute timeout for processing requests.

  • Some AWS services aren't available in all AWS Regions. For Region availability, see AWS services by Region. For specific endpoints, see the Service endpoints and quotas page, and choose the link for the service.

Architecture

Target architecture

The solution deploys a multi-agent AI system using Strands Agents SDK on AWS Fargate with the following architecture :

  1. Users upload meeting transcripts through a Streamlit web application hosted locally or on a remote server.

  2. An Application Load Balancer in public subnets distributes traffic to the Fargate service across two Availability Zones.

  3. Fargate tasks run in private subnets with NAT Gateway access and host the FastAPI backend and Strands agent orchestration logic.

  4. The Strands multi-agent system processes transcripts through four sequential agents: structured minutes generation, concise summary generation, audio narration, and PDF report creation.

  5. Amazon Bedrock provides language model inference (Claude 3 Sonnet) for the minutes and summary generation agents.

  6. Amazon Polly converts the concise summary to an MP3 audio narration.

  7. Amazon S3 stores uploaded transcripts, generated output files, and job status with lifecycle management policies.

  8. Amazon CloudWatch provides centralized logging, CPU and memory alarms, and service health monitoring with Amazon SNS notifications.

  9. GitHub Actions provides automated CI/CD deployment through AWS CDK with health validation testing.

Automation and scale

  • ECS Fargate auto-scaling – Automatic container scaling from 1 to 3 instances based on 70% CPU and memory utilization thresholds.

  • CloudWatch monitoring – CPU (65%), memory (80%), and service health alarms integrated with Amazon SNS notifications.

  • Application Load Balancer – Traffic distribution with health checks every 60 seconds and 15-minute idle timeout for long-running AI processing tasks.

  • Background task processing – Asynchronous meeting analysis using FastAPI BackgroundTasks for concurrent job execution.

  • S3-based job persistence – Persistent job status storage in Amazon S3 that ensures job continuity across container restarts and scaling events.

  • GitHub Actions CI/CD – Automated deployment pipeline with CDK infrastructure provisioning and health validation testing.

Tools

AWS services

  • Amazon Bedrock – Provides language model inference (Claude 3 Sonnet) for meeting analysis and summarization agents. See Amazon Bedrock documentation.

  • Amazon CloudWatch – Monitors container performance, captures application logs, and triggers alarms for CPU, memory, and service health thresholds. See Amazon CloudWatch CloudWatch documentation.

  • Amazon Elastic Container Service (Amazon ECS) – Orchestrates Fargate container tasks with health checks and service discovery. See Amazon ECS documentation.

  • Amazon Polly – Converts concise meeting summaries to MP3 audio narrations. See Amazon Polly documentation.

  • Amazon Simple Notification Service (Amazon SNS)– Delivers alarm notifications from CloudWatch monitoring. See Amazon SNS documentation.

  • Amazon Simple Storage Service (Amazon S3) – Stores uploaded transcripts, generated output files, and job status with lifecycle management. See Amazon S3 documentation.

  • AWS CDK – Defines and deploys all infrastructure as code. See AWS CDK documentation.

  • AWS Fargate – Runs containerized application workloads without managing servers, with auto-scaling from 1 to 3 instances. See AWS Fargate documentation.

  • Elastic Load Balancing – Distributes incoming traffic to Fargate tasks across Availability Zones. See Elastic Load Balancing documentation.

Other tools

Code repository

The code for this pattern is available in the GitHub sample-ai-meeting-minutes-generator repository.

Best practices

  • Use clear, focused system prompts for each agent to ensure consistent output formatting and professional meeting documentation.

  • Implement Amazon S3 lifecycle management with 90-day retention for cost optimization and automated file cleanup.

  • Use Amazon S3-based job tracking to maintain state across container restarts and scaling events for reliable processing.

  • Configure CloudWatch alarms for CPU, memory, and service health with Amazon SNS notifications for proactive monitoring.

  • Validate and sanitize file uploads and content format before processing to prevent system errors and security issues.

  • Follow the principle of least privilege and grant the minimum permissions required to perform a task. For more information, see Grant least privilege and Security best practices in the IAM documentation.

  • Consider AWS AgentCore for production deployments that require managed orchestration and simplified operational overhead. Strands SDK is preferred when you need greater customization of agent interactions and specialized workflow control.

  • Implement systematic evaluation of agent outputs against human-generated meeting minutes to improve system prompts and agent performance continuously.

Epics

TaskDescriptionSkills required

Clone the repository

  1. To clone the pattern's repository, run the following command:

git clone https://github.com/aws-samples/sample-ai-meeting-minutes-generator.git
  1. Navigate to the project directory:

cd meeting-minutes-app
AWS DevOps

Create your own Git repository

  1. Create a new repository on your preferred Git platform (GitHub, GitLab, or Bitbucket).

  2. Update the remote origin to point to your repository:

git remote set-url origin https://<your-git-platform>.com/<your-username>/<your-repo-name>.git
  1. Push the code to your repository:

git push -u origin main
App developer

Configure repository secrets for CI/CD.

  1. Navigate to your repository's Settings page.

  2. Choose Secrets and variables, and then choose Actions (for GitHub) or the equivalent section for your Git platform.

  3. Add the following repository secrets:

    • Name: AWS_ACCESS_KEY_ID, Value: <your-aws-access-key-id>

    • Name: AWS_SECRET_ACCESS_KEY, Value: <your-aws-secret-access-key>

DevOps engineer

Deploy the infrastructure by using the CI/CD workflow.

  1. Trigger the deployment by pushing code to your main branch:

git add . git commit -m "Deploy multi-agent meeting intelligence platform" git push origin main
  1. The GitHub Actions workflow automatically provisions the infrastructure by using AWS CDK.

DevOps engineer

Verify the infrastructure deployment.

  1. Navigate to your repository's CI/CD section (for example, https://github.com/<your-username>/<your-repo-name>/actions).

  2. Choose the running workflow to view real-time logs and progress.

  3. Open the AWS Management Console and navigate to the AWS CloudFormation service.

  4. Select the MeetingMinutesFargateStack stack from the list.

  5. Verify that the stack status shows CREATE_COMPLETE.

  6. Choose the Outputs tab and note the ServiceURL value for use in the next epic.

DevOps engineer, Cloud administrator
TaskDescriptionSkills required

Set up the local development environment

  1. Navigate to the application directory:

cd meeting_minutes_agent/app
  1. Create and activate a Python virtual environment:

python -m venv venv source venv/bin/activate # Linux/Mac # Or on Windows: venv\Scripts\activate
  1. Install the required dependencies:

pip install -r requirements.txt pip install streamlit
App developer

Retrieve the backend service URL.

  1. Open the AWS Management Console and navigate to the AWS CloudFormation service.

  2. Select the MeetingMinutesFargateStack stack.

  3. Choose the Outputs tab.

  4. Locate the ServiceURL key and copy its corresponding URL value.

Cloud administrator

Launch the application and verify connectivity.

  1. Start the Streamlit application with the backend URL:

BACKEND_URL="http://<your-service-url>.us-east-1.elb.amazonaws.com" streamlit run meeting_minutes_agent/app/streamlit_app.py
  1. Open a web browser and navigate to http://localhost:8501.

  2. Verify that the interface displays Backend connected status in the sidebar.

App developer
TaskDescriptionSkills required

Process a meeting transcript and verify outputs.

  1. Upload a meeting transcript by using one of these methods:

    • Use the provided sample_meeting.txt file from the repository.

    • Upload your own meeting transcript (.txt file).

    • Paste meeting transcript content directly in the text input area.

  2. Choose Generate Minutes to start the multi-agent processing workflow.

  3. Monitor the real-time processing progress through the interface.

  4. Download and verify the generated outputs:

    • meeting_minutes_*.txt – Structured meeting minutes

    • meeting_audio_*.mp3 – Audio summary narration

    • meeting_report_*.pdf – Comprehensive PDF report

  5. Verify that all four output files are present and contain expected content.

App developer

Troubleshooting

IssueSolution

Amazon Bedrock model access error

Verify that the Anthropic Claude 3 Sonnet model is enabled in your Region. Open the Amazon Bedrock console, choose Model access, and confirm that Claude 3 Sonnet shows Access granted.

CDK bootstrap fails

Run cdk bootstrap aws://<account-id>/<region> manually before deployment. Verify that your AWS CLI credentials have permissions for CloudFormation, Amazon S3, and IAM.

  • Fargate task fails to start

Check the Amazon ECS console for stopped task details. Common causes include incorrect IAM role permissions, missing Amazon Bedrock access, or VPC configuration issues. Review CloudWatch logs for the task.

Processing times out (15-minute ALB timeout)

The Application Load Balancer has a 15-minute idle timeout. For very long transcripts, reduce the input size to under 50,000 characters, or increase the ALB timeout in the CDK configuration.

Audio generation fails

Amazon Polly has a 3,000-character limit. The concise summary agent condenses content to under this limit automatically. If audio generation still fails, verify that Amazon Polly access is enabled in your Region.

GitHub Actions deployment fails

Verify that AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY repository secrets are configured correctly. Check that the IAM user has permissions for CDK deployment (CloudFormation, Amazon ECS, Amazon S3, IAM).

Backend not connected (Streamlit shows disconnected)

Verify that the BACKEND_URL environment variable matches the ServiceURL from the CloudFormation Outputs tab. Confirm that the Fargate service is running and healthy in the Amazon ECS console.

Job status lost after container restart

Enable Amazon S3-based job persistence by configuring the S3_JOB_TRACKING environment variable. Without this, job status is stored in memory only and lost on container restarts.

Related resources

References

Tools

Additional information

Multi-agent processing workflow

The solution orchestrates meeting processing through four specialized agents that run sequentially within Fargate tasks. Each job is assigned a unique job ID and is executed asynchronously for scalability and fault isolation.

  1. Structured Minutes Generator (generate_structured_minutes) – Takes the raw meeting transcript and title as input. Uses Amazon Bedrock Claude 3 Sonnet to produce comprehensive meeting minutes, including meeting information, agenda items, discussion summary, action items with assignees and deadlines, and next steps. Saves output as a plain text file.

  2. Concise Summary Generator (concise_minutes_agent) – Takes the full structured minutes from Agent 1 as input. Uses Amazon Bedrock Claude 3 Sonnet to create an executive summary of under 3,000 characters for audio generation and quick reading.

  3. Audio Generator (audio_generator_agent) – Takes the concise minutes from Agent 2 as input. Uses the Strands speak tool with Amazon Polly to generate an MP3 audio file narrating the concise summary.

  4. PDF Report Generator (create_comprehensive_pdf) – Takes the full structured minutes from Agent 1 as input. Uses the ReportLab library to produce a professional PDF report with custom title styling, section headers, readable text layout, and metadata.

Data flow

  1. User upload – Meeting transcript uploaded through the Streamlit UI or direct API call.

  2. Job initialization – FastAPI creates a unique job ID and returns immediately for asynchronous processing.

  3. Background processing – The four-step Strands agent workflow executes sequentially.

  4. File management – Generated files are uploaded to Amazon S3 with presigned download URLs.

  5. Job completion – Status is updated with download links for all generated outputs.

Future enhancement considerations

  • Persistent job tracking with Amazon DynamoDB for cross-container reliability

  • Multi-format input support (.docx, .pdf, audio transcription files)

  • Real-time WebSocket progress updates

End-to-End Processing Flow

  • The solution orchestrates meeting processing through a coordinated sequence of specialized agents running within Fargate tasks.

  • Each job is assigned a unique job ID and executed asynchronously to ensure scalability and fault isolation.

  • The workflow includes transcript ingestion → structured minutes generation → executive summarization → audio narration → PDF report creation, with each step validated and logged in real time.

Four-Step Agent Processing

  1. Structured Minutes Generator – produces detailed meeting minutes.

  2. Concise Summary Generator – creates executive summary for quick review and audio narration.

  3. Audio Generator – generates MP3 narration of the summary.

  4. PDF Report Generator – produces polished, formatted PDF reports.

Automated File Management and Cloud Integration

  • Automatic Output Upload: Structured text, audio, and PDF reports are automatically uploaded to Amazon S3 with proper partitioning by job IDs.

  • Integrity Checks & Lifecycle Management: Upload confirmations, file validation, and cleanup are logged ensuring operational transparency and reliability.

  • FastAPI background tasks manage asynchronous job execution.

UI Integration & Outputs

  • Streamlit UI shows backend connection, transcript input area, and Generate Minutes after uploading meeting transcript through S3 Pre-signed URL to initiate jobs.

  • Once processing completes, the structured text, audio, and PDF outputs are made available for download via Pre-signed S3 URLs, accessible through clickable buttons in the UI.