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

说一个真事。

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

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

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

后来有人推荐了 Kiro。

Kiro 凭什么不一样

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

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

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

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

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

arduino 复制代码
你写一个 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 是这么写的

markdown 复制代码
## 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 编码和错误处理):

bash 复制代码
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 $0 50
Pro $20 1,000
Pro+ $40 2,000
Power $200 10,000

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

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

适合什么场景

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

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

bash 复制代码
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...

相关推荐
筱顾大牛2 小时前
点评项目---分布式锁
java·redis·分布式·缓存·idea
想不明白的过度思考者2 小时前
【MyBatis 知识点解析】#{} 与 ${} 的区别及 SQL 注入实战演示
java·数据库·spring boot·sql·mybatis
丶小鱼丶2 小时前
数据结构和算法之【数组】
java·数据结构·算法
惊讶的猫2 小时前
maven介绍_1
java·maven
小钻风33662 小时前
Java函数式编程-lambda表达式
java·开发语言·python
Han.miracle2 小时前
Spring IoC 与 DI 思想及实践详解
java
Irissgwe2 小时前
基础I/O
java·linux·前端
木易 士心2 小时前
Java中 synchronized 和 volatile 详解
java·开发语言·jvm
小码狐2 小时前
Spring相关知识【知识整理】
java·后端·spring