描述

本次工作坊将利用 Kiro IDE 从零开始构建一个带有 AI 代理聊天机器人的电子商务网站。工作坊将首先使用 Vibe Coding 构建一个电子商务网站原型,然后采用规范驱动的方法,基于 Strands Agents 和 Nova Pro 将 AI 代理聊天机器人集成到该电子商务网站中。
*为了获得更佳的远程桌面体验,请选择离您最近的区域。在 Lab 4 中使用 Bedrock 访问时,请为 boto3 指定 us-east-1 或 us-west-2 区域。

使用 Kiro 构建带有 AI 代理聊天机器人的电子商务网站
欢迎参加本次实践工作坊,您将学习如何使用 Kiro(一款人工智能开发环境)构建一个完整的电子商务网站,并为其添加智能 AI 代理聊天机器人。本次工作坊将演示现代 AI 工具如何加速从概念到生产就绪应用程序的全栈开发。

Kiro是什么?
Kiro 是一款智能体 IDE,它通过规范驱动开发、智能体钩子和自然语言编码辅助,帮助您从原型开发快速过渡到生产环境。借助 AI 驱动的功能,您可以更快地构建产品,这些功能能够理解您的整个代码库,将提示信息转化为结构化的规范,并自动执行重复性任务。

核心能力

  • 规格说明- 使用结构化的规格说明来规划和构建功能,将需求分解为详细的实现计划。
  • 钩子- 使用智能触发器自动执行重复性任务,这些触发器可以响应文件更改和开发事件。
  • Agentic Chat - 通过与 Kiro 进行自然对话来构建功能,Kiro 能够理解您的项目上下文。
  • 控制- 通过 Markdown 文件,使用自定义规则和项目特定上下文来引导 Kiro 的行为
  • MCP 服务器- 通过模型上下文协议连接外部工具和数据源
  • 隐私至上——采用企业级安全和隐私保护措施,确保您的代码安全。


在本工作坊中,将创建一个包含以下功能的综合性三层电子商务网络应用程序:

基于 React 的前端,具有响应式 UI 和交互式产品浏览功能
基于Node.js 的后端,带有 RESTful API 和业务逻辑
具有合理模式设计的SQL 数据库,用于存储产品和购物车信息
使用 Strands Agents SDK 和 Amazon Bedrock Nova Pro 的AI 聊天机器人
完整的用户工作流程,包括产品发现、购物车管理和智能助手

本次研讨会将涵盖人工智能辅助开发的五个核心领域:

🚀 Vibe Coding - 通过自然语言提示,体验快速应用程序开发,几分钟内即可生成完整的全栈应用程序
🎯 指导- 学习如何为您的 AI 代理提供上下文指导和编码标准,以实现一致、高质量的代码生成
🔌 模型上下文协议 (MCP) - 集成外部工具和文档资源,以扩展 AI 代理的功能
📋 规范驱动开发- 掌握结构化的开发工作流程,包括正式的需求分析、设计和实现阶段
⚡ 代理钩子- 通过事件驱动的 AI 代理执行实现开发工作流程自动化

本次研讨会将展示人工智能驱动的开发工具如何改变软件开发生命周期,使开发人员能够在保持代码质量和遵循最佳实践的同时,更快地构建复杂的应用程序。

搭建自己的环境

要在您自己的环境中运行此研讨会,您需要安装和配置以下组件:

所需软件:

  • Node.js 18.x+ - 用于运行电子商务应用程序的前端和后端
  • Python 3.8+ - 用于开发工具和后端集成
  • uv - 适用于 MCP 服务器的快速 Python 包管理器
  • 安装 Node.js - 运行电子商务应用程序的后端和前端组件需要Node.js。

下载Node.js:

访问nodejs.org
下载适用于您操作系统的 LTS(长期支持)版本
我们建议使用 Node.js 18.x 或更高版本。
安装Node.js:

Windows 系统:运行下载的.msi安装程序,并按照安装向导进行操作。

macOS:运行下载的.pkg安装程序或使用 Homebrew:brew install node

Linux:使用软件包管理器或从官方网站下载。

验证安装:

node --version
npm --version

这两个命令都应该返回版本号。

安装 Python
Python 是各种开发工具和潜在后端集成所必需的。

下载 Python

访问python.org
下载适用于您操作系统的 Python 3.8 或更高版本
安装 Python:

Windows 系统:运行安装程序并确保勾选“将 Python 添加到 PATH 环境变量中”。

macOS:运行安装程序或使用 Homebrew:brew install python

Linux:大多数发行版都预装了 Python,或者使用:sudo apt install python3 python3-pip python-is-python3

验证安装:

python --version
pip --version

注意:对于 macOS,如果找不到pythonand命令,而 andor可以正常工作,您可以在 shell 配置文件中创建一个别名:pippython3pip3

echo 'alias python="python3"' >> ~/.zshrc
echo 'alias pip="pip3"' >> ~/.zshrc

然后,关闭当前终端窗口并打开一个新的终端窗口。这将重新加载 shell 配置并使别名生效。

安装uv
uv 是一个快速的 Python 包安装程序和解析器,Kiro 使用它来管理 Python 依赖项和 MCP 服务器。

安装uv:

Windows:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

使用 pip 的替代方案:

pip install uv

验证安装:

uv --version

注意:如果uv找不到命令,请关闭当前终端窗口并打开一个新的终端窗口。

准备 AWS 凭证
注意:如果您参加的是 AWS 托管活动,请跳过此部分。我们将提供包含凭证的 AWS 账户。
要访问 Bedrock Nova Pro 模型以使用 AI 代理功能,需要 AWS 凭证。请确保您的 AWS 凭证拥有访问 Amazon Bedrock 和 Nova Pro 模型所需的 IAM 权限AmazonBedrockFullAccess。要获取 AWS 凭证,请参阅“ IAM 用户如何管理自己的访问密钥”。

Kiro 安装
下载 Kiro
前往kiro.dev 并下载安装程序
打开下载的文件,并按照适用于您的操作系统(Windows、macOS 或 Linux)的安装说明进行操作。
打开 Kiro IDE,开始编写代码吧!

首次打开 Kiro 时,系统会提示您使用您选择的身份验证方式登录,包括社交账号和 AWS 登录选项。了解更多身份验证方法。

登录后,您可以选择导入 VS Code 设置和扩展。您也可以跳过此步骤。从可用选项中选择您喜欢的主题,然后允许 Kiro 设置 shell 集成,使代理能够代表您执行命令。
最后,您将进入欢迎页面。

Kiro入门指南
打开项目
在此工作坊中创建一个名为kiro-folder 的文件夹作为项目目录。

启动 Kiro 并打开您的项目(例如kiro-workshop):

使用“文件”>“打开文件夹”选择您的项目目录
或者将项目文件夹拖放到 Kiro 中
或者,打开命令行,从项目目录运行 kiro .
访问 Kiro 面板
点击活动栏(左侧边栏)中的 Kiro Ghost 图标。此面板提供对 Kiro 所有 AI 功能的访问。

开始聊天会话
聊天窗口默认应处于打开状态。

如果不行,您还可以通过多种方式在开发环境中访问聊天功能:

  • 键盘快捷键:按Cmd+L(Mac) 或Ctrl+L(Windows/Linux) 打开聊天面板
  • 命令面板:按Cmd+Shift+P(Mac)或Ctrl+Shift+P(Windows/Linux)并搜索“Kiro:打开聊天”
  • 辅助侧边栏:点击 Kiro 聊天图标切换按钮Cmd+Opt+B(Mac 用户请使用快捷键),或Ctrl+Alt+B点击右上角的顶部栏,即可打开聊天面板。

实验一:氛围编码

概述

在本实验中,您将学习如何使用 Kiro 的Vibe Coding功能,通过自然语言提示快速构建完整的电子商务网站。Vibe Coding 是 Kiro 最强大的功能——只需极少的手动编码,即可将高级描述转化为功能齐全的应用程序。

什么是 Vibe Coding? Vibe Coding 是 Kiro 的 AI 驱动型开发模式,它能够解读您的项目需求,并自动生成完整的应用程序架构,包括前端、后端和数据库组件。它超越了简单的代码生成,能够理解业务逻辑、用户体验模式和技术最佳实践。

你将构建的内容:

  • 一个采用现代架构的三层电子商务Web应用程序
  • 基于 React 的前端,具有响应式 UI 和交互式组件
  • 基于Node.js 的后端,带有 RESTful API 和业务逻辑
  • 具有合理模式设计和数据关系的SQL 数据库
  • 完整的用户工作流程,包括产品浏览和购物车管理

你将学到:

  • 如何为复杂的应用程序开发编写有效的提示
  • 了解 Kiro 的代码生成和项目脚手架功能
  • 测试和验证人工智能生成的应用程序
  • 全栈开发中常见问题的排查
  • 通过对话式开发迭代和改进应用程序

本实验演示了 Kiro 如何在几分钟内(而不是几小时或几天)将开发从概念加速到可运行应用程序,同时保持代码质量并遵循行业最佳实践。

嗨起来!

在 Kiro 的聊天面板中,选择Vibe并发送以下提示:

Build a simple e-commerce website with three web pages, including 
1. Home page with product list of 20 sample products (use emoji to simulate product pictures)
2. Product page with product description, price, quantity, add-to-cart button, and sample user reviews
3. Shopping Cart page with product to be purchased list, total cost, and action buttons such as quantity update and item delete

The web application should be based on 3-tier architecture, including 
- React based frontend for rendering UI
- Node.js based backend with application logics like add and remove items in shopping cart
- SQL based database to store products and shopping cart items
构建一个简单的电商网站,包含三个网页:

1. 首页,包含 20 个示例产品列表(使用表情符号模拟产品图片)
2. 产品页面,包含产品描述、价格、数量、加入购物车按钮和示例用户评价
3. 购物车页面,包含待购商品列表、总价以及诸如更新数量和删除商品等操作按钮

该 Web 应用应基于三层架构,包括:

- 基于 React 的前端,用于渲染用户界面
- 基于 Node.js 的后端,用于处理诸如购物车商品添加和删除等应用逻辑
- 基于 SQL 的数据库,用于存储产品和购物车商品信息

Vibe Coding 完成后,发送以下提示即可启动电子商务网站:

Start the application

Kiro 会将您的请求转换为相应的终端命令,并在执行前征求您的同意。您可以查看建议的命令,并选择“修改”、“拒绝”、“运行”或“运行并信任”,然后直接在聊天窗口中查看输出结果。更多信息,请参阅“终端集成” 。

点击绿色播放图标,接受并在终端中运行该命令。

测试应用程序
电子商务网站上线后,测试其核心功能:

浏览产品:浏览首页并点击不同的产品
加入购物车:将多个商品添加到您的购物车
查看购物车:前往购物车页面查看您的商品
更新数量:尝试更改商品数量
移除物品:测试物品移除功能
如果问题仍然存在,请按提示描述问题并发送给 Kiro 进行调试。以下是一些常见问题,供您参考。

⚠️ 常见问题排查

首页不显示任何产品 如果您遇到前端/后端/数据库通信问题,例如首页不显示任何产品,请将此提示发送给 Kiro:

Home page doesn't show any product

购物车功能无法使用 如果您在使用购物车功能时遇到问题,例如无法删除购物车中的商品,请将此信息发送给 Kiro:

Shopping Cart's item removal function is not working

应用程序无法启动。 如果应用程序启动失败,请尝试:

The application is not starting properly.

实验1结束
应用程序测试完毕后,请发送以下提示信息以停止电子商务网站:

Stop the application

实验二:Steering

概述
在本实验中,您将学习如何使用 Kiro 的“引导”功能,为您的 AI 代理提供上下文指导和标准。“引导”功能允许您建立项目特定的规则、编码标准和架构指南,Kiro 在生成代码和提出建议时将遵循这些规则。

您将学会如何:

生成基础性指导文件,定义您的产品概述、技术栈和项目结构。
创建符合您电子商务项目开发标准和最佳实践的自定义指导文件
配置导向型指导原则的适用规则,以控制特定指导原则何时适用。
利用控制机制来保持代码库的一致性,并确保 AI 生成的代码遵循您已建立的模式。
引导功能相当于为 Kiro 建立持久记忆,帮助它理解项目的背景、限制和偏好。随着 AI 代理逐渐熟悉您的具体需求和编码标准,这将有助于提供更相关的建议、提升代码质量并加快开发周期。

生成指导文件
点击活动栏(左侧边栏)中的 Kiro Ghost 图标。在“代理指导”部分,点击“生成指导文档”按钮,生成基础指导文件,以建立核心项目上下文。

Kiro 将创建三个基础文件:

  • 产品概述(product.md)——定义您产品的用途、目标用户、关键功能和业务目标。这有助于 Kiro 理解技术决策背后的“原因”,并提出符合您产品目标的解决方案。
  • 技术栈(tech.md)——记录您选择的框架、库、开发工具和技术限制。Kiro 在推荐实现方案时,会优先选择您已建立的技术栈。
  • 项目结构(structure.md)——概述文件组织、命名约定、导入模式和架构决策。这确保生成的代码能够无缝集成到您现有的代码库中。

添加自定义方向文档

自行打造专属方向盘
您还可以通过针对您项目独特需求的定制化专业指导,进一步加深 Kiro 的理解。例如:

  1. 导航至 Kiro 面板中的“转向”部分。
  2. 点击“+”按钮创建新的 .md 文件
  3. 选择工作区代理控制
  4. 输入一个描述性的文件名(例如 python-venv.md)
  5. 复制以下标准 Markdown 语法指南并保存。
# Technology Stack and Conventions

## Python Environment Management
- **Virtual Environments:** Always use Python virtual environments (venv) for dependency management.
- **Preferred Tool:** Utilize `venv` for creating and managing virtual environments.
- **Activation:** Ensure virtual environments are activated before running Python scripts or installing packages.
- **Dependency Installation:** Install project dependencies within the activated virtual environment using `pip`.

上传自定义方向盘文件
您也可以直接上传转向系统文件.kiro/steerings。下载以下两个转向系统示例文件:

开发标准.md https://github.com/awsdataarchitect/kiro-best-practices/blob/main/.kiro/steering/development-standards.md
python-best-practices.md https://github.com/awsdataarchitect/kiro-best-practices/blob/main/.kiro/steering/development-standards.md

然后将文件复制到.kiro/steerings.

Steering Examples

您可以在这里找到更多转向系统的示例供您参考:

常用导向文件策略 https://kiro.dev/docs/steering/#common-steering-file-strategies
Kiro最佳实践——转向 https://github.com/awsdataarchitect/kiro-best-practices/tree/main/.kiro/steering

实验三:利用外部知识进行编码

概述
在本实验中,您将学习如何通过连接外部知识库和专业工具来扩展 Kiro 的功能。这对于利用最新文档、API 和领域专业知识进行 AI 驱动的开发至关重要。

外部知识的重要性: 现代软件开发需要访问不断更新的文档、API 和专用工具。Kiro 不只是依赖训练数据,它还可以连接到实时外部资源,从而提供:

来自官方渠道的最新文件
针对特定技术和框架的专用工具
通过精心整理的知识库获得领域专业知识
实时信息频繁变化
实验目标: 本实验旨在确保 Kiro 能够访问以下资源,从而为实验 4 的人工智能聊天机器人开发做好准备:

Strands Agents SDK 文档- 构建 AI 代理的完整指南
最新 API 参考- 当前方法签名和示例
最佳实践——精选模式和工作流程
故障排除资源- 常见问题及解决方案
获取外部知识的两种途径:

您可以通过两种强大的方法来扩展 Kiro 的功能:

Option 1: Model Context Protocol (MCP)

直接服务器集成——将 Kiro 连接到提供专用工具和数据源的 MCP 服务器。这种方法可为您带来以下优势:

  • 对服务器配置进行精细控制
  • 直接访问 MCP 工具生态系统
  • 定制服务器开发能力
  • 手动配置和管理

Option 2: Kiro Powers

知识包打包——安装预配置的功能,这些功能会根据您的项目上下文自动激活。这种方法提供以下优势:

  • 通过精选市场一键安装
  • 基于关键词和上下文的自动激活
  • 捆绑式文档、工具和工作流程
  • 社区驱动型生态系统

建议:如果您是外部知识集成的新手,建议从Kiro Powers入手,以获得更流畅的体验。如果您需要定制集成或想了解底层 MCP 协议,请探索MCP 选项。

这两种方法都能让你掌握实验室 4 的聊天机器人开发项目所需的 Strands Agents SDK 知识。

Option 1: Model Context Protocol (MCP)

概述
在本实验中,您将学习如何在 Kiro 中直接配置和使用 MCP(模型上下文协议)服务器。您将把 Strands Agents MCP 服务器添加到您的配置中,测试其功能,并探索 MCP 如何使 Kiro 能够访问专用工具和文档。

什么是MCP?
MCP 是一种协议,它允许 Kiro 与外部服务器通信,以访问专用工具和信息。例如,AWS 文档 MCP 服务器提供了一些工具,可以直接在 Kiro 中搜索、阅读 AWS 文档并获取相关建议。

使用 MCP,您可以:

  • 访问专业知识库和文档
  • 与外部服务和API集成
  • 利用特定领域的工具扩展 Kiro 的功能
  • 为您的特定工作流程创建自定义工具

先决条件
在本实验室环境中,uv 对于运行 MCP 服务器至关重要。请确保您的环境中已安装 uv:

安装状态检查:

uv --version

如果尚未安装,请按照以下步骤操作:

  • Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  • macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
  • 使用 pip 的替代方案:
pip install uv

注意:如果uv找不到命令,请关闭当前终端窗口并打开一个新的终端窗口。

将 MCP 服务器添加到 Kiro

浏览Strands Agents MCP 服务器 查看“安装 - Kiro 示例”部分中的 MCP 配置。

在 Kiro IDE 中,点击活动栏(左侧边栏)中的 Kiro Ghost 图标。在MCP 服务器部分,点击编辑按钮或任意工具名称,即可在聊天窗口中插入占位符提示。在本工作坊中,我们将添加 Strands Agents MCP 服务器,以便提供对完整 Strands Agents 文档的精选访问:

{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"],
      "env": {},
      "disabled": true,
      "autoApprove": []
    },
    "strands-agents": {
      "command": "uvx",
      "args": ["strands-agents-mcp-server"],
      "env": {
        "FASTMCP_LOG_LEVEL": "INFO"
      },
      "disabled": false,
      "autoApprove": [
        "search_docs",
        "fetch_doc"
      ]
    }
  }
}

保存文件。您应该在“MCP 服务器”mcp.json部分看到 MCP 服务器状态显示为“已连接”(✅)。

注意:如果 Kiro 无法连接 Strands Agents MCP 服务器,您可以发送提示“:”来请求 Kiro 进行故障排除Fail to connect strands-agents MCP server。

测试 MCP 服务器

在MCP 服务器部分,展开strands-agents,您会看到两个工具 -search_docs和fetch_doc。右键单击search_docs工具,然后选择测试工具。

提示信息Help me test the MCP tool search_docs from the strands-agents server会在 Kiro 的聊天面板中生成。运行提示信息即可测试该工具。展开每个“已调用 MCP”工具单元格,即可查看工具使用详情。

您还可以通过在 Kiro 的聊天面板中提出与 Strands Agents 相关的问题来测试 Strands Agents MCP 服务器。

例如:

How to create a simple agent with Strands Agents?

Kiro 拥有 Strands Agents 的相关知识,能够通过 MCP 服务器搜索和获取 Strands Agents 文档来解答您的问题。

MCP 示例
您可以在这里找到其他 MCP 示例供您参考:

AWS MCP 服务器 https://github.com/awslabs/mcp
GitHub MCP 服务器 https://github.com/github/github-mcp-server
Atlassian MCP 服务器 https://github.com/sooperset/mcp-atlassian

Option 2: Kiro Powers

概述
在本实验中,您将探索 Kiro Powers 作为 MCP 集成的替代方案。您将安装 Strands Agents SDK Power,测试其功能,并了解 Powers 如何提供动态的、关键字激活的对专业工具和知识的访问。

什么是Kiro Powers?
Kiro 的 Powers 功能让您的 AI 代理能够即时访问任何技术领域的专业知识。Powers 将您的工具、工作流程和最佳实践打包成 Kiro 可以按需激活的格式。当您提及相关关键词时,Kiro 会自动加载 Powers 的上下文和工具。

Kiro 不会一次性加载所有 MCP 工具,而是根据对话中的关键词动态激活各项功能。当您开始一项任务时,Kiro 会:

  1. 阅读任务描述
  2. 根据任务评估已安装功率
  3. 仅将相关权力加载到上下文中

是什么让权力变得不同

  1. 动态 MCP 工具加载——传统的 MCP 服务器会预先加载所有工具。而动态 MCP 工具加载方式则支持按需加载工具,从而减少基线上下文的使用。
  2. 开放的生态系统——浏览来自合作伙伴精心挑选的功能,包括 Datadog、Dynatrace、Figma、Neon、Netlify、Postman、Supabase、Stripe、Strands SDK 和 AWS Aurora。从 GitHub URL 安装社区构建的功能,或创建并分享您自己的功能。
  3. 一键安装- 直接在 Kiro 或 kiro.dev 上浏览电源。点击“安装”,电源即可自动注册。无需 JSON 配置文件,也无需命令行设置。

先决条件

在本实验室环境中,uv 对于运行 MCP 服务器至关重要。请确保您的环境中已安装 uv:

安装状态检查:

uv --version

如果尚未安装,请按照以下步骤操作:

Windows:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

使用 pip 的替代方案:

pip install uv

注意:如果uv找不到命令,请关闭当前终端窗口并打开一个新的终端窗口。

安装 Strands Agents SDK Power

在 Kiro IDE 中,点击活动栏(左侧边栏)中带有闪电图标的 Kiro Ghost,进入 Kiro 功能列表。选择“使用 Strands 构建代理” ,然后在功能页面点击“+ 安装” 。

您可以在 Kiro 全局目录中找到 Strands Agents SDK Power 安装包~/.kiro/powers/installed/strands,该安装包是从Kiro Power 存储库 - Strands Agents SDK Power中提取的。 权力是一个统一的整体,它包括:

  1. POWER.md- 该控制文件告诉代理程序它有哪些 MCP 工具可用以及何时使用这些工具。
  2. mcp.json- MCP 服务器的工具和连接详情
  3. 控制/钩子 - 根据 IDE 事件或斜杠命令(可选)运行的自动化任务

点击活动栏(左侧边栏)中的 Kiro Ghost 图标。在“MCP 服务器”部分,您应该看到“ Strands Agents SDK Power MCP服务器”状态显示为“已连接”,并带有 ✅标记。

注意:如果 Kiro 无法连接 Strands Agents SDK Power MCP 服务器,您可以发送提示“:”请求 Kiro 进行故障排除Fail to connect power-strands-strands-agents MCP server。

测试 Kiro Power

在MCP 服务器部分,展开strands-agents,您会看到两个工具 -search_docs和fetch_doc。右键单击search_docs工具,然后选择测试工具。

提示信息Learn and use the strands power会在 Kiro 的聊天面板中生成。运行提示信息即可测试该工具。展开每个“已调用 MCP”工具单元格,即可查看工具使用详情。您还可以点击聊天窗口顶部的“恢复”按钮并确认,以删除 Kiro Power 测试创建的所有文件。


您还可以通过在 Kiro 的聊天面板中提出与 Strands Agents 相关的问题来测试 Strands Agents SDK 的功能。

例如:

What are the steps to create a simple agent with Strands Agents?

Kiro 拥有 Strands Agents 的相关知识,能够通过 Strands Agents SDK Power MCP Server 搜索和获取 Strands Agents 文档来回答您的问题。

Kiro Powers 参考
您可以在这里找到其他与 Kiro Powers 相关的资料:

Kiro Powers Repository https://github.com/kirodotdev/powers
Kiro Powers 文档 https://kiro.dev/docs/powers/
Create Kiro Powers https://kiro.dev/docs/powers/create/

实验四:规范驱动开发

概述

在本实验中,您将学习如何使用 Kiro 的规范驱动开发功能,通过结构化、系统化的方法构建复杂的应用程序。与 Vibe Coding 的对话式风格不同,规范驱动开发遵循正式的软件开发生命周期,具有清晰的阶段划分和完善的文档。

你将构建的内容:

  • 将人工智能聊天机器人服务集成到您现有的电子商务网站中
  • 基于 Python 的后端,使用 Strands Agents SDK 和 Nova Pro LLM
  • 独立微服务,通过 API 集成到主后端
  • 基于库存数据的智能产品推荐
  • 具有操作功能的交互式聊天界面(添加到购物车、查看产品)

你将学到:

  • 如何使用规范来构建复杂的开发项目
  • 了解三阶段工作流程:需求 → 设计 → 实现
  • 使用 AI 代理框架和 LLM 集成
  • 构建可与现有应用程序集成的微服务
  • 测试和验证人工智能功能

本实验演示了规范驱动开发如何为复杂的功能开发提供结构和责任,确保在实施之前进行充分的规划,并在整个过程中保持清晰的进度跟踪。

什么是规范驱动开发?

规范(Specs)是结构化的文档,用于规范应用程序中复杂功能的开发过程。它们提供了一种系统化的方法,可以将高层次的想法转化为详细的实现计划,并具有清晰的跟踪和责任机制。

借助 Kiro 的规范驱动开发,您可以:

  • 使用 EARS 表示法将需求分解为用户故事,并给出验收标准。
  • 构建包含序列图和架构图的全面设计文档
  • 跟踪各个独立、可管理任务的实施进度
  • 在产品团队和工程团队之间进行有效协作
  • 在整个开发过程中维护文档

氛围与规格提示

何时享受氛围

  1. 互动问答形式:Vibe 会议针对代码相关的来回对话进行了优化,您可以提出问题并获得即时回复。
  2. 快速帮助:它们非常适合快速获得编码问题的答案、代码行为的解释,或者在不经过正式规范流程的情况下理解概念。
  3. 上下文理解:与其他 Kiro 会话一样,Vibe 会话利用上下文提供程序来理解您的代码库,但侧重于解释而不是大量的代码生成。
  4. 灵活的方法:与规范课程相比,Vibe 课程提供了一种更灵活、结构性更弱的方法,使其更适合探索性编程和学习。

何时需要规范

  1. 复杂开发任务:使用 Spec 会话来构建复杂的功能、整个应用程序或需要仔细计划和执行的重大重构。
  2. 结构化方法:当您需要有条不紊、循序渐进的开发方法,并需要清晰地记录需求和实现细节时。
  3. 团队协作:适用于多个团队成员需要了解实施计划并根据规范跟踪进度的项目。
  4. 文档需求:当您希望在代码实现的同时生成详细的文档,以便将来参考或知识共享时。
  5. 让我们使用规范驱动开发来构建聊天机器人

在 Kiro 的聊天面板中,打开一个新的会话。选择“Spec”,然后发送以下提示:

Build a shopping assistant chatbot service based on Strands Agents SDK, with Bedrock Nova Pro as the underlying LLM.
Use the environment variable to specify AWS credential for Nova Pro access, including access key, secret key, and optional session token. 

Build the chatbot service with Python based Strands Agents SDK and Bedrock Nova Pro as the underlying LLM, as well as a HTTP server for API request from frontend popup chatbot. 
Use environment variable to specify AWS credential for Bedrock Nova Pro access, including access key, secret key, and optional session token. Another option is to use Bedrock API key with environment variable AWS_BEARER_TOKEN_BEDROCK.
The chatbot service should be an independent service to backend, but with API integration to interact with backend functions. 
基于 Strands Agents SDK 构建一个购物助手聊天机器人服务,底层 LLM 为 Bedrock Nova Pro。

使用环境变量指定 Nova Pro 的 AWS 凭证,包括访问密钥、私钥和可选的会话令牌。

使用基于 Python 的 Strands Agents SDK 和 Bedrock Nova Pro 作为底层 LLM 构建聊天机器人服务,并配备一个 HTTP 服务器,用于接收来自前端弹出式聊天机器人的 API 请求。

使用环境变量指定 Bedrock Nova Pro 的 AWS 凭证,包括访问密钥、私钥和可选的会话令牌。另一种方法是使用 Bedrock API 密钥,并设置环境变量 AWS_BEARER_TOKEN_BEDROCK。

聊天机器人服务应独立于后端,但需要通过 API 集成与后端功能进行交互。

Kiro 会生成三个关键文件,遵循需求→设计→实现的三阶段工作流程,从而构成每个规范的基础:

  1. requirements.md- 以结构化的 EARS 表示法记录用户故事和验收标准

  2. design.md- 文档包括技术架构、序列图和实现注意事项

  3. tasks.md- 提供包含具体、可跟踪任务的详细实施计划

  4. 要求

模拟软件开发生命周期规划阶段——开发团队从客户、内部和外部专家以及经理等多个利益相关者那里收集需求,以创建软件需求规范文档。

审阅需求规格说明,并根据需要进行修改。然后单击“进入设计阶段”。

  1. 设计

模拟软件开发生命周期(SDLC)的设计阶段——软件工程师分析需求并确定创建软件的最佳解决方案。例如,他们可能会考虑集成现有模块、选择技术方案并确定开发工具。

审阅设计规范,并根据需要进行修改(例如,Nova Pro 与 Nova Premier 的区别)。然后单击“移至实施计划”。

  1. 实施

模拟软件开发生命周期(SDLC)的实施阶段——在实施阶段,开发团队编写产品代码。他们分析需求,确定可以每天完成的较小编码任务,以实现最终结果。

审阅设计规范并根据需要进行修改。生成任务规范时,一些任务会被标记为可选(例如单元测试、文档),以便优先开发核心功能。您可以保留可选任务,也可以将所有任务都设为必需。

在本研讨会中,为了提高效率,选择保留可选任务(更快的 MVP)。

任务执行
在任务管理器中task.md,点击每个任务上方的“⚡开始任务”按钮,逐个执行任务,进行必要的代码更改并运行命令。或者,您也可以一次性执行所有任务。 请在tasks.md文件中向 Kiro 发送以下提示:

Execute all tasks in the spec

注意:我们不建议一次性执行所有任务,建议分任务执行以获得更好的结果。

完成所有任务大约需要 20-30 分钟。任务运行完成后,请在聊天机器人服务文件夹下的.env文件中更新 AWS 凭证。如果.env文件不存在,请复制.env.example文件并将其重命名为.env文件,以便python-dotenv库可以管理环境变量。

如果活动由 AWS 主办,请转到Workshop Studio 活动主页。 并使用“获取 AWS CLI 凭证”命令获取AWS 凭证。这将打开一个弹出窗口,其中包含您的临时 AWS 凭证,您可以复制该凭证AWS_ACCESS_KEY_ID并将AWS_SECRET_ACCESS_KEY其AWS_SESSION_TOKEN值保存到.env文件中。保留AWS_REGION或保存AWS_DEFAULT_REGION到us-east-1 区域。⚠️ 临时 AWS 凭证将在 1 小时后过期。过期后,您需要重新获取凭证并更新文件中的值.env。

例如:

AWS_ACCESS_KEY_ID=xxxxxxx
AWS_SECRET_ACCESS_KEY=yyyyyyy
AWS_SESSION_TOKEN=zzzzzzzzzzzzzzzzzzzzz
AWS_REGION=us-east-1

发送以下提示信息即可启动带有 AI 代理聊天机器人的电子商务网站:

Start the chatbot service, backend and frontend if not running.

电商网站应该会自动通过浏览器打开。如果未自动打开,请手动打开任意浏览器http://localhost:3000或其他 React 前端端口。您将看到类似这样的电商网站访问界面:

测试聊天机器人

电子商务网站运行后,请使用以下问题测试聊天机器人:

  1. Hello
  2. What products do you have?
  3. Add <product_name> to cart
  4. Show me the cart
  5. Clear my cart
  6. What do you suggest to buy for hiking?
  7. Add all suggested items to cart

如果问题仍然存在,请按提示描述问题并发送给 Kiro 进行调试。以下是一些常见问题,供您参考。

⚠️ 常见问题排查

聊天机器人图标未显示

如果聊天机器人图标未显示在前端,请向 Kiro 发送以下提示:

Chatbot icon doesn't appear in frontend.

聊天机器人无响应/显示虚拟响应

如果您在使用功能时遇到问题,例如聊天机器人没有响应,请将以下提示发送给 Kiro:

Chatbot has no response or provide dummy response after I ask question in the frontend.

聊天机器人操作错误

如果您在使用聊天机器人时遇到问题,例如回复错误的商品列表或购物车无响应,请将此提示发送给 Kiro:


Chatbot list the products out of the inventory in this e-commerce website.

Chatbot doesn't add the product to shopping cart from my request.

Chatbot doesn't remove items from the cart from my request.

购物车页面未更新

如果您遇到前端渲染问题,例如聊天机器人将商品添加到购物车后购物车页面没有重新渲染(尝试刷新浏览器查看是否出现渲染问题),请将此提示发送给 Kiro:

Shopping cart page doesn't update automatically after chatbot helps to add a product in cart.

应用程序无法启动

如果应用程序启动失败,请尝试:

The application is not starting properly.

实验4结束
应用程序测试完毕后,请发送以下提示信息以停止电子商务网站:

Stop the application

实验五:Hooks钩子

概述
在本实验中,您将学习如何创建和使用 Kiro Agent Hooks,以根据 IDE 事件自动执行任务。您将创建一个文档同步钩子,以便在文件更改时自动更新项目文档,并探索自动和手动触发选项。

创造一个钩子
点击活动栏(左侧边栏)中的 Kiro Ghost 图标。在“代理钩子”部分,点击“+”按钮创建新钩子。在“创建代理钩子”页面,点击底部的“更新我的文档”以生成钩子的描述。按 Enter 键或点击“提交”继续。

您会看到文档同步钩子已创建。请检查钩子设置,包括描述、事件和要监视的文件路径。

代理钩子系统遵循一个简单的两步流程:

  1. 事件检测:系统会监控 IDE 中的特定事件。
  2. 自动操作:当事件发生时,将执行保存文件或执行预定义的代理提示的操作。

Agent Hook 也支持手动触发。展开事件列表并选择“手动触发”。

然后您会在“代理钩子”列表中看到“文档同步钩子”旁边有一个播放按钮。点击该播放按钮即可触发钩子,根据实验 4 中的更改更新文档。

在 Kiro 聊天面板中,您将看到钩子过程和正在更新的文档,包括,以及在 Lab 2 中生成的README.md转向文件 - product.md。查看这些文件以了解文档中的更改。tech.mdstructure.md

上传自定义钩子文件
您也可以直接上传 hook 文件.kiro/hooks。下载以下两个示例 hook 文件:

security-scan-on-dependency-change.kiro.hook https://github.com/awsdataarchitect/kiro-best-practices/blob/main/.kiro/hooks/security-scan-on-dependency-change.kiro.hook

translation-update.kiro.hook https://github.com/awsdataarchitect/kiro-best-practices/blob/main/.kiro/hooks/translation-update.kiro.hook

然后将文件复制到.kiro/hooks.

钩子示例

您可以在这里找到更多钩子示例供您参考:

钩子示例 https://kiro.dev/docs/hooks/examples/

Kiro最佳实践 - 钩子 https://github.com/awsdataarchitect/kiro-best-practices/tree/main/.kiro/hooks

总结

已成功完成使用 Kiro 构建带有 AI 代理聊天机器人的电子商务网站的综合研讨会。通过这次实践体验,探索了 AI 驱动的开发功能的全部范围,这些功能正在改变现代应用程序的构建方式。

🏗️构建了一个完整的电子商务应用程序

  • 使用 React 前端、Node.js 后端和 SQL 数据库创建了一个三层 Web 应用程序。
  • 实现了核心电子商务功能,包括产品浏览、购物车管理和用户工作流程。
  • 集成了由 Strands Agents SDK 和 Amazon Bedrock Nova Pro 提供支持的智能 AI 聊天机器人
  • 开发了具有独立聊天机器人服务和 API 集成的微服务架构

🚀 精通人工智能驱动的开发工作流程

  • Vibe Coding:通过自然语言提示进行快速原型设计,可在数分钟内生成完整的全栈应用程序。
  • 指导:制定项目特定的指导方针和编码标准,以确保人工智能生成的代码一致且高质量。
  • 模型上下文协议 (MCP):通过直接服务器配置集成外部文档和专用工具,扩展了 Kiro 的功能。
  • Kiro Powers:探索了动态的、关键字激活的工具加载方式,可通过一键安装按需访问专业功能。
  • 规范驱动开发:遵循结构化的开发工作流程,包括正式的需求分析、设计和实现阶段。
  • 代理钩子:通过创建事件驱动型工作流来自动化开发任务,这些工作流可以响应 IDE 事件,例如文件保存。

人类创造力与人工智能能力的结合,为更快构建复杂应用程序开辟了新的可能性,同时还能保证质量并遵循最佳实践。现在,您可以充分利用这些工具来加速开发工作流程,并自信地应对更具挑战性的项目。

使用 Kiro 编程,快乐无比!🚀

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐