使用 Strands Agents 开发并部署生产级架构通用型个人助手
简介
这是基于 Strands Agents SDK 开发的通用型 Agentic AI 应用,通过 MCP 的集成,实现了大语言模型与外部工具系统的无缝连接。Strands SDK 作为核心引擎,提供了强大的代理能力和工具集成机制,使得整个系统具备了高度的可扩展性和实用性。
📢 想要玩转 Strands Agents?速看最新试验!
🌟《开源 Agent 框架 Strands Agents 速成班》推出新实验啦!该实验具有轻量级且灵活的开发方式,支持完全定制,还能访问数千预构建工具,让你体验构建智能应用新范式。
⏩ [点击进入实验],即刻打造高效时间管理工具,免费体验企业级 AI 开发工具的真实效果。
👉 构建无限可能,探索之旅即刻启程!

1.1 功能特点
前后端分离 - MCP Client 和 MCP Server 均可以部署到服务器端,用户可以直接使用 web 浏览器通过后端 web 服务交互,从而访问 LLM 和 MCP Sever 能力和资源
React UI - 基于 React 的用户界面,允许用户与模型交互并管理 MCP 服务器,显示工具调用结果和思考过程
MCP 工具集成 - 提供 STDIO, StreamableHTTP, SSE 模式的 MCP 集成
多模型提供商 - 支持 Bedrock、OpenAI 及兼容模型
多用户会话管理 - 维护多用户 session
1.2 技术特色与优势
架构优势
模块化设计 : 清晰的分层架构,各组件职责明确
可扩展性 : 支持多种模型提供商和 MCP 协议
高并发 : 异步处理和流式响应支持
资源管理 : 完善的会话和连接生命周期管理
MCP 集成优势
标准兼容 : 完全兼容 Anthropic MCP 标准
多协议支持 : 支持 Stdio、SSE、StreamableHTTP 等多种传输协议
动态管理 : 支持运行时动态添加和移除 MCP 服务器
工具缓存 : 智能的工具获取和缓存机制
Strands SDK 优势
统一接口 : 为不同模型提供商提供统一的代理接口
智能对话管理 : 内置滑动窗口对话管理器
工具集成 : 原生支持 MCP 工具集成
可观测性 : 集成 Langfuse 等可观测性工具
应用场景
企业知识助手 : 集成企业内部系统和知识库
DeepResearch : 连接搜索,知识库等工具
数据分析助手 : 连接数据库、BI 工具进行智能数据分析
办公自动化 : 集成日历、邮件、文档系统等办公工具
客户服务 : 连接 CRM、工单系统提供智能客服
1.3 系统流程图

1.4 系统架构图

这个 Demo 的部署架构遵循亚马逊云科技最佳实践,将应用程序部署在私有子网中,通过负载均衡器提供公共访问,并使用 Fargate 实现无服务器容器管理。 这个部署架构包含以下主要亚马逊云组件:
ECS Cluster:
运行在 Fargate 上的无服务器容器环境, 使用 ARM 架构
前端服务:最小 2 个任务,根据 CPU 使用率自动扩展
后端服务:最小 2 个任务,根据 CPU 使用率自动扩展
VPC :
包含公有子网和私有子网,跨越 2 个可用区
公有子网中有 Internet Gateway 和 NAT Gateway
私有子网用于运行 ECS 任务
应用负载均衡:
应用负载均衡器(ALB)分发流量
将/v1/*和/api/*路径的请求路由到后端服务
将其他请求路由到前端服务
数据存储:
DynamoDB 表用于存储用户配置
安全组件:
IAM 角色和策略控制访问权限
Secrets Manager 生成并存储后端服务 API KEY 配置信息
安全组控制网络流量
容器镜像:
前端和后端容器镜像存储在 ECR 中
第一步 创建部署资源
创建 EC2
EC2 是亚马逊云科技的云服务器,本 workshop 中,您将在 EC2 上运行 MCP 环境,在此步骤中,将带您创建一台 EC2 服务器。
在亚马逊云科技控制台顶部的搜索栏中,输入“EC2”,进入 EC2 的控制台页面。

在 EC2 控制台中,点击侧边栏的“Instances”,进入实例页面,点击右上方的橙色按钮“Launch instances”创建新实例。

在 Launch an instance 页面中,Name 处填写任意名称。在 Application and OS Images(Amazon Machine Image)选栏中,点击 Ubuntu,在 Amazon Machine Image 中选择"Ubuntu Server 22.04 LTS (HVM)”。

下方的 Instance type 中,在下拉选单中搜索“t3”,选择“t3.xlarge”类型。此为 4 核 16G 机型, 用于编译和部署。

在下方的 Key pair 选项中,点击“Create new key pair”生成新的密钥对,后面您将使用此密钥登录到 EC2 服务器来配置聊天页面和角色管理器。

点击“Create”后,密钥对的私钥将会自动下载到本地,请到浏览器的默认目录找到名为<Key pair name>.pem
的私钥文件,供后续步骤使用。
在 Network settings 中,点击右侧的“Edit”编辑网络设置。其中,注意检查“Auto-assign public IP”是否为 Enable,Firewall(security groups)选择“Create security group”,name 填写任意名称,如“mcp-demo-sg“。

在接下来的 Inbound Security Group Rules 中,需要配置三条规则:
1、默认应已经包含了一条 ssh 规则,检查其 Protocol 是否为 TCP,Port range 为 22,Source type 为 Anywhere。 配置好 Inbound Security Group Rules 的页面应与下图类似。

注意:如果您访问互联网的 IP 不固定或经过了多层 NAT,则 Inbound rule 可能无法正确获取到实际访问 IP。如果遇到无法访问服务的情况,请尝试将 2、3 两条 inbound 规则的 Source type 更改为 Anywhere。但这意味着所有人都能够访问到您的 EC2 服务器的对应端口,可能会存在潜在风险。
向下翻页,在 Configure storage 中,配置磁盘大小为 30GB,最后在右侧检查一下创建实例的 Summary,确认无误后点击 Launch instance,EC2 实例即创建完成。


点击实例名称,进入 EC2 实例页面,在此您能看到刚刚创建的实例。
至此,所有资源创建完成。接下来,您将在 EC2 中安装相关的环境。
第二步 设置环境
部署步骤
1.环境准备
1.1 进入 Amazon EC2 服务器进行部署
1.2.安装依赖
需要 NodeJS 下载安装或者使用以下脚本从 cdn 下载安装
设置 npm 镜像源(如果在中国区 EC2 或者本地电脑未开启 VPN 情况下)
1.3.配置 Amazon credentials 安装 Amazon CLI:
确保您的 Amazon CLI 已正确配置:
1.4. 执行以下命令安装 docker 软件
更新软件包列表并安装 Docker
更改 docker 权限,并验证是否成功使用代理
添加完成后,使用以下命令生效配置
2.下载代码
从 aws sample code 中下载 demo 代码
3.配置环境变量
把 env.example 改成.env,根据情况取消注释,修改以下变量: 进入项目目录
使用 vim 打开.env 文件编辑: ⚠️本试验使用的是 x86 服务器做编译,可以设置 PLATFORM=linux/amd64,否则跨平台编译速度慢好几倍
如果需要可观测性,可以去https://us.cloud.langfuse.com/ 注册一个免费账号,然后把 key 和 host 信息填入上面的.env 中
4.执行 CDK 安装脚本
进入 cdk 目录,运行如下命令配置 cdk 运行环境.
在 cdk 目录下执行 cdk 部署脚本:
第一次运行,需要打包镜像,根据网络条件不同,大概 10~15 分钟之后,部署完成,输出如下:

5.开通模型权限
海外区需要去 Bedrock - Model Access 开通以下模型的使用权限
Nova Premier
Nova Pro
Nova Lite
Titan Text Embeddings V2
第三步 配置 MCP Servers
配置 MCP Servers
1.访问 UI
部署完成后,您可以使用部署完成后输出的 AlbDnsName(参考上一张红框部分),在浏览器中输入该地址,并加入后缀/chat(形如 http://{AlbDnsName}/chat),即可访问 Agent 前端页面。整体会话是按照图示中 User ID 来管理的(如记忆、可观测性指标、输出物等),请在 User ID 中确认具体的 ID 名称(可以使用“Randomize”按钮随机生成)。

2.设置 MCP Server
左边栏切换到 MCP Servers Tab,我们可以看到预先安装好的 Local File System,点击“Add MCP Server”按钮添加依次添加所需要的 MCP Server

例如,添加 time MCP Server,输入 Server Name 和 JSON 配置描述,点击“Add Server”,后端服务开始下载和连接 MCP 服务器,这个过程取决于 MCP 服务器是本地还是远程,安装等待时间大约几秒到 2 分钟不等。

依次安装本 Demo 需要用的 MCP 服务器:
S3-Upload:上传 HTML 内容,并返回一个 S3 presigned URL,用于托管静态 HTML 网页。这是我们 demo 方案提供的本地 stdio 类型的 MCP Server,已经在 github 上面开源aws-mcp-servers-samples 本方案中已经提前下载了该 MCP server 的代码到服务容器中,只需配置 JSON 如下:
MiniMax-AI:用于绘制插图, 需要到MiniMax Platform官网注册账号,并获取 API KEY
配置 JSON 如下:
Time:用于获取当前时间的工具,安装这个 MCP Server 会使用 uvx 命令动态下载相关代码和依赖包配置 JSON 如下:
(可选,需要额外部署) Retrieve: 用于从 OpenSearch 向量知识库中检索知识。这是我们 demo 方案提供的在 Lamda 部署的 serverless remote MCP serverstdio 类型的 MCP Server。该 MCP 服务器提供两个主要功能:
文本索引与嵌入:将文本转换为向量并存储到 Amazon OpenSearch Service 中;
相似度搜索:基于向量相似度查找相关文档。 该解决方案采用完全无服务器架构,主要包含以下组件:
Amazon Lambda:处理 MCP 请求和响应
Amazon API Gateway:提供 HTTP 接口
Amazon OpenSearch Service:存储文档和向量数据
Amazon DynamoDB:管理 MCP 会话状态
第三方嵌入服务: 将文本转换为向量表示(中国区使用硅基流动 Silicon Flow BGE-M3 Embedding API)
以上内容详细实现请参考源码。
您可以使用预置的部署脚本完成部署,请在部署机器中运行:
配置 JSON 如下:
(海外区) EXA-search: 首先,前往 Exa 官网注册账号,并获取 API Key.
在 UI 弹出框中分别输出 Server Name:exa_search,JSON Configuration:
(中国区) Bocha-search:博查MCP Server是一个给 AI 用的搜索引擎,主要面向国内使用场景,涵盖天气、新闻、百科、医疗、火车票、图片等多种领域。我们需要去博查官网去注册一个账号,并充值一定金额获取 API Key。 如果是在海外区,也可以使用免费的EXA MCP Server替代)。本方案中在部署时已经提前下载了 bocha-search-mcp 的本地代码到容器中,只需使用如下 JSON 配置即可安装:
开启 MCP Servers
上面的 MCP Server 全部配置好了之后,我们在左边栏 MCP Servers 列表中开启这些 Server。
如图所示:

第四步 Agent 测试和使用
1.Agent 测试和使用
工具配置完成后,我们就可以正式使用 Agent 应用了。
请在前端左侧 Chat Settings 中作如下配置:
Model 栏目请选择 DeepSeek-R1-Pro (如果是在中国区) 或者 Claude 3.7 (如果是在海外区)
Max Tokens 请调整至 16000 或接近 16000 数字;
1)第一次会话(提出第一个关注的问题):
厄尔尼诺对海洋生物有什么影响?
该次会话中,Agent 会根据自身知识来生成回答,如:
厄尔尼诺现象对海洋生物产生广泛影响。当太平洋海水异常变暖时,营养物质减少导致浮游生物数量下降,进而影响整个食物链。这使得鱼类种群迁移或减少,珊瑚礁因高温而发生白化现象,同时改变了海鸟和海洋哺乳动物的分布和繁殖模式。在南美洲沿岸,上升流减弱影响了当地渔业资源,而在其他地区可能出现不寻常的物种入侵。这些变化不仅影响生态系统平衡,也对依赖海洋资源的人类社区造成经济影响。
提出第二个关注的问题:
它会影响农业生产和粮食安全吗?
Agent 回答:
是的,厄尔尼诺现象显著影响农业生产和粮食安全。它导致全球多个地区降水模式异常,引发一些地区严重干旱(如东南亚、澳大利亚和非洲部分地区),而其他地区则出现洪涝灾害(如南美洲西部)。这些极端天气事件直接损害农作物产量、破坏农业基础设施,并改变病虫害分布。在受灾严重地区,粮食减产导致价格上涨,加剧粮食不安全状况,尤其影响贫困和依赖当地农业的社区。此外,厄尔尼诺引起的温度变化也会影响作物生长周期和产量,进一步威胁全球粮食供应链的稳定性。
2)第二轮会话(正式生成课件):
请在前端左侧 System Prompt 中输入系统提示词:
你是一位深度研究助手,请在单次回复中使用可用的最大计算能力,尽可能深入、批判性和创造性地思考,花费必要的时间和资源来得出最高质量的答案。在收到工具结果后,仔细反思其质量并在继续之前确定最佳下一步。使用你的思考基于这些新信息进行规划和迭代,然后采取最佳的下一步行动。
你必须遵循以下指令:
– 每次先使用 mem0_memory 工具查看是否有与当前问题相关的历史记忆,如果有,提取记忆用于当前任务的内容生成。
– 请使用 time 工具确定你现在的真实时间.
– 如果引用了其他网站的图片,确保图片真实存在,并且可以访问。
– 如果用户要求编写动画,请使用 Canvas js 编写,嵌入到 HTML 代码文件中。
– 生成代码文件请直接上传到 s3,并返回访问链接给用户
– 使用 text_similarity_search 工具去检索厄尔尼诺相关的知识
– 如有需要,也可以使用 Web search 去检索更多外部信息
– 使用 minimax 绘图工具会返回一个公开访问的 URL,在 HTML 用可以直接嵌入
在对话框中输入:
你是一名大学地理教师,请为大学生设计一堂关于厄尔尼诺现象的互动课程,需要:1. 搜索最新气候数据和相关新闻事件;2. 搜索教学资源和真实图片;3. 使用工具绘制课程中的需要的演示插图;4. 生成完整课程方案,包括教学目标、活动设计、教学资源和评估方法;5. 设计一个展示厄尔尼诺现象的酷炫动画并和搜索到的相关信息一起集成到 HTML 课件中。
Agent 会根据任务需求自动进行思考、规划、拆分任务和调用工具,在右侧可以看到工具调用的情况。

最终使用 upload-file 工具将生成的 html 课件上传到 S3,生成访问链接 点击输出结果中的“查看课程设计方案”链接,可以查看和下载托管在云端的课件内容:


清理资源
从控制台进入 cloudformation,切换到对应部署的 region,找到McpEcsFargateStack
,选中点击 Delete 删除即可

EC2 资源删除 进入控制台,选择我们创建的 EC2,点击删除

总结
通过本教程,您已成功在亚马逊云平台上部署了一个支持多工具协同的 Agentic AI 应用,并完成了从基础设施配置、模型调用,到前端交互界面的完整流程。该项目充分发挥了亚马逊云服务的弹性与集成能力,帮助您构建一个可扩展、可维护、面向生产的智能代理系统。
接下来,您可以根据实际业务需求进一步扩展应用功能,例如:
连接企业内部数据库或知识库,实现企业级智能问答;
引入更多自定义 MCP 工具,提升模型感知能力;
集成身份认证、数据加密等机制,加强安全防护。
部署完成后,建议及时清理不再使用的资源(例如 CloudFormation 堆栈与 EC2 实例),以控制云端成本。如需进一步了解 Amazon Bedrock、MCP 或 Langfuse 等相关服务,欢迎查阅官方文档或联系亚马逊云科技客户代表获取支持。
Reference:
https://aws.amazon.com/cn/getting-started/hands-on/stable-diffusion-deployment/
https://aws.amazon.com/cn/getting-started/hands-on/deploy-a-java-application-on-linux/
📢 想要玩转 Strands Agents?速看最新试验!
🌟《开源 Agent 框架 Strands Agents 速成班》推出新实验啦!该实验具有轻量级且灵活的开发方式,支持完全定制,还能访问数千预构建工具,让你体验构建智能应用新范式。
⏩ [点击进入实验],即刻打造高效时间管理工具,免费体验企业级 AI 开发工具的真实效果。
👉 构建无限可能,探索之旅即刻启程!
评论