Kiro AI IDE 深度使用指南:从入门到高效开发
本文系统梳理了 Kiro 的核心功能与最佳实践,帮助开发者快速上手并充分发挥 AI 编程助手的潜力。无论你是刚接触 Kiro,还是想进一步提升使用效率,都能从中找到实用的技巧。
一、Kiro vs Cursor vs Claude Code:三款 AI 编程工具横评
在选择 AI 编程工具之前,先搞清楚它们各自的定位和差异。
1.1 基本定位
| 对比项 | Kiro | Cursor | Claude Code |
|---|---|---|---|
| 产品形态 | 独立 IDE + VS Code/JetBrains 插件 + CLI | 基于 VS Code 的独立 IDE | 纯命令行工具 |
| 底层模型 | Claude(Anthropic 官方深度集成) | 多模型(Claude / GPT / 自定义) | Claude(Anthropic 官方) |
| 核心理念 | Spec 驱动的结构化开发 | 快速代码生成与编辑 | 终端中的 AI 编程助手 |
| 付费方式 | Credit 制 | Token / 订阅制 | Token 消耗制 |
1.2 核心功能对比
| 功能 | Kiro | Cursor | Claude Code |
|---|---|---|---|
| Spec 模式(需求→设计→任务→实现) | ✅ 原生支持 | ❌ | ❌ |
| Steering(团队规范约束) | ✅ 多模式(始终/条件/手动) | ⚠️ 有 Rules,但较简单 | ⚠️ 有 CLAUDE.md,功能有限 |
| Hooks(自动化触发器) | ✅ 丰富的事件类型 | ❌ | ❌ |
| Powers(按需技能包) | ✅ 语义检索,按需加载 | ❌ | ❌ |
| MCP 支持 | ✅ | ✅ | ✅ |
| Checkpoint(代码回滚) | ✅ 精确到每一步 | ✅ | ❌ |
| CLI 工具 | ✅ 支持并行多任务 | ❌ | ✅ 这是它的主要形态 |
| 代码补全 | ✅ | ✅ | ❌ |
| 多模型切换 | ⚠️ Claude 系列内切换 | ✅ 支持多家模型 | ❌ 仅 Claude |
| 图片/设计稿理解 | ✅ 支持 Figma MCP | ✅ | ⚠️ 有限支持 |
1.3 Kiro 的核心优势
1. Spec 模式——真正的「需求驱动开发」
这是 Kiro 与其他工具拉开差距最大的地方。Cursor 和 Claude Code 本质上都是「你说一句,AI 做一步」的对话模式。而 Kiro 的 Spec 模式将开发流程结构化为 需求分析 → 技术设计 → 任务拆解 → 逐步实现,每一步都可以人工审核。这意味着:
- 复杂功能不再是一句 prompt 赌运气
- 设计决策有据可查,可追溯
- 团队协作时,Spec 文档本身就是沟通载体
2. Hooks——开发流程自动化
Cursor 和 Claude Code 都没有类似机制。Kiro 的 Hooks 可以在文件保存、创建、删除、工具调用前后等多种事件上自动触发任务,比如:
- 保存代码时自动跑 lint
- 新建文件时自动补充注释
- 提交前自动安全扫描
这让 AI 从「被动响应」变成了「主动协作」。
3. Powers——上下文的智能管理
MCP 的问题是全量加载,所有注册的工具在每次会话中都会占用上下文。Kiro 的 Powers 通过语义检索按需加载,只在 AI 判断需要时才调用对应的技能包。这在大型项目中优势明显——上下文更精准,Token 消耗更低。
4. Steering——更精细的规范控制
Cursor 的 Rules 和 Claude Code 的 CLAUDE.md 都只支持全局加载。Kiro 的 Steering 支持三种模式:
- 始终加载(团队通用规范)
- 条件加载(匹配特定文件类型时才生效)
- 手动加载(按需引用)
还支持通过 #[[file:xxx]] 引用外部文档,灵活度高出一个量级。
5. 同等任务,Token 消耗更低
实测对比,完成同样的开发任务,Kiro 消耗的 Credit 低于 Cursor 消耗的 Token。同样 20 美金的预算,Kiro 能做更多事。
6. 国内网络友好
Kiro 在国内可以直接使用,无需翻墙,不存在封号风险。Cursor 和 Claude Code 在国内使用都需要特殊网络环境,且有被封号的风险。
1.4 什么时候选哪个?
| 场景 | 推荐工具 |
|---|---|
| 企业级项目,需要规范化开发流程 | Kiro(Spec + Steering + Hooks) |
| 快速原型,追求极致的代码生成速度 | Cursor(多模型 + 快速编辑) |
| 运维/DevOps,习惯命令行工作 | Claude Code 或 Kiro CLI |
| 团队协作,需要统一开发规范 | Kiro(Steering + Powers) |
| 想用非 Claude 模型(如 GPT-4) | Cursor(多模型支持) |
| 国内网络环境 | Kiro(无需翻墙) |
💡 一句话总结:Cursor 像一个反应快的结对编程伙伴,Claude Code 像一个住在终端里的高级助手,而 Kiro 更像一个懂流程、守规范、会自动化的 AI 技术经理。
二、Steering:给 AI 立规矩
Steering 是 Kiro 的「行为准则」机制,通过 .kiro/steering/*.md 文件来约束和引导 AI 的行为。可以理解为:你给 AI 写的团队开发规范。
2.1 为什么需要 Steering?
AI 不怕规则多,就怕规则模糊。一个好的示例胜过 1000 字的描述。
没有 Steering 的 AI 就像一个能力很强但不了解你们团队规范的新人——代码能写,但风格、架构、命名可能完全不符合预期。
2.2 Steering 的三种加载模式
| 模式 | 配置方式 | 适用场景 |
|---|---|---|
| 始终加载 | 默认行为,无需额外配置 | 团队通用规范、代码风格要求 |
| 条件加载 | front-matter 中设置 inclusion: fileMatch + fileMatchPattern | 特定文件类型的规范,如 *.vue 文件的组件规范 |
| 手动加载 | front-matter 中设置 inclusion: manual,聊天时用 # 引用 | 按需使用的参考文档,如 API 规范 |
2.3 Steering 编写最佳实践
像写代码一样写 Steering——模块化、可读、可维护。
<!-- .kiro/steering/vue-standards.md -->
---
inclusion: fileMatch
fileMatchPattern: "**/*.vue"
---
# Vue 组件开发规范
## 命名规则
- 组件文件名使用 PascalCase:`UserProfile.vue`
- prop 命名使用 camelCase:`userName`
## 组件结构
按 `<template>` → `<script>` → `<style>` 顺序排列
## 示例
```vue
<template>
<div class="user-profile">{{ userName }}</div>
</template>
<script>
export default {
name: 'UserProfile',
props: {
userName: { type: String, required: true }
}
}
</script>
**关键原则:**
- 用具体示例代替抽象描述
- 不要在 Steering 中放 API 密钥等敏感数据
- 建议整个团队统一维护 Steering,纳入版本管理
- 可以通过 `#[[file:openapi.yaml]]` 引用外部规范文件,让 AI 在生成代码时参考你的接口定义
## 三、MCP:扩展 AI 的工具箱
MCP(Model Context Protocol)让 Kiro 能够调用外部工具和服务,相当于给 AI 装上了「外挂」。
### 3.1 常见 MCP 场景
| MCP 类型 | 用途 | 示例 |
|----------|------|------|
| AWS Docs | 查询 AWS 服务文档,生成更准确的云服务代码 | 查询 S3 版本控制如何开启 |
| Git | 代码仓库操作 | 自动提交、分支管理 |
| Playwright | 浏览器自动化 | UI 测试、页面截图 |
| Web Search | 网络搜索 | 查询最新技术文档 |
| 框架文档 | 加载特定框架的文档 | Strands Agent 等框架的 MCP |
### 3.2 MCP 配置
MCP 配置文件位于 `.kiro/settings/mcp.json`(项目级)或 `~/.kiro/settings/mcp.json`(用户级)。
```json
{
"mcpServers": {
"aws-docs": {
"command": "uvx",
"args": ["awslabs.aws-documentation-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
配置优先级:用户级 < 工作区级,工作区配置会覆盖用户级配置。
3.3 MCP 使用技巧
⚠️ 按需启用,避免浪费上下文
MCP 每次会话都会加载到上下文中,加载越多 = 消耗越多 Token。建议:
- 当前项目需要什么就启用什么,不用的设置
"disabled": true - 按项目级别、工作区级别分层管理
- 不常用的 MCP 平时关闭,需要时再打开
⚠️ 密钥安全
// ❌ 不要这样做
{
"env": {
"API_KEY": "sk-xxxxxxxxxxxx"
}
}
// ✅ 使用环境变量
{
"env": {
"API_KEY": "${MY_API_KEY}"
}
}
永远不要在 MCP 配置中明文存储密钥,使用系统环境变量传递。
四、Powers:让通用 AI 变成领域专家
Powers 是 Kiro 的「技能包」机制,比 MCP 更智能——它不会一股脑加载所有工具,而是通过语义检索按需调用。
4.1 Powers vs MCP
| 对比项 | MCP | Powers |
|---|---|---|
| 加载方式 | 会话开始时全部加载 | 按需语义检索,用到才加载 |
| 上下文消耗 | 较高(全量加载) | 较低(按需加载) |
| 适用场景 | 通用工具调用 | 领域专家能力封装 |
4.2 Powers 的实际应用场景
想象你有 A、B、C 三个微服务,B 需要同时对接上游 A 和下游 C:
- 将 A 的接口文档、规范封装成一个 Power
- 将 C 的接口文档、规范封装成另一个 Power
- 开发 B 时,AI 会自动识别你在对接哪个服务,按需查询对应的 Power
这样 AI 就从「什么都懂一点的通才」变成了「了解你项目上下文的专才」。
4.3 企业级 Powers 实践
- 将内部知识库封装成 Power,AI 可以检索产品信息来完善功能
- 将各项目的文档手册封装成 Power,供其他调用方参考
- 在 Kiro 右侧面板的 Powers 图标中可以浏览和安装社区 Powers
五、Hooks:自动化你的开发流程
Hooks 是 Kiro 的自动化触发器,可以在特定事件发生时自动执行任务。
5.1 支持的触发事件
| 事件类型 | 触发时机 |
|---|---|
fileEdited | 文件被保存时 |
fileCreated | 新文件被创建时 |
fileDeleted | 文件被删除时 |
promptSubmit | 发送消息给 Agent 时 |
agentStop | Agent 执行完成时 |
preToolUse / postToolUse | 工具执行前/后 |
preTaskExecution / postTaskExecution | Spec 任务执行前/后 |
userTriggered | 手动触发 |
5.2 实战案例
案例 1:保存时自动安全扫描
{
"name": "Security Scan on Save",
"version": "1.0.0",
"description": "Go 文件保存时自动执行安全扫描",
"when": {
"type": "fileEdited",
"patterns": ["*.go"]
},
"then": {
"type": "runCommand",
"command": "gosec ./..."
}
}
案例 2:代码变更后自动更新接口文档
{
"name": "Auto Update API Docs",
"version": "1.0.0",
"description": "接口文件变更后自动更新文档",
"when": {
"type": "fileEdited",
"patterns": ["src/api/**/*.ts"]
},
"then": {
"type": "askAgent",
"prompt": "检测到接口文件变更,请根据变更内容更新 docs/api.md 中对应的接口文档"
}
}
案例 3:自动补充代码注释
{
"name": "Enrich Comments",
"version": "1.0.0",
"description": "新建文件后自动补充注释",
"when": {
"type": "fileCreated",
"patterns": ["src/**/*.ts", "src/**/*.vue"]
},
"then": {
"type": "askAgent",
"prompt": "为新创建的文件补充必要的代码注释,包括文件说明、函数说明和关键逻辑注释"
}
}
更多 Hooks 应用思路:
- 多语言国际化:编辑 i18n 文件后自动翻译其他语言版本
- 自动生成单元测试:代码保存后基于变更生成测试用例
- Git 提交前安全扫描:提交代码前对整个项目进行安全检查
- 写操作审查:在所有写入操作前检查是否符合编码规范
六、Spec 模式:从需求到代码的全链路
Spec 是 Kiro 最具特色的功能之一,它将开发流程结构化为:需求 → 设计 → 任务拆解 → 逐步实现。
6.1 Spec 的工作流程
需求文档 → AI 生成需求分析
→ AI 生成技术设计文档
→ AI 拆解实现任务
→ 逐个任务执行实现
每一步都可以人工审核和修改,确保方向正确后再进入下一步。
6.2 Spec 使用技巧
不要一次性把需求丢给 AI 就不管了。 正确的做法是:
- 发送需求后,先让 AI 列出它不理解的地方
- 通过多轮对话澄清模糊点
- AI 确认没有疑问后,再生成设计文档
- 审核设计文档,确认后再进入实现阶段
你:这是我的需求文档(附上需求)
你:对于这个需求,你有什么不理解或需要我澄清的地方?请列出来。
AI:我有以下几个问题...
你:(逐一回答)
AI:明白了,现在我可以开始生成技术设计文档了。
引用外部文档增强上下文:
在 Spec 文件中可以通过 #[[file:docs/api-spec.yaml]] 引用 OpenAPI、GraphQL 等规范文件,让 AI 在设计和实现时参考你的接口定义。
七、上下文管理:AI 的记忆术
无论上下文窗口多大,面对企业级长期项目,总会有用完的一天。塞进去的信息越多,AI 越容易产生幻觉。
7.1 核心思路:把记忆从 AI 的脑子转到硬盘上
多轮对话记录 → 阶段性总结 → 持久化为 .md 文件 → 纳入 Git 管理
↓
新会话中通过 #File 加载 ← ← ← ← ← ← ← ← ← ← ← ←
7.2 具体做法
1. 阶段性总结
在关键节点让 AI 生成当前进度的总结文档,保存为 .md 文件。避免 Session 结束后信息丢失。
2. 按需加载上下文
新会话中使用 #File 加载相关的阶段性总结文档:
# 在聊天中引用
#File docs/phase1-summary.md
#File docs/api-design.md
继续上次的工作,现在需要实现用户认证模块...
3. 上下文压缩
让 AI 将之前的多轮对话记录压缩成精炼的总结文档,只保留关键决策和结论。
4. 任务隔离
不同任务使用独立的会话,避免不同项目之间的上下文干扰。每个会话专注一件事,减少 Token 消耗。
7.3 上下文快捷操作
| 快捷方式 | 作用 |
|---|---|
#File | 加载指定文件到上下文 |
#Folder | 加载整个文件夹到上下文 |
#Problems | 加载当前文件的诊断问题 |
#Terminal | 加载终端输出 |
#Git Diff | 加载当前 Git 变更 |
Ctrl + L | 将选中代码块发送到聊天窗口 |
Ctrl + I | 在编辑器内打开内联对话 |
八、Kiro CLI:轻量级的命令行助手
除了 IDE,Kiro 还提供 CLI 工具,适合并行执行多个任务。
8.1 CLI vs IDE
| 对比项 | Kiro IDE | Kiro CLI |
|---|---|---|
| 资源占用 | 较高 | 轻量 |
| 并行任务 | 会话排队 | 可同时开多个终端 |
| 适用人群 | 日常开发 | 运维、批量任务、快速查询 |
| MCP 支持 | ✅ | ✅(继承 IDE 配置) |
8.2 CLI 实战场景
# 生成前端项目并上传 Git
kiro "用 React 创建一个 Todo 应用,完成后提交到 Git"
# 查询 AWS 文档
kiro "S3 的版本控制如何开启?"
# 分析项目并生成部署配置
kiro "分析当前 Java 项目,生成 ECS 部署所需的 CDK 代码和 Dockerfile"
# 排查 K8s 问题
kiro "当前 EKS 集群中使用 Karpenter 做弹性扩缩容,有个 Pod 拉不起来,帮我排查原因"
# 日志分析 + 代码定位
kiro "Prometheus 地址是 xxx,ES 日志地址是 xxx,帮我找到所有 5XX 错误,定位到具体代码行"
# MySQL 慢查询分析
kiro "连接 MySQL(地址 xxx),分析 slow log,给出优化建议"
CLI 的核心优势:可以并发执行多个任务,不像 IDE 中会话需要排队。
九、Checkpoint:你的代码后悔药
AI 生成的代码不符合预期?别慌。Kiro 的 Checkpoint 机制让你可以随时回滚到任意一步。
9.1 使用方式
在聊天记录中,每一步操作旁边都有 Restore 按钮。点击即可回滚到该步骤之前的状态。
典型场景:
- AI 把原有代码改坏了 → 点击 Restore 回到修改前
- 尝试了一种方案不满意 → 回滚后尝试另一种
- 多步操作中某一步出了问题 → 精确回滚到那一步
9.2 修改建议
当你发现 AI 生成的内容需要调整时:
✅ 推荐:在聊天窗口中告诉 AI 怎么改(AI 能同步更新上下文)
⚠️ 可以但需注意:直接在源文件中手动修改(AI 的上下文不会自动更新)
如果你手动修改了文件,又需要 AI 继续基于修改后的内容工作,最好用 #File 重新加载该文件,保持上下文一致。
十、开发技巧与最佳实践
10.1 语言选择
Claude 模型对英文的支持优于中文。建议:
- 技术术语、API 名称、框架名称 → 用英文
- 复杂业务场景描述 → 用中文
- 支持中英文混合书写
// ✅ 推荐的混合写法
"使用 Express 框架创建一个 RESTful API,实现用户注册和登录功能,
密码使用 bcrypt 加密,JWT 做 token 认证"
10.2 善用内置工具
Kiro 内置了丰富的开发工具,不需要额外安装:
- 代码搜索与分析(AST 级别)
- Shell 命令执行
- 文件读写与重构
- 诊断与错误检查
- 浏览器自动化(Playwright)
- 网络搜索
10.3 模型选择策略
| 模型 | 能力 | Credit 消耗 | 适用场景 |
|---|---|---|---|
| Claude Opus | 最强 | ~2x | 复杂架构设计、疑难 Bug |
| Claude Sonnet | 均衡 | ~1.5x | 日常开发、代码生成 |
| Claude Haiku | 快速 | 1x | 简单查询、代码补全 |
根据任务复杂度选择合适的模型,避免用大炮打蚊子。
10.4 高效提示词技巧
1. 先问后做
你:我要给这个 Vue 项目添加权限管理功能
你:在开始之前,请先分析当前项目结构,告诉我你打算怎么做,以及有什么需要我确认的
2. 分步执行
// ❌ 一次性丢一个大需求
"帮我做一个完整的电商系统"
// ✅ 拆分为可控的小任务
"先帮我设计用户模块的数据库表结构"
"基于这个表结构,生成对应的 Model 和 CRUD 接口"
"为这些接口添加参数校验和错误处理"
3. 提供足够的上下文
// ❌ 模糊的需求
"帮我修一下这个 Bug"
// ✅ 提供具体信息
"这个接口返回 500 错误,错误日志如下:xxx
期望行为是:xxx
当前代码逻辑是:#File src/api/user.ts"
10.5 代码补全
Kiro 的代码补全默认未开启,需要手动启用:
Settings → 搜索 "code completion" → 勾选启用
启用后,在编写代码时 AI 会实时提供补全建议。
总结
| 功能 | 一句话总结 |
|---|---|
| Steering | 给 AI 写团队规范,像代码一样维护 |
| MCP | 扩展 AI 的工具能力,按需启用 |
| Powers | 把通用 AI 变成领域专家,即插即用 |
| Hooks | 自动化开发流程,减少重复操作 |
| Spec | 结构化的需求到代码全链路 |
| Checkpoint | 随时回滚,大胆尝试 |
| CLI | 轻量并行,适合批量任务 |
| 上下文管理 | 把记忆存到硬盘,按需加载 |
AI 编程工具是能力和效率的放大器。用好 Steering 定规矩,用好 Spec 理需求,用好 Hooks 做自动化,用好上下文管理控成本——工具用得好,下班回家早~