Skip to content

Steering 是 Kiro 的"项目记忆"机制:把技术栈、代码规范、架构决策写成 Markdown 文件放进 .kiro/steering/ 目录,Kiro 就会在每次对话中自动加载这些上下文。你不再需要每次都告诉 AI "我们用 TypeScript、用 Zod 做校验、用 Conventional Commits"——Steering 文件帮你记住这一切,并确保团队所有成员获得一致的 AI 辅助体验。

什么是 steering

Steering 通过 .kiro/steering/ 目录下的 Markdown 文件给 Kiro 持久化的项目知识。你不需要在每次对话中重复说明项目规范,steering 文件确保 Kiro 始终遵循你已建立的代码模式、库选择和团队标准。

核心价值

代码生成一致性 — 每个组件、API 端点或测试用例都遵循团队既有模式和规范。

消除重复沟通 — 无需在每次对话中解释项目标准,Kiro 会记住你的偏好。

团队对齐 — 无论是刚加入的新人还是资深贡献者,所有人使用相同的标准工作。

项目知识可扩展 — 随代码库成长的文档,随着项目演进持续记录决策和模式。

Steering 文件的作用域

工作区 steering

工作区 steering 文件存放在项目根目录的 .kiro/steering/ 下,只作用于该工作区。适合用于记录单个项目专属的代码模式、库选择和规范。

全局 steering

全局 steering 文件存放在家目录的 ~/.kiro/steering/ 下,作用于所有工作区。适合记录跨项目通用的个人偏好和惯例。

当全局和工作区 steering 指令冲突时,Kiro 优先采用工作区 steering。这让你可以设置全局默认值,同时保留针对特定项目覆盖的能力。

团队 steering

全局 steering 机制也可用于定义适用于整个团队的集中式 steering 文件。团队 steering 文件可通过 MDM 或组策略推送到成员电脑,或由成员从中央仓库下载后放入 ~/.kiro/steering/ 文件夹,Kiro 会自动识别。

基础 steering 文件

建议创建以下三个基础 steering 文件来建立核心项目上下文:

  1. 在项目根目录创建 .kiro/steering/ 文件夹(全局则用 ~/.kiro/steering/
  2. 添加项目标准的 Markdown 文件
  3. Kiro 会在对话时自动加载这些文件

产品概述(product.md — 定义产品目标、目标用户、核心功能和业务目标,帮助 Kiro 理解技术决策背后的"为什么",从而给出与产品方向一致的建议。

技术栈(tech.md — 记录选用的框架、库、开发工具和技术约束。Kiro 在给出实现方案时会优先使用你已有的技术栈,而不是推荐替代品。

项目结构(structure.md — 描述文件组织方式、命名规范、导入模式和架构决策,确保生成的代码能无缝融入现有代码库。

这三个基础文件默认包含在每次对话中,构成 Kiro 理解项目的基线。

创建自定义 steering 文件

根据项目特定需求扩展 Kiro 的知识:

  1. .kiro/steering/ 中新建 .md 文件
  2. 选择描述性文件名(如 api-standards.md
  3. 用标准 Markdown 语法写下你的指导规范
  4. 用自然语言描述你的要求即可

在自定义 agents 中使用 steering

使用自定义 agents 时,steering 文件不会自动加载,需要在 agent 的 resources 配置中显式添加:

json
{
  "resources": ["file://.kiro/steering/**/*.md"]
}

这个 glob 模式确保 steering 目录中所有 Markdown 文件在使用该 agent 时都会加载。完整配置示例参考自定义 agents 文档

AGENTS.md 兼容支持

Kiro 支持 AGENTS.md 标准的 steering 指令。AGENTS.md 格式与 Kiro steering 文件相同,区别是 AGENTS.md 文件始终会被加载。

可以把 AGENTS.md 放在全局 steering 目录(~/.kiro/steering/)或工作区根目录,Kiro 会自动识别。

最佳实践

单文件单领域 — 每个文件只覆盖一个领域,如 API 设计、测试策略或部署流程,避免把所有内容堆在一个文件里。

使用清晰的文件名

  • api-rest-conventions.md — REST API 规范
  • testing-unit-patterns.md — 单元测试方法
  • components-form-validation.md — 表单组件规范

解释决策背景 — 不只写"怎么做",还要写"为什么这样做",让 Kiro 和团队成员都能理解规范的意图。

提供示例 — 用代码片段和前后对比示例来演示规范,比纯文字描述更有效。

绝不包含敏感信息 — steering 文件是代码库的一部分,绝对不能写 API key、密码或其他敏感数据。

定期维护

  • 在迭代计划和架构评审时更新 steering 文件
  • 重构后检查文件引用是否仍然有效
  • 把 steering 变更当作代码变更对待,需要代码审查

常见 steering 文件策略

API 规范(api-standards.md — 定义 REST 规范、错误响应格式、认证流程和版本策略。包含端点命名模式、HTTP 状态码用法和请求/响应示例。

测试方法(testing-standards.md — 建立单元测试模式、集成测试策略、Mock 方法和覆盖率要求。记录首选测试库、断言风格和测试文件组织方式。

代码风格(code-conventions.md — 规定命名模式、文件组织、导入排序和架构决策。包含首选代码结构、组件模式的示例,以及应避免的反模式。

安全规范(security-policies.md — 记录认证要求、数据校验规则、输入净化标准和漏洞预防措施。包含针对当前应用的安全编码实践。

部署流程(deployment-workflow.md — 描述构建步骤、环境配置、部署步骤和回滚策略。包含 CI/CD 流水线细节和各环境特定要求。

自定义 steering 文件存放在 .kiro/steering/,在所有 Kiro CLI 对话中立即生效。

常见问题

Q:steering 和 skills 有什么区别?

A:两者服务于不同目的。Steering 提供项目背景知识(技术栈、规范、架构决策),始终作为背景上下文存在。Skills 则是针对特定工作流的可执行指令包(PR 审查清单、部署步骤),按需触发。日常来说,steering 让 Kiro"了解你的项目",skills 让 Kiro"知道怎么做某件事"。

Q:steering 文件会占用多少上下文窗口?

A:基础 steering 文件(product.mdtech.mdstructure.md)默认包含在每次对话中,其他自定义文件按需加载。建议保持 steering 文件简洁,聚焦关键决策,避免把每个细节都塞进去,以免浪费上下文空间。

Q:新加入团队成员需要手动配置 steering 文件吗?

A:不需要。工作区 steering 文件存放在 .kiro/steering/ 并纳入版本控制,克隆仓库后 Kiro 自动识别。全局 steering 和团队 steering 可通过 MDM 或让成员手动下载到 ~/.kiro/steering/ 完成配置。

相关链接