本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Strands Agents SDK 和 AWS Fargate 部署 Multi-Agent 会议情报平台
Aishita Batra 和 Muskan。,Amazon Web Services
Summary
这种模式部署了多代理会议情报平台 AWS Fargate ,该平台可自动从会议记录中生成结构化会议记录、执行摘要、音频旁白和格式化的 PDF 报告。该解决方案使用 Strands Agents SDK 来编排四个专门的人工智能代理,Amazon Bedrock 用于语言模型推断,Amazon Polly 用于文本到语音的转换。
用户通过 Streamlit Web 界面上传会议记录,系统通过协调的代理管道异步处理这些记录。该基础设施通过 Actions w GitHub ith AWS AWS Cloud Development Kit (AWS CDK) 自动部署,包括内置监控、自动扩展和高可用性。
先决条件和限制
先决条件
AWS 账户 具有管理权限的活跃用户
AWS CDK 已安装版本 2.114.1 或更高版本
AWS CLI 已安装并配置了相应的 AWS Identity and Access Management (IAM) 权限
Node.js 18 或更高版本
Python 3.12 或更高版本
Git 已安装
已安装 Docker(可选,用于本地测试)
配置了存储库密钥的 GitHub 账户:
AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEYAmazon Bedrock 可在你所在的地区启用 Anthropic Claude 3 Sonnet 模型
已启用 Amazon Polly 访问权限(大多数地区默认启用)
亚马逊简单存储服务 (Amazon S3)、亚马逊弹性容器服务 (Amazon ECS)、Fargate、Elastic Load Balancing、亚马逊虚拟私有云(亚马逊 VPC)的 IAM 权限
亚马逊 VPC、IAM CloudWatch、亚马逊和亚马逊简单通知服务 (Amazon SNS) Simple Notification Service
限制
每次会议的处理时间为 2-7 分钟,具体取决于笔录的复杂程度。
每个请求的最大笔录长度为 50,000 个字符。
音频摘要会自动压缩为 3,000 个字符(Amazon Polly 字符数限制)。
亚马逊 Bedrock Claude 3 Sonnet 的可用性因而异。 AWS 区域
Job 状态存储在内存中,除非您配置了持久性,否则不会在容器重启后 S3-based 保持不变。
直接上传仅支持
.txt文件。Application Load Balancer 强制要求处理请求的超时时间为 15 分钟。
有些 AWS 服务并非全部可用 AWS 区域。有关区域可用性,请参阅按地区划分的AWS 服务
。有关特定端点,请参阅服务端点和配额页面,然后选择相应服务的链接。
架构
目标架构
该解决方案使用Strands Agents SDK部署了 AWS Fargate 具有以下架构的多代理人工智能系统:

用户通过托管在本地或远程服务器上的 Streamlit Web 应用程序上传会议记录。
公共子网中的 Application Load Balancer 将流量分发到两个可用区 Fargate 服务。
Fargate 任务在具有 NAT 网关访问权限的私有子网中运行,并托管 FastAPI 后端和 Strands 代理编排逻辑。
Strands 多代理系统通过四个连续代理处理笔录:结构化会议记录生成、简洁摘要生成、音频旁白和 PDF 报告创建。
Amazon Bedrock 提供会议纪要的语言模型推理(Claude 3 Sonnet)和摘要生成代理。
Amazon Polly 将简明摘要转换为 MP3 音频旁白。
Amazon S3 使用生命周期管理策略存储上传的笔录、生成的输出文件和任务状态。
亚马逊通过 Amazon SNS 通知 CloudWatch 提供集中日志、CPU 和内存警报以及服务运行状况监控。
GitHub Action CI/CD s 通过运行状况 AWS CDK 验证测试提供自动部署。
自动化和扩展
ECS Fargate 自动缩放 — 基于 70% 的 CPU 和内存利用率阈值,自动将容器从 1 个实例扩展到 3 个。
CloudWatch监控 — CPU (65%)、内存 (80%) 和服务运行状况警报与 Amazon SNS 通知集成。
A@@ pplication Load Balancer — 流量分布,每 60 秒进行一次运行状况检查,长时间运行的 AI 处理任务的空闲超时时间为 15 分钟。
后台任务处理 — 使用 FastAPI 进行异步会议分析 BackgroundTasks ,实现并发任务执行。
S3-based 任务持久性 — Amazon S3 中的永久任务状态存储,可确保容器重启和扩展事件期间的作业连续性。
GitHub 操作 CI/CD — 带有 CDK 基础架构配置和运行状况验证测试的自动部署管道。
工具
AWS 服务
Amazon Bedrock — 为会议分析和摘要代理提供语言模型推理(Claude 3 Sonnet)。参见 Amazon Bedrock 文档。
Amazon CloudWatch — 监控容器性能,捕获应用程序日志,并触发 CPU、内存和服务运行状况阈值警报。参见 Amazon CloudWatch CloudWatch 文档。
亚马逊弹性容器服务 (Amazon ECS) Service — 通过运行状况检查和服务发现来编排 Fargate 容器任务。参见 Amazon ECS 文档。
Amazon Polly — 将简洁的会议摘要转换为 MP3 音频旁白。参见 Amazon Polly 文档。
亚马逊简单通知服务 (Amazon SNS) Simple Notification — 通过监控发送警报通知。 CloudWatch 参见 Amazon SNS 文档。
Amazon Simple Storage Service (Amazon S3) — 通过生命周期管理存储上传的笔录、生成的输出文件和任务状态。参见亚马逊 S3 文档。
AWS CDK — 将所有基础架构定义并部署为代码。参见AWS CDK 文档。
AWS Fargate — 无需管理服务器即可运行容器化应用程序工作负载,可从 1 个实例自动缩放到 3 个实例。参见AWS Fargate 文档。
Elastic Load Balancing — 跨可用区将传入流量分配给 Fargate 任务。见 Elastic Load Balancing 文档。
其他工具
Docker — 为本地测试构建容器镜像。请参阅 Docker 文档
。 FastAPI — 为作业提交、状态检查和文件操作提供 REST API 后端。请参阅 FastAPI 文档
。 GitHub 操作-自动执行 CI/CD 部署管道。请参阅GitHub 操作文档
。 ReportLab— 根据结构化会议纪要生成格式化的 PDF 报告。参见ReportLab 文档
。 Strands Agents SDK — 使用装饰器模式,用最少的代码编排多代理工作流程。
@tool请参阅 Strands SDK 文档。 Streamlit — 提供基于 Web 的用户界面,用于脚本上传和输出下载。请参阅 Streamlit 文档
。
代码存储库
此模式的代码可在 s GitHub ample-ai-meeting-minuting-minutes-generator 存储库
最佳实践
为每位代理使用清晰、有针对性的系统提示,以确保一致的输出格式和专业的会议文档。
实施 Amazon S3 生命周期管理,保留期为 90 天,以优化成本并自动清理文件。
使用 Amazon S3-based 任务跟踪来维护容器重启和扩展事件的状态,以实现可靠的处理。
使用 Amazon SNS 通知配置 CPU、内存和服务运行状况 CloudWatch 警报,以便进行主动监控。
在处理之前对文件上传和内容格式进行验证和审查,以防止出现系统错误和安全问题。
考虑 AWS AgentCore 需要托管编排和简化运营开销的生产部署。当您需要进一步自定义代理交互和专门的工作流程控制时,Strands SDK 是首选。
根据人工生成的会议记录对代理输出进行系统评估,以持续改善系统提示和座席绩效。
操作说明
| Task | 说明 | 所需技能 |
|---|---|---|
克隆存储库 |
| AWS DevOps |
创建自己的 Git 仓库 |
| 应用程序开发人员 |
为配置存储库密钥 CI/CD。 |
| DevOps 工程师 |
使用 CI/CD 工作流程部署基础架构。 |
| DevOps 工程师 |
验证基础设施部署。 |
| DevOps 工程师、云管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
设置本地开发环境 |
| 应用程序开发人员 |
检索后端服务 URL。 |
| 云管理员 |
启动应用程序并验证连通性。 |
| 应用程序开发人员 |
| Task | 说明 | 所需技能 |
|---|---|---|
处理会议记录并验证输出。 |
| 应用程序开发人员 |
问题排查
| 问题 | 解决方案 |
|---|---|
亚马逊 Bedrock 模型访问错误 | 确认您所在的地区启用了 Anthropic Claude 3 Sonnet 模型。打开 Amazon Bedrock 控制台,选择模型访问权限,然后确认 Claude 3 Sonnet 显示已授予访问权限。 |
CDK 引导失败 | 部署前 |
| 请查看 Amazon ECS 控制台,了解已停止的任务的详细信息。常见原因包括 IAM 角色权限不正确、缺少 Amazon Bedrock 访问权限或 VPC 配置问题。查看任务的 CloudWatch 日志。 |
处理超时(ALB 超时 15 分钟) | Application Load Balancer 的空闲超时时间为 15 分钟。对于很长的脚本,请将输入大小减少到 50,000 个字符以下,或者在 CDK 配置中增加 ALB 超时。 |
音频生成失败 | Amazon Polly 的字符限制为 3,000 个。简洁的摘要代理会自动将内容压缩到此限制以下。如果音频生成仍然失败,请确认您所在的地区已启用 Amazon Polly 访问权限。 |
GitHub 操作部署失败 | 验证 |
后端未连接(Streamlit 显示已断开连接) | 验证 |
容器重启后 Job 状态丢失 | 通过配置 |
相关资源
参考
工具
附加信息
Multi-agent 处理工作流程
该解决方案通过四个在 Fargate 任务中按顺序运行的专业代理来协调会议处理。为每个作业分配一个唯一的作业 ID,并以异步方式执行,以实现可扩展性和故障隔离。
结构化会议记录生成器 (
generate_structured_minutes) — 将原始会议记录和标题作为输入。使用 Amazon Bedrock Claude 3 Sonnet 制作全面的会议纪要,包括会议信息、议程项目、讨论摘要、包含任务人和截止日期的行动项目以及后续步骤。将输出保存为纯文本文件。简明摘要生成器 (
concise_minutes_agent)-将 Agent 1 的完整结构化会议记录作为输入。使用 Amazon Bedrock Claude 3 Sonnet 创建不到 3,000 个字符的执行摘要,用于生成音频和快速阅读。音频生成器 (
audio_generator_agent)-将 Agent 2 中的简洁分钟作为输入。使用带有 Amazon Polly 的 Strandsspeak工具生成 MP3 音频文件,讲述简洁的摘要。PDF 报告生成器 (
create_comprehensive_pdf)-将 Agent 1 的完整结构化会议记录作为输入。使用该 ReportLab 库生成包含自定义标题样式、章节标题、可读文本布局和元数据的专业 PDF 报告。
数据流
用户上传 — 通过 Streamlit 用户界面或直接 API 调用上传的会议记录。
任务初始化 — FastAPI 创建唯一的任务 ID 并立即返回以进行异步处理。
后台处理 — 四步的 Strands 代理工作流程按顺序执行。
文件管理-生成的文件使用预签名的下载网址上传到 Amazon S3。
Job 完成 — 使用所有生成输出的下载链接更新状态。
未来的增强注意事项
使用 Amazon DynamoDB 进行持续的任务跟踪,确保跨容器的可靠性
Multi-format 输入支持(
.docx、.pdf、音频转录文件)Real-time WebSocket 进度更新
End-to-End 处理流程
该解决方案通过在 Fargate 任务中运行的一系列协调专业代理来协调会议处理。
为每个作业分配一个唯一的作业 ID,并以异步方式执行,以确保可扩展性和故障隔离。
工作流程包括记录提取 → 生成结构化会议纪要 → 执行摘要 → 音频旁白 → 创建 PDF 报告,每个步骤都经过验证并实时登录。
Four-Step 代理处理
结构化会议纪要生成器 — 生成详细的会议纪要。
简明摘要生成器 — 创建执行摘要,便于快速查看和音频旁白。
音频生成器-生成摘要的 MP3 旁白。
PDF 报告生成器 — 生成精美的、格式化的 PDF 报告。
自动文件管理和云集成
自动上传输出:结构化文本、音频和 PDF 报告会自动上传到 Amazon S3,并按作业 ID 进行适当的分区。
完整性检查和生命周期管理:记录上传确认、文件验证和清理,确保操作的透明度和可靠性。
FastAPI 后台任务管理异步作业的执行。
用户界面集成和输出
Streamlit 用户界面显示后端连接、笔录输入区域和通过 S3 Pre-signed URL 上传会议记录以启动任务后生成会议记录。

处理完成后,结构化文本、音频和 PDF 输出可通过 Pre-signed S3 URL 下载,可通过用户界面中的可点击按钮进行访问。

