可易

用全栈入门模板加快 Amazon Bedrock AgentCore 智能体应用开发

可易团队阅读约 9 分钟

本文说明如何把 FAST 部署到 AWS:用 CDK 拉起 AgentCore 运行时、网关、记忆与代码解释器,再部署 React 前端并创建用户。

目录

#用全栈入门模板加快 Amazon Bedrock AgentCore 智能体应用开发

生成式人工智能(AI)和智能体(agent)式应用正在重塑企业的运作方式,从客户支持机器人到研究助手,团队需要快速从原型走到生产。去年,AWS 发布了 Amazon Bedrock AgentCore,一个用于在生产中构建、部署和扩展人工智能智能体的开发平台。AgentCore 提供核心构建块,例如运行时托管、记忆、工具集成和可观测性,并带有企业级安全和动态扩缩。

全栈 AgentCore 方案模板(Fullstack AgentCore Solution Template, FAST)从一开始就向你展示这些部分如何协同工作。它是一个可立即部署的入门项目,把 AgentCore Runtime、Gateway、Memory 和 Code Interpreter 与 React 前端和 Amazon Cognito 身份验证连接起来,全部用 AWS Cloud Development Kit(AWS CDK)定义。FAST 提供一套完整的参考架构(reference architecture),展示各部分如何集成,并带有一个可学习、可在其上继续构建的可用聊天应用。

在本文中,你将学习如何把 FAST 部署到你的 Amazon Web Services(AWS)账户,理解其架构,并了解如何按你的要求扩展它。你将学习如何构建自己的智能体,同时由 FAST 处理身份验证、基础设施即代码(infrastructure as code, IaC)、部署流水线和服务集成。

方案概览

FAST 提供一套完整的全栈架构,用于在 Amazon Bedrock AgentCore 上部署智能体。该模板默认处理身份验证、前端应用托管、智能体运行时、记忆、可观测性,以及模型上下文协议(Model Context Protocol, MCP)工具集成。

架构以 Amazon Bedrock AgentCore Runtime 为中心,它托管你的智能体。在 FAST 中,用户通过 Amazon Cognito 进行身份验证,它保护四个集成点:

  • 用户登录到 Amazon CloudFront 上的前端 Web 应用
  • 前端访问 AgentCore Runtime 的基于令牌(token)的身份验证
  • 智能体访问 AgentCore Gateway 的基于令牌的身份验证
  • 发往 Amazon API Gateway 的 API 请求的基于令牌的身份验证

前端是使用 Tailwind CSS 和 shadcn 组件的 React 应用,托管在 AWS Amplify Hosting 上。它使用可流式 HTTP 与 AgentCore Runtime 通信,以实现实时响应流。

提供反馈机制,是为了演示如何通过 API Gateway 进行同步且经过身份验证的 HTTP 调用,并把应用数据存储在 Dynamo DB 中。AgentCore Runtime 连接到若干 AgentCore 能力:

  • AgentCore Memory:存储对话历史(短期)和提取出的洞察,例如用户偏好(长期),因此你的智能体可以跨会话记住上下文,而无需自定义数据库工作。(FAST 默认包含短期记忆,长期记忆可以通过少量修改无缝添加。)
  • AgentCore Gateway:把 API 作为与模型上下文协议(MCP)兼容的工具暴露给你的智能体
  • AgentCore Code Interpreter:在隔离的沙箱环境中安全执行 Python 代码
  • AgentCore Observability:把与开放遥测(Open Telemetry, OTEL)兼容的指标和日志发送到 Amazon CloudWatch,并把追踪发送到 AWS X-Ray

模板包含 Strands Agents 和 LangGraph 的模式。FAST 和 AgentCore 与智能体框架无关,因此你可以使用自己选择的智能体 SDK。基础设施在 AWS CDK 中定义,以便可重复部署。

架构在设计上是模块化的。前端与由 AgentCore 驱动的后端集成,你可以把它当作与自己的前端应用集成的示例。那可以是你自己的 React 应用,或使用完全不同前端框架的前端。

为人工智能辅助开发而设计

FAST 在设计上包含大量文档。仓库包括:

  • 引导文档:编码助手自动遵循的规则和约定
  • 功能指南:关于 gateway、memory、流式传输和其他集成的详细文档
  • 贯穿代码库的 README:每个组件的上下文

当你要求编码助手做更改时,它可以阅读这些文档并遵循已记录的模式。这种方法适用于许多人工智能编码助手,包括 Kiro、Cline、Claude Code、Cursor 等。文档和引导文档与具体系统无关。

人工智能辅助开发是可选的。引导编码助手的同一套文档,对更喜欢自己写代码的开发者同样有用。

先决条件

部署 FAST 之前,请确认你已安装以下各项:

  • Node.js 20 或更高版本
  • Python 3.11 或更高版本
  • Docker
  • 已配置至少这些最低凭据的 AWS Command Line Interface(AWS CLI)
  • AWS CDK

你使用的 AWS Identity and Access Management(IAM)用户必须有权限进行必要的 AWS 服务调用,并管理本文提到的 AWS 资源。向 IAM 用户授予权限时,遵循最小权限原则。

方案部署演练

先在本地环境中部署本方案。

步骤 1:克隆仓库

先使用以下命令克隆仓库。

git clone https://github.com/awslabs/fullstack-solution-template-for-agentcore.git
cd fullstack-solution-template-for-agentcore

步骤 2:配置你的部署

编辑 infra-cdk/config.yaml 以自定义部署:

stack_name_base: your-project-name 
admin_user_email: admin@example.com # Optional: auto-creates user and emails credentials 
backend: pattern: strands-single-agent # Available: strands-single-agent, langgraph-single-agent 
deployment_type: docker # Available: docker, zip

步骤 3:用 CDK 部署后端

使用以下命令部署后端。

cd infra-cdk 
npm install 
cdk bootstrap # Only required once per account/region 
cdk deploy

这会创建 Cognito 用户池,构建智能体容器并推送到 Amazon Elastic Container Registry(Amazon ECR),创建 AgentCore Runtime,并建立 CloudFront 分配。部署大约需要 5–10 分钟。

步骤 4:部署前端

使用以下命令部署前端。

cd ..
python scripts/deploy-frontend.py

该脚本根据 CDK 栈输出生成身份验证配置,安装依赖,构建 React 应用,并部署到 AWS Amplify Hosting。脚本完成时输出应用 URL:

✓ Deployment completed successfully!

Console: https://console.aws.amazon.com/amplify/apps
App URL: https://main.d123490abcdef.amplifyapp.com

步骤 5:创建 Amazon Cognito 用户

如果你在配置中提供了 admin_user_email,你会收到一封带临时凭据的电子邮件,可用于登录。转到下一步。

如果你没有提供 admin_user_email,请手动创建用户:

  • 打开 Amazon Cognito 控制台。
  • 找到你的用户池(名为 {stack_name_base}-user-pool)。
  • 前往 Users 并选择 Create user。
  • 输入电子邮件地址和临时密码。
  • 选择 Mark email as verified。
  • 选择 Create user。

步骤 6:访问并测试应用

你可以使用以下步骤访问并测试应用:

  • 在浏览器中打开 Amplify Hosting URL(部署前端后打印在终端中)。
  • 使用你的 Amazon Cognito 用户凭据登录。
  • 在提示时更改临时密码。

FAST 示例应用是一个直接的多轮聊天界面。用户界面在设计上保持精简;它被构建为可替换成你自己的前端,或集成到现有应用中。基线智能体包含两个工具以演示该架构:

  • 文本分析工具:AgentCore Gateway 后面一个基于 AWS Lambda 的工具,统计词数并分析字母频率。这演示 Gateway 集成模式。
  • Code Interpreter:与 AgentCore Code Interpreter 直接集成,以便在隔离沙箱中更安全地执行 Python。

尝试这些示例查询以验证工具是否工作:

  • “Analyze the text: The quick brown fox jumps over the lazy dog”:智能体应返回词数和字母频率分析
  • “Calculate the first 20 Fibonacci numbers”:观察智能体实时编写并执行 Python 代码

与用户界面一样,所提供的工具也是为了被替换。它们的存在是为了演示两种添加工具的架构(像文本分析工具那样放在 AgentCore Gateway 后面,以及像代码解释器工具那样直接加到智能体上),并给你一个可用的起点。此外,反馈收集机制的存在是为了演示如何通过 API Gateway 进行同步且经过身份验证的 HTTP 调用,并且可以无缝移除或改作他用。

按你的需要定制应用

如果你需要的是文档分析智能体而不是聊天机器人呢?或者你想与公司现有的身份提供者集成?FAST 正是处理这种情况;基线应用是起点,不是约束。

以下是 AWS Events YouTube 频道上的一场直播录像,其中使用 FAST 实时构建一个智能体式个人助理应用。

更改智能体模式

模板在 patterns/ 目录中包含两种智能体模式:

  • strands-single-agent:使用 Strands 框架、带 MCP 工具集成的基本对话智能体
  • langgraph-single-agent:使用 LangGraph、带 MCP 工具集成的基本对话智能体

要切换模式,更新 infra-cdk/config.yaml 中的 backend.pattern,并用 cdk deploy 重新部署。

要创建自己的模式,在 patterns/ 下添加一个新目录,放入你的智能体实现、一个 requirements.txt 文件和一个 Dockerfile。更新配置以指向你的新模式。

使用 Gateway 添加新工具

AgentCore Gateway 把工具调用路由到一个 AWS Lambda 函数。要添加新工具:

  • 创建一个实现你的工具逻辑的 Lambda 函数。
  • 在 CDK 栈中定义工具模式(名称、描述和输入参数)。
  • 把该 Lambda 函数添加为 AgentCore Gateway 目标。
  • 用 cdk deploy 重新部署。

智能体通过 MCP 自动从 Gateway 发现工具。实现细节和示例见 docs/GATEWAY.md。

使用 Code Interpreter

Code Interpreter 已集成在基线智能体中。它在隔离沙箱环境中提供更安全的 Python 执行,并带有会话持久化。用户可以要求智能体运行计算、生成数据,或执行任意 Python 代码。

修改前端

前端是 frontend/ 目录中的标准 React 应用。像 Kiro 这样的人工智能编码助手擅长修改 React 前端。描述你想要的更改,并让助手实现它们。

做出更改后,用 python scripts/deploy-frontend.py 重新部署

因为 FAST 使用 AWS Amplify Hosting,你可以选择与受支持的版本控制系统集成,以利用 Amplify Hosting 内置的持续集成与交付(CI/CD)能力,它可以替换所提供的 deploy-frontend.py 脚本。

聊天之外:其他用例

基线应用以聊天界面为中心,但 FAST 支持许多智能体式用例。例如,文档分析智能体可以在前端增加文件上传组件,增加一个从 PDF 提取文本的 Lambda 工具,以及总结发现的智能体逻辑。或者,工作流自动化智能体可以监视 Slack 频道,并自动根据支持请求创建 Jira 工单。同一架构适用,你只是在更换部件。这些定制在 FAST 的默认架构内进行。但如果你需要整个替换一个核心组件呢?

灵活性:更换主要组件

架构有意做成模块化,因此你可以随着要求演变替换主要组件。以下是一些示例:

  • 身份提供者:用 Okta、Microsoft Entra ID、Auth0 或你现有的、与 OAuth 2.0 兼容的身份系统替换 Amazon Cognito
  • 前端框架:把 React 前端换成 Vue、Angular,或把智能体后端集成到现有应用中
  • 托管:从 AWS Amplify Hosting 迁到 Vercel、Netlify、自管的 CloudFront 分配,或你偏好的托管方案
  • 智能体框架:使用 Strands Agents、LangGraph、CrewAI,或甚至使用 TypeScript 或 Java 等其他语言的智能体 SDK

这些是 FAST 提供的一些灵活点。模块化的 CDK 基础设施和解耦架构,使按你的具体需要调整模板变得直接。

清理

使用以下命令移除 FAST 创建的资源:

cd infra-cdk 
cdk destroy --force

这会删除 AWS 资源,包括 Amazon Simple Storage Service(Amazon S3)存储桶和 Amazon Elastic Container Registry(Amazon ECR)镜像。如果你让资源继续运行,某些正在运行的资源可能会产生费用。请注意,Amazon Bedrock AgentCore 按使用付费。

结论

FAST 帮助把构建并部署一个智能体应用的时间减到 30 分钟以内。你可以获得更安全的身份验证、一个可用的前端,以及集成的 AgentCore 能力——Memory、Gateway、Code Interpreter 和 Observability——而无需从零编写基础设施代码。基线聊天应用和示例工具是起点,不是约束。换入你自己的智能体逻辑,连接你的工具,修改前端,或替换身份提供者或托管方案等主要组件。模块化架构适应你的要求。

要开始使用,请为仓库加星并克隆,把 FAST 部署到你的 AWS 账户,并在 30 分钟内运行一个可用的智能体应用。从那里定制并交付真实的东西。

如需专家协助,AWS Generative AI Innovation Center、AWS Professional Services 以及我们的 AWS 合作伙伴可以提供帮助。

PRIMARY_SOURCE: https://aws.amazon.com/blogs/machine-learning/accelerate-agentic-application-development-with-a-full-stack-starter-template-for-amazon-bedrock-agentcore

  • #AgentCore
  • #FAST
  • #CDK
  • #Cognito
  • #全栈部署