Kiro IDE 实战体验:亚马逊云科技的 Spec 驱动 AI 编程,写完需求自动出代码

上周在折腾一个内部工具的时候,同事甩过来一个链接:「试试 Kiro,写个 spec 就行了,后面的事它自己干。」

说实话我当时的反应是------又一个 AI 编程助手?凭什么再装一个?

但用了两天之后,我改主意了。

先说结论

Kiro 跟其他 AI IDE 的核心区别不在于「生成代码」这件事本身,而在于它要求你先把需求想清楚

听起来像废话对吧?但实际操作中你会发现,纯 chat 模式的 AI 编程------「随便写个 prompt 然后让 AI 猜」------遇到稍微复杂的项目就开始跑偏。你花 30 秒写的 prompt,AI 花 10 分钟生成代码,你再花 30 分钟改------来回几轮,效率还不如自己写。

Kiro 的思路是:你先写一个 spec(规格说明),它帮你把 spec 拆成 requirements → design → tasks,然后按 task 一个个实现。

这个流程强迫你在写代码之前把需求理清楚,听起来很烦,但实际体验下来反而更快。

Kiro 是什么

Kiro 是亚马逊云科技出品的 AI IDE,基于 VS Code 架构(用过 VS Code 的无缝切换),底层模型用的是 Claude。它有几个比较独特的东西:

Spec 驱动开发

这是 Kiro 的核心卖点。你在项目里创建一个 .kiro/specs/ 目录,写一段自然语言描述你要做什么,Kiro 会自动生成三层文档:

  1. Requirements(需求):把你的描述拆成具体的功能点,每个都有验收标准
  2. Design(设计):技术方案,包括数据结构、API 设计、依赖关系
  3. Tasks(任务):一个个可执行的代码任务,按顺序排好

然后你点一下,它就按 task 列表逐个实现。每个 task 完成后你可以 review,不满意就改 spec 重来。

跟纯 chat 模式比,这个流程最大的好处是可追溯。三个月后你看到一段代码,能仞 tasks → design → requirements 一路追回去,知道当初为什么这么写。

Hooks(自动触发器)

这个功能我觉得比 spec 还实用。你可以设置一些规则,比如:

  • 每次保存 .ts 文件自动跑类型检查
  • 每次修改 API 路由自动更新文档
  • 每次提交代码自动生成单元测试

它本质上是个「事件 → 动作」的自动化管道,但因为跑的是 AI agent,所以能做的事比传统的 git hooks 灵活得多。

比如我设了一个 hook:每次改了数据库 schema,自动更新对应的 TypeScript 类型定义和 API 文档。以前这种事要手动改三个地方,现在改一处自动同步。

Powers(能力插件)

类似 VS Code 的扩展市场,但面向 AI agent。官方和第三方提供了一堆预制能力包,比如:

  • Figma 设计稿转代码
  • Postman API 测试自动化
  • Netlify 一键部署
  • Amazon Bedrock 集成(可以在 Kiro 里直接调 Bedrock 的模型)
  • Stripe 支付集成

装一个 power,AI 就获得了对应的上下文和工具,不用你自己写 prompt 教它怎么用 Stripe API。

Autonomous Agent(自主代理)

这个是 Pro 以上才有的功能。你可以给 Kiro 一个任务,它在后台独立沙盒里干活,完了直接给你提 PR。

适合那种「改 50 个文件把日志格式统一」之类的苦力活。你安排完任务去喝杯咖啡,回来 review PR 就行。

CLI

终端党的福音。curl -fsSL https://cli.kiro.dev/install | bash 装完就能用,所有 IDE 里的功能在终端里也有。

我个人用 CLI 比较多,因为很多时候我在 SSH 到服务器上干活,开不了 GUI。

实际体验:用 Kiro 写一个 OpenClaw Skill

为了给你看看 Kiro 的完整流程,我拿一个实际需求演示:给 OpenClaw 写一个天气查询 Skill。

第 1 步:写 Spec

在项目目录下创建 .kiro/specs/weather-skill.md

markdown 复制代码
## Weather Skill for OpenClaw

我要给 OpenClaw 写一个天气查询 Skill。

功能:
- 用户说"北京天气"之类的话,自动查询当前天气
- 支持中国城市名(中文)和国际城市名(英文)
- 返回温度、湿度、体感温度、风速
- 数据源用 Open-Meteo(免费,不需要 API Key)

技术要求:
- SKILL.md 声明文件
- 主脚本用 Bash(OpenClaw 原生支持)
- 用 curl + jq 解析 JSON
- 城市名转坐标用 Open-Meteo 的 Geocoding API

写完保存,Kiro 几秒钟内就生成了 requirements 文件。

第 2 步:Review Requirements

Kiro 生成的 requirements 大概长这样(节选):

markdown 复制代码
### REQ-1: City Name Geocoding
- 接收中文/英文城市名
- 调用 Open-Meteo Geocoding API 获取经纬度
- 处理多个匹配结果(取第一个)
- 验收标准:输入"北京" → 返回 (39.9042, 116.4074)

### REQ-2: Weather Data Retrieval
- 使用经纬度调用 Open-Meteo Forecast API
- 获取 current_weather 字段
- 解析温度、湿度、风速、体感温度
- 验收标准:返回的 JSON 包含所有字段且值合理

### REQ-3: Output Formatting
- 中文城市名输出中文格式
- 包含天气图标(emoji)
- 格式化为人类可读文本
- 验收标准:输出类似"北京 🌤️ 22°C / 体感 20°C / 湿度 45% / 北风 12km/h"

看到没?它自动给每个需求加了验收标准。纯 chat 模式的 AI 编程工具通常不会做这一步------直接开写代码,写出来什么样看运气。

第 3 步:走完 Design 和 Tasks

Design 阶段它会画出文件结构、函数签名、数据流。Tasks 阶段拆成了 5 个可执行步骤:

  1. 创建 SKILL.md 声明文件
  2. 写 geocoding 函数
  3. 写 weather fetch 函数
  4. 写 output formatter
  5. 写集成入口 scripts/weather.sh

每个 task 点击执行,代码自动生成,生成完你可以看 diff。

第 4 步:看看生成的代码

geocoding 部分(节选):

bash 复制代码
#!/bin/bash
# weather.sh - OpenClaw Weather Skill

get_coordinates() {
    local city="$1"
    local encoded_city
    encoded_city=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$city'))")
    
    local response
    response=$(curl -s "https://geocoding-api.open-meteo.com/v1/search?name=${encoded_city}&count=1&language=zh")
    
    local lat lon name
    lat=$(echo "$response" | jq -r '.results[0].latitude // empty')
    lon=$(echo "$response" | jq -r '.results[0].longitude // empty')
    name=$(echo "$response" | jq -r '.results[0].name // empty')
    
    if [[ -z "$lat" || -z "$lon" ]]; then
        echo "找不到城市: $city"
        return 1
    fi
    
    echo "${lat}|${lon}|${name}"
}

代码质量不错,错误处理、URL 编码这些细节都考虑到了。

第 5 步:Hooks 自动跑测试

我提前设了一个 hook:每次 .sh 文件修改,自动用 shellcheck 跑一遍静态检查。Kiro 改完代码自动触发,发现了一个引号问题,自己修了。

整个过程大概 15 分钟,包括 review 时间。

Kiro 的核心优势

总结一下 Kiro 跟传统 chat 式 AI 编程的区别:

  • 开发方式:Spec → Requirements → Design → Tasks → Code,不是一句 prompt 直接出代码
  • 可追溯性:有完整的 spec → code 映射,三个月后还能追回设计意图
  • 后台任务:Autonomous Agent 在沙盒里独立工作,完成后提 PR
  • 扩展机制:Powers(AI 能力包),装一个就获得一个领域的完整上下文
  • 自动化:Hooks(事件驱动),保存文件自动跑检查、同步文档
  • CLI 支持:终端里也能用,SSH 到服务器照样跑

Kiro + Bedrock:为什么这个组合有意思

Kiro 本身内置了 Claude 模型,但它的 Powers 市场里有好几个 Bedrock 相关的能力包:

  • Build full-stack apps with AWS Amplify:用 Amplify Gen 2 构建全栈应用
  • Build applications with Aurora DSQL:serverless PostgreSQL 数据库应用
  • Observability:CloudWatch + CloudTrail 完整监控
  • IAM Policy Autopilot:分析代码自动生成 IAM 策略
  • Build an agent with Strands:用 Strands SDK 构建 AI Agent

特别是 IAM Policy Autopilot 这个------它分析你的应用代码,自动生成最小权限的 IAM 策略。以前手动写 IAM 策略要翻半天文档,现在装个 power 就搞定了。

如果你的项目本身就跑在亚马逊云科技上,Kiro 基本上是开箱即用的全家桶体验。Bedrock 的模型、Amplify 的全栈框架、Aurora 的数据库、CloudWatch 的监控------全部有对应的 Powers,不需要自己写 prompt 教 AI 怎么用。

几个槽点

说完优点也得说说问题:

  1. Spec 流程有门槛。如果你习惯了 chat 式的 AI 编程,Kiro 的 spec 流程会觉得繁琐。当然这其实是好事------强迫你想清楚再动手------但心理上需要适应。

  2. Powers 生态还不够大。跟 VS Code 的扩展市场比,Kiro 的 Powers 数量还很少。不过已有的质量不错,都是亚马逊云科技、Figma、Stripe 这些大厂官方出品。

  3. 国内网络可能有问题。Kiro 的服务器在海外,如果你在国内用可能需要配代理。CSDN 上看到有人在 WSL 里装 Kiro 做开发,绕过了一些网络限制。

  4. Autonomous Agent 目前还是 Preview。自主代理功能还在灰度中,Pro、Pro+、Power 用户优先,团队版需要排队。

怎么开始

  1. kiro.dev/downloads 下载 IDE,或者终端装 CLI:

    bash 复制代码
    curl -fsSL https://cli.kiro.dev/install | bash
  2. 用 AWS Builder ID 登录(免费注册就行)

  3. Free 套餐每月 50 credits,够体验核心功能。新注册送 500 bonus credits,30 天有效

  4. 在项目里试试 spec 流程:Cmd+Shift+P → Kiro: Create Spec

套餐对比:

套餐 月费 Credits 适合
Free $0 50 体验
Pro $20 1,000 个人开发者
Pro+ $40 2,000 重度用户
Power $200 10,000 团队 / 企业

总结

Kiro 不是又一个 AI 编程助手的翻版。它的 spec 驱动开发是一种不同的思路------不是让 AI 猜你要什么,而是让你先想清楚要什么,然后 AI 精确执行。

如果你做的是需要长期维护的正经项目,建议试试。


🔗 相关链接:

相关推荐
用户600071819104 小时前
【翻译】构建 Claude Code 的经验:我们如何使用 Skills
人工智能
没事别瞎琢磨4 小时前
五、进程执行——spawn、超时与进程树清理
人工智能·node.js
没事别瞎琢磨4 小时前
四、命令风险分级与审批策略
人工智能·node.js
阿乔外贸日记4 小时前
埃塞俄比亚出口全流程注意事项
大数据·人工智能·智能手机·云计算·汽车
程序员cxuan4 小时前
Agents.md 是什么
人工智能·后端·程序员
人工小情绪4 小时前
Windows 安装 Codex 桌面版,并用 CC Switch 管理配置
人工智能·windows·codex·cc switch
godspeed_lucip4 小时前
LLM和Agent——专题6:Multi Agent 入门(5)
人工智能·python
网安情报局4 小时前
告别排队与高延迟:直连GPT全系列,解锁低门槛、高稳定的AI生产力
人工智能·gpt·api·ai大模型
Hali_Botebie4 小时前
非共轭先验(Non-conjugate Prior)和共轭先验(Conjugate Prior)
人工智能·机器学习
没事别瞎琢磨4 小时前
三、配置系统——默认值与解析
人工智能·node.js