超级小牙医
126.69M · 2026-03-22
在选择 AI 编程工具之前,先搞清楚它们各自的定位和差异。
| 对比项 | Kiro | Cursor | Claude Code |
|---|---|---|---|
| 产品形态 | 独立 IDE + VS Code/JetBrains 插件 + CLI | 基于 VS Code 的独立 IDE | 纯命令行工具 |
| 底层模型 | Claude(Anthropic 官方深度集成) | 多模型(Claude / GPT / 自定义) | Claude(Anthropic 官方) |
| 核心理念 | Spec 驱动的结构化开发 | 快速代码生成与编辑 | 终端中的 AI 编程助手 |
| 付费方式 | Credit 制 | Token / 订阅制 | Token 消耗制 |
| 功能 | Kiro | Cursor | Claude Code |
|---|---|---|---|
| Spec 模式(需求→设计→任务→实现) | 原生支持 | ||
| Steering(团队规范约束) | 多模式(始终/条件/手动) | ️ 有 Rules,但较简单 | ️ 有 CLAUDE.md,功能有限 |
| Hooks(自动化触发器) | 丰富的事件类型 | ||
| Powers(按需技能包) | 语义检索,按需加载 | ||
| MCP 支持 | |||
| Checkpoint(代码回滚) | 精确到每一步 | ||
| CLI 工具 | 支持并行多任务 | 这是它的主要形态 | |
| 代码补全 | |||
| 多模型切换 | ️ Claude 系列内切换 | 支持多家模型 | 仅 Claude |
| 图片/设计稿理解 | 支持 Figma MCP | ️ 有限支持 |
1. Spec 模式——真正的「需求驱动开发」
这是 Kiro 与其他工具拉开差距最大的地方。Cursor 和 Claude Code 本质上都是「你说一句,AI 做一步」的对话模式。而 Kiro 的 Spec 模式将开发流程结构化为 需求分析 → 技术设计 → 任务拆解 → 逐步实现,每一步都可以人工审核。这意味着:
2. Hooks——开发流程自动化
Cursor 和 Claude Code 都没有类似机制。Kiro 的 Hooks 可以在文件保存、创建、删除、工具调用前后等多种事件上自动触发任务,比如:
这让 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 在国内使用都需要特殊网络环境,且有被封号的风险。
| 场景 | 推荐工具 |
|---|---|
| 企业级项目,需要规范化开发流程 | Kiro(Spec + Steering + Hooks) |
| 快速原型,追求极致的代码生成速度 | Cursor(多模型 + 快速编辑) |
| 运维/DevOps,习惯命令行工作 | Claude Code 或 Kiro CLI |
| 团队协作,需要统一开发规范 | Kiro(Steering + Powers) |
| 想用非 Claude 模型(如 GPT-4) | Cursor(多模型支持) |
| 国内网络环境 | Kiro(无需番强) |
Steering 是 Kiro 的「行为准则」机制,通过 .kiro/steering/*.md 文件来约束和引导 AI 的行为。可以理解为:你给 AI 写的团队开发规范。
AI 不怕规则多,就怕规则模糊。一个好的示例胜过 1000 字的描述。
没有 Steering 的 AI 就像一个能力很强但不了解你们团队规范的新人——代码能写,但风格、架构、命名可能完全不符合预期。
| 模式 | 配置方式 | 适用场景 |
|---|---|---|
| 始终加载 | 默认行为,无需额外配置 | 团队通用规范、代码风格要求 |
| 条件加载 | front-matter 中设置 inclusion: fileMatch + fileMatchPattern | 特定文件类型的规范,如 *.vue 文件的组件规范 |
| 手动加载 | front-matter 中设置 inclusion: manual,聊天时用 # 引用 | 按需使用的参考文档,如 API 规范 |
像写代码一样写 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": []
}
}
}
配置优先级:用户级 < 工作区级,工作区配置会覆盖用户级配置。
️ 按需启用,避免浪费上下文
MCP 每次会话都会加载到上下文中,加载越多 = 消耗越多 Token。建议:
"disabled": true️ 密钥安全
// 不要这样做
{
"env": {
"API_KEY": "sk-xxxxxxxxxxxx"
}
}
// 使用环境变量
{
"env": {
"API_KEY": "${MY_API_KEY}"
}
}
永远不要在 MCP 配置中明文存储密钥,使用系统环境变量传递。
Powers 是 Kiro 的「技能包」机制,比 MCP 更智能——它不会一股脑加载所有工具,而是通过语义检索按需调用。
| 对比项 | MCP | Powers |
|---|---|---|
| 加载方式 | 会话开始时全部加载 | 按需语义检索,用到才加载 |
| 上下文消耗 | 较高(全量加载) | 较低(按需加载) |
| 适用场景 | 通用工具调用 | 领域专家能力封装 |
想象你有 A、B、C 三个微服务,B 需要同时对接上游 A 和下游 C:
这样 AI 就从「什么都懂一点的通才」变成了「了解你项目上下文的专才」。
Hooks 是 Kiro 的自动化触发器,可以在特定事件发生时自动执行任务。
| 事件类型 | 触发时机 |
|---|---|
fileEdited | 文件被保存时 |
fileCreated | 新文件被创建时 |
fileDeleted | 文件被删除时 |
promptSubmit | 发送消息给 Agent 时 |
agentStop | Agent 执行完成时 |
preToolUse / postToolUse | 工具执行前/后 |
preTaskExecution / postTaskExecution | Spec 任务执行前/后 |
userTriggered | 手动触发 |
案例 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 应用思路:
Spec 是 Kiro 最具特色的功能之一,它将开发流程结构化为:需求 → 设计 → 任务拆解 → 逐步实现。
需求文档 → AI 生成需求分析
→ AI 生成技术设计文档
→ AI 拆解实现任务
→ 逐个任务执行实现
每一步都可以人工审核和修改,确保方向正确后再进入下一步。
不要一次性把需求丢给 AI 就不管了。 正确的做法是:
你:这是我的需求文档(附上需求)
你:对于这个需求,你有什么不理解或需要我澄清的地方?请列出来。
AI:我有以下几个问题...
你:(逐一回答)
AI:明白了,现在我可以开始生成技术设计文档了。
引用外部文档增强上下文:
在 Spec 文件中可以通过 #[[file:docs/api-spec.yaml]] 引用 OpenAPI、GraphQL 等规范文件,让 AI 在设计和实现时参考你的接口定义。
无论上下文窗口多大,面对企业级长期项目,总会有用完的一天。塞进去的信息越多,AI 越容易产生幻觉。
多轮对话记录 → 阶段性总结 → 持久化为 .md 文件 → 纳入 Git 管理
↓
新会话中通过 #File 加载 ← ← ← ← ← ← ← ← ← ← ← ←
1. 阶段性总结
在关键节点让 AI 生成当前进度的总结文档,保存为 .md 文件。避免 Session 结束后信息丢失。
2. 按需加载上下文
新会话中使用 #File 加载相关的阶段性总结文档:
# 在聊天中引用
#File docs/phase1-summary.md
#File docs/api-design.md
继续上次的工作,现在需要实现用户认证模块...
3. 上下文压缩
让 AI 将之前的多轮对话记录压缩成精炼的总结文档,只保留关键决策和结论。
4. 任务隔离
不同任务使用独立的会话,避免不同项目之间的上下文干扰。每个会话专注一件事,减少 Token 消耗。
| 快捷方式 | 作用 |
|---|---|
#File | 加载指定文件到上下文 |
#Folder | 加载整个文件夹到上下文 |
#Problems | 加载当前文件的诊断问题 |
#Terminal | 加载终端输出 |
#Git Diff | 加载当前 Git 变更 |
Ctrl + L | 将选中代码块发送到聊天窗口 |
Ctrl + I | 在编辑器内打开内联对话 |
除了 IDE,Kiro 还提供 CLI 工具,适合并行执行多个任务。
| 对比项 | Kiro IDE | Kiro CLI |
|---|---|---|
| 资源占用 | 较高 | 轻量 |
| 并行任务 | 会话排队 | 可同时开多个终端 |
| 适用人群 | 日常开发 | 运维、批量任务、快速查询 |
| MCP 支持 | (继承 IDE 配置) |
# 生成前端项目并上传 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 中会话需要排队。
AI 生成的代码不符合预期?别慌。Kiro 的 Checkpoint 机制让你可以随时回滚到任意一步。
在聊天记录中,每一步操作旁边都有 Restore 按钮。点击即可回滚到该步骤之前的状态。
典型场景:
当你发现 AI 生成的内容需要调整时:
推荐:在聊天窗口中告诉 AI 怎么改(AI 能同步更新上下文)
️ 可以但需注意:直接在源文件中手动修改(AI 的上下文不会自动更新)
如果你手动修改了文件,又需要 AI 继续基于修改后的内容工作,最好用 #File 重新加载该文件,保持上下文一致。
Claude 模型对英文的支持优于中文。建议:
// 推荐的混合写法
"使用 Express 框架创建一个 RESTful API,实现用户注册和登录功能,
密码使用 bcrypt 加密,JWT 做 token 认证"
Kiro 内置了丰富的开发工具,不需要额外安装:
| 模型 | 能力 | Credit 消耗 | 适用场景 |
|---|---|---|---|
| Claude Opus | 最强 | ~2x | 复杂架构设计、疑难 Bug |
| Claude Sonnet | 均衡 | ~1.5x | 日常开发、代码生成 |
| Claude Haiku | 快速 | 1x | 简单查询、代码补全 |
根据任务复杂度选择合适的模型,避免用大炮打蚊子。
1. 先问后做
你:我要给这个 Vue 项目添加权限管理功能
你:在开始之前,请先分析当前项目结构,告诉我你打算怎么做,以及有什么需要我确认的
2. 分步执行
// 一次性丢一个大需求
"帮我做一个完整的电商系统"
// 拆分为可控的小任务
"先帮我设计用户模块的数据库表结构"
"基于这个表结构,生成对应的 Model 和 CRUD 接口"
"为这些接口添加参数校验和错误处理"
3. 提供足够的上下文
// 模糊的需求
"帮我修一下这个 Bug"
// 提供具体信息
"这个接口返回 500 错误,错误日志如下:xxx
期望行为是:xxx
当前代码逻辑是:#File src/api/user.ts"
Kiro 的代码补全默认未开启,需要手动启用:
Settings → 搜索 "code completion" → 勾选启用
启用后,在编写代码时 AI 会实时提供补全建议。
| 功能 | 一句话总结 |
|---|---|
| Steering | 给 AI 写团队规范,像代码一样维护 |
| MCP | 扩展 AI 的工具能力,按需启用 |
| Powers | 把通用 AI 变成领域专家,即插即用 |
| Hooks | 自动化开发流程,减少重复操作 |
| Spec | 结构化的需求到代码全链路 |
| Checkpoint | 随时回滚,大胆尝试 |
| CLI | 轻量并行,适合批量任务 |
| 上下文管理 | 把记忆存到硬盘,按需加载 |
AI 编程工具是能力和效率的放大器。用好 Steering 定规矩,用好 Spec 理需求,用好 Hooks 做自动化,用好上下文管理控成本——工具用得好,下班回家早~
LLM大模型会话ID身份跟踪标识原理解构:从模型无状态下的会话ID(Session ID)原理分析以及自主实现会话跟踪
突破 Serverless 无状态限制:用 AgentRun 破解 Agent 沙箱工程化挑战
2026-03-22
2026-03-22