写 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...

相关推荐
程序员晨曦5 分钟前
Java 并发修仙传:ThreadLocal 从“闭关修炼”到“走火入魔”的救赎之路
java·开发语言
AIGS0017 分钟前
探索向量空间JBoltAI:工业企业数智化升级的基础设施
java·人工智能·人工智能ai大模型应用
zhangjw3429 分钟前
第18篇:Java网络编程零基础详解,IP、端口、TCP、UDP、Socket通信、实战文件传输
java·网络·tcp/ip
我命由我1234531 分钟前
Java 开发 - Jar 包与 War 包
java·开发语言·java-ee·intellij-idea·jar·idea·intellij idea
Upsy-Daisy35 分钟前
Hermes Agent 学习笔记 04:工具调用系统,让 Agent 从“会说”变成“会做”
java·笔记·学习
Volunteer Technology36 分钟前
SpringSecurity请求流转的本质
java·spring
心之伊始42 分钟前
Spring AI MCP Client 实战:让 Java 后端通过 stdio 调用本地工具服务
java·spring boot·agent·spring ai·mcp
plainGeekDev44 分钟前
文件读写(Java IO)→ Kotlin 扩展函数
android·java·kotlin
Full Stack Developme1 小时前
AspectJ 详解
java·后端
武子康1 小时前
Java-20 深入浅出 MyBatis - 手写ORM框架1 从原始 JDBC 暴露的 6 大问题开始
java·后端