规格驱动开发实践 - 使用 Kiro 从需求定义到代码生成一气呵成

通过需求定义、设计、任务三阶段规格控制 AI 代理的输出质量,生成符合意图的代码。解析规格文件的结构与高效编写模式。

什么是规格驱动开发

传统的 AI 编码工具以聊天对话和代码补全为主,采用逐步响应开发者指令的方式。这种方式对小型任务有效,但在跨多个文件的功能开发或架构变更中,AI 无法把握全局,容易生成不一致的代码。Kiro 的规格驱动开发是针对这一课题的解决方案。开发者用自然语言描述需求后,Kiro 会 (1) 在需求定义书(requirements.md)中整理功能需求和非功能需求,(2) 在设计书(design.md)中定义架构和数据流,(3) 在任务列表(tasks.md)中分解实现步骤。这三份文档成为 AI 代理的「规格书」,按顺序执行各任务来生成代码。

通过 Steering 文件进行规则控制

Steering 文件是向 AI 传达项目特有规则和方针的机制。以 Markdown 文件形式放置在 .kiro/steering/ 目录中,描述编码规范、架构方针、使用的库、禁止事项等。例如可定义「必须启用 TypeScript 的 strict 模式」「状态管理使用 Zustand,不使用 Redux」「API 响应必须用 Zod 进行验证」等规则。Steering 文件有 inclusion 设置,可选择 always(始终加载)、fileMatch(仅在匹配特定文件模式时)、manual(仅在手动指定时)。全局 Steering(~/.kiro/steering/)适用于所有项目,工作区 Steering(.kiro/steering/)用于项目特有规则。

Agent Hooks 与子代理

Agent Hooks 是以特定事件(文件保存、Git 提交等)为触发器自动执行处理的功能。例如可定义每次保存 TypeScript 文件时执行 ESLint 并自动修复、提交时执行测试失败则中止提交等工作流。子代理是在独立于主代理的上下文中运行的专业代理。可将复杂任务分割,在文件组独立的情况下通过并行执行提高效率。例如可同时推进后端 API 实现和前端组件实现。规划器代理是只读的特殊代理,专注于需求分解和实现计划制定。在实现前验证设计的合理性,提前检测遗漏和矛盾。 从基础到应用系统学习代码生成 AI,可参考书籍 (Amazon)

与 Steering 文件的协作

Steering 文件(.kiro/steering/)与规格互补运作。规格定义单个功能或 Bug 修复的规范,而 Steering 文件定义适用于整个项目的编码规范、设计方针和质量标准。通过 always(始终加载)、manual(按需加载)、fileMatch(文件模式匹配时)三种 inclusion 级别优化上下文消耗,同时确保必要规则的应用。在执行规格任务时,Steering 文件的规则会被自动引用,因此能生成质量一致的代码。

总结 - 规格驱动开发的活用指南

Kiro 的规格驱动开发通过结构化的工作流从需求定义推进到实现,提升 AI 编码的质量和一致性。通过 Steering 文件明示项目规则,通过 Agent Hooks 自动化质量检查,持续保障 AI 生成代码的质量。建议从小规模功能添加开始尝试规格驱动开发,逐步充实 Steering 文件。