写 Prompt 让 AI 出代码?Kiro 说你该先写 Spec

15 阅读3分钟

说一个真事。

上个月我接了个内部工具的需求。不复杂,一个电商后台的库存管理模块。我用 AI 编程助手的 chat 模式写,prompt 一条一条发,代码一段一段出。

两周后回头看代码库——重复逻辑不少、变量命名不统一、同一个功能好几种实现方式。代码能跑,但维护起来头疼。

不是 AI 的问题。是我的问题——或者说,是「想到哪写到哪」这种开发方式的问题。

后来有人推荐了 Kiro。

Kiro 凭什么不一样

Kiro 是亚马逊云科技做的 AI IDE。第一眼看跟 VS Code 长得一样(事实上就是基于 VS Code 的)。但用起来完全不是一个思路。

核心区别在一个东西:Spec。

传统 chat 模式下,你跟 AI 的交互是:

你:帮我写一个用户注册接口
AI:好的,这是代码... (200行)
你:不对,要加邮箱验证
AI:好的,改了... (又200行)
你:密码加密呢?
AI:补上了... (再200行)

在 Kiro 里,你跟 AI 的交互是:

你写一个 spec:
"用户注册接口。需要邮箱验证、密码 bcrypt 加密、
 返回 JWT token、失败重试3次、写入 DynamoDB。"

Kiro 自动拆解成:
→ Requirements(需求清单 + 验收标准)
→ Design(API 设计 + 数据结构 + 错误处理)
→ Tasks(5 个实现步骤,按顺序执行)

你 review 完,点一下,逐步实现。

区别在哪?

chat 模式:你想一点,AI 做一点,你再想一点,AI 再改一点。最终代码是「补丁套补丁」。

Kiro spec 模式:你先想完整,AI 做完整。最终代码有清晰的设计意图。

三个月后回头看代码,chat 项目你得靠 git blame + 聊天记录才能理解当初为什么这么写。Kiro 项目直接看 spec 就行。

实测:写一个 OpenClaw 天气 Skill

说这么多不如上代码。我用 Kiro 给 OpenClaw(开源 AI 助手框架,最近掘金上很火的那个)写一个天气查询 Skill。

Spec 是这么写的

## Weather Skill for OpenClaw

给 OpenClaw 写天气查询功能。
- 支持中文城市名(北京/上海)和英文(Tokyo/Paris)
- 数据源 Open-Meteo,不需要 API Key
- 返回温度、湿度、体感温度、风速
- 用 Bash + curl + jq 实现

30 秒写完。Kiro 花了大概 5 秒钟,生成了:

Requirements(7 条):每条都有明确的验收标准。比如「输入'北京' → 返回坐标 (39.9, 116.4) ± 0.1°」。

Design:画出了 geocoding → fetch → format 的数据流,定义了每个函数的输入输出。

Tasks(5 个):按依赖关系排好序。

看看生成的代码

geocoding 函数(它考虑了 URL 编码和错误处理):

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

整个 Skill 15 分钟搞定。中间没有一次返工。

Hooks:比 Spec 更实用的功能

Spec 是 Kiro 的招牌,但我个人觉得 Hooks 才是日常最香的功能。

Hooks 就是「事件 → 自动动作」。举几个例子:

事件自动动作
保存 .ts 文件自动跑 TypeScript 类型检查
修改 DB schema自动更新 TypeScript 类型定义
修改 API 路由自动更新 API 文档
git commit自动生成单元测试

这些事以前要么手动做,要么写 CI 跑。现在 Kiro 在你保存文件的时候就自动干了。

跟传统 git hooks 的区别是:Kiro 的 hooks 跑的是 AI agent,所以它能理解代码语义,不是简单的文本替换。

Powers:AI 的「能力插件」

类似扩展市场,但不是给 IDE 加功能,是给 AI 加能力。

装了一个 Power,AI 就知道怎么用对应的服务。目前有几个值得关注的:

  • Figma Design to Code:Figma 设计稿直接转前端代码
  • IAM Policy Autopilot:分析你的代码,自动生成最小权限 IAM 策略(这个真省事)
  • Strands Agent SDK:用亚马逊云科技的 Strands 框架构建 AI Agent
  • Terraform:基础设施即代码,AI 帮你写 HCL
  • CDK + CloudFormation:AI 帮你写 CDK 和 CloudFormation 模板

特别提一下 IAM Policy Autopilot——以前手写 IAM 策略是真的痛苦,文档几百页,action 几千个。现在这个 Power 分析你的代码调用了哪些云服务,自动生成对应的策略,最小权限原则,写完就能用。

价格

套餐月费Credits
Free$050
Pro$201,000
Pro+$402,000
Power$20010,000

新注册送 500 bonus credits(30 天有效)。

Free 够体验,日常开发建议 Pro。超出 credits 按 $0.04/credit 计费。

适合什么场景

  • 正经项目、团队协作、需要长期维护 → Kiro 的 spec 模式
  • 需要跟亚马逊云科技服务深度集成 → Kiro(Powers 全家桶)
  • 快速原型、探索性开发 → chat 模式就够了

Kiro CLI 在终端里也能用,SSH 到服务器上也能跑:

curl -fsSL https://cli.kiro.dev/install | bash

几个坑

  1. 国内网络。Kiro 服务器在海外,可能需要代理。WSL + 代理是一个解法
  2. Spec 需要适应。如果你习惯了 chat 式开发,第一次用 spec 模式会觉得「太重了」。但坚持两三天就会真香
  3. Autonomous Agent 还在 Preview。自主代理功能没有完全开放,需要 Pro 以上套餐
  4. Powers 还不够多。但质量不错,都是大厂官方出的

🔗 Kiro 官网:aws.amazon.com/cn/campaign… 🔗 下载 IDE:aws.amazon.com/cn/campaign… 🔗 CLI 安装:curl -fsSL https://cli.kiro.dev/install | bash 🔗 Powers 市场:aws.amazon.com/cn/campaign…