Skip to content

Steering 是通过 Markdown 文件向 Kiro 提供持久工作区知识的机制。你无需在每次对话中重复解释项目规范,steering 文件让 Kiro 始终遵循你的代码风格、库选择和团队标准。Steering 分为工作区级(.kiro/steering/)和全局级(~/.kiro/steering/),支持 always、fileMatch、manual、auto 四种加载模式,还可通过文件引用保持内容与代码库同步。

什么是 Steering?

Steering 通过 Markdown 文件为 Kiro 提供关于工作区的持久知识。与其在每次聊天中解释项目规范,不如通过 steering 文件让 Kiro 始终遵循你建立的模式、库和标准。

核心优势

一致的代码生成:每个组件、API 端点或测试都遵循团队既定的模式和约定。

减少重复:无需在每次对话中解释工作区标准,Kiro 会记住你的偏好。

团队对齐:所有开发者使用同一套标准,无论是新成员还是老手。

可扩展的项目知识:随着代码库增长,持续积累决策和模式的文档。

Steering 文件的作用范围

工作区 Steering

存放在工作区根目录的 .kiro/steering/ 下,仅对当前工作区生效。用于告知 Kiro 特定工作区的模式、库和标准。

全局 Steering

存放在用户主目录的 ~/.kiro/steering/ 下,对所有工作区生效。用于定义适用于所有工作区的通用约定。

当全局与工作区 steering 指令冲突时,Kiro 优先使用工作区 steering,从而允许在特定项目中覆盖全局指令。

团队 Steering

全局 steering 功能可用于定义适用于整个团队的集中式 steering 文件。团队 steering 文件可通过 MDM 方案或组策略推送到用户电脑,或由用户从中央仓库下载后放入 ~/.kiro/steering 文件夹。

基础 Steering 文件

Kiro 提供基础 steering 文件来建立核心项目上下文,生成步骤:

  1. 导航到 Kiro 面板的 Steering 部分
  2. 点击 Generate Steering Docs,或点击 + 选择 Foundation steering files
  3. Kiro 会创建三个基础文件:

产品概览product.md):定义产品目的、目标用户、核心功能和业务目标。帮助 Kiro 理解技术决策背后的"为什么",并据此提供符合产品方向的建议。

技术栈tech.md):记录所选框架、库、开发工具和技术约束。Kiro 在提供实现建议时,会优先使用你的既有技术栈而非其他方案。

项目结构structure.md):概述文件组织方式、命名约定、导入模式和架构决策。确保生成的代码能无缝融入现有代码库。

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

创建自定义 Steering 文件

  1. 导航到 Kiro 面板的 Steering 部分
  2. 点击 +
  3. 选择 steering 文件的范围:工作区或全局
  4. 选择一个描述性文件名(如 api-standards.md
  5. 用标准 Markdown 语法编写指导内容
  6. 用自然语言描述你的要求
  7. 对于工作区 steering 文件,可选择点击 Refine 让 Kiro 优化内容

创建后,steering 文件立即在所有 Kiro 交互中生效。

Agents.md 支持

Kiro 支持通过 AGENTS.md 标准提供 steering 指令。AGENTS.md 文件为 Markdown 格式,类似 Kiro steering 文件,但不支持加载模式,始终被包含。

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

加载模式(Inclusion Modes)

Steering 文件可以配置不同的加载时机,通过在文件顶部添加 YAML front matter 来指定,必须以三个连字符(---)包裹。

始终加载(默认)

yaml
---
inclusion: always
---

每次 Kiro 交互都自动加载。适用于应影响所有代码生成的核心标准,如技术栈、编码规范、基础架构原则。

适合:全局标准、技术偏好、安全策略、普遍适用的编码约定。

条件加载(fileMatch)

yaml
---
inclusion: fileMatch
fileMatchPattern: "components/**/*.tsx"
---

仅当处理匹配指定模式的文件时才自动加载,让上下文保持相关性,避免干扰。

支持多个模式:

yaml
---
inclusion: fileMatch
fileMatchPattern: ["**/*.ts", "**/*.tsx", "**/tsconfig.*.json"]
---

常用模式示例:

  • "*.tsx" — React 组件和 JSX 文件
  • "app/api/**/*" — API 路由和后端逻辑
  • "**/*.test.*" — 测试文件和测试工具
  • "src/components/**/*" — 组件专项指南
  • ["**/*.ts", "**/*.tsx"] — 所有 TypeScript 文件

适合:只适用于特定文件类型的领域规范,如组件模式、API 设计规则、测试方法或部署流程。

手动加载(manual)

yaml
---
inclusion: manual
---

按需加载,在聊天消息中用 #steering-file-name 引用。精确控制何时需要专项上下文,不影响其他交互。

使用方式:在聊天中输入 #troubleshooting-guide#performance-optimization 即可在当前对话中包含该 steering 文件。手动 steering 文件也会以斜杠命令形式出现。

适合:专项工作流、故障排查指南、迁移流程或只在特定场景才需要的重量级文档。

自动加载(auto)

yaml
---
inclusion: auto
name: api-design
description: REST API design patterns and conventions. Use when creating or modifying API endpoints.
---

当请求与描述匹配时自动加载,工作方式类似 skills

字段是否必填说明
nameSteering 文件的标识符,用于显示和匹配
description指定何时包含该文件,Kiro 依此与请求匹配

自动加载的 steering 文件也会以斜杠命令形式出现在聊天中。

适合:只应在相关时加载的重量级指导,如专业领域知识、复杂工作流或会影响通用场景的详细参考资料。

文件引用

通过引用活跃的工作区文件,让 steering 保持同步:

#[[file:<relative_file_name>]]

示例:

  • API 规范:#[[file:api/openapi.yaml]]
  • 组件模式:#[[file:components/ui/button.tsx]]
  • 配置模板:#[[file:.env.example]]

最佳实践

每个文件聚焦单一领域:API 设计、测试或部署流程各自独立成文件。

使用清晰的文件名

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

解释决策背后的原因:不只记录"做什么",还要说明"为什么这样做"。

提供示例:用代码片段和前后对比来展示标准的落地方式。

安全第一:绝不在 steering 文件中包含 API 密钥、密码或敏感数据,steering 文件是代码库的一部分。

定期维护:在迭代规划和架构变更时审查 steering 文件;重构后测试文件引用;将 steering 变更视为代码变更,需要评审。

常见 Steering 文件策略

API 标准api-standards.md):定义 REST 约定、错误响应格式、认证流程和版本策略,包含端点命名模式、HTTP 状态码使用方式和请求响应示例。

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

代码风格code-conventions.md):规定命名模式、文件组织、导入顺序和架构决策,包含首选代码结构、组件模式和反模式示例。

安全指南security-policies.md):记录认证要求、数据验证规则、输入清洗标准和漏洞防护措施,包含应用专项的安全编码实践。

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

相关文档

  • Skills — 按需激活的模块化指令包
  • Hooks — 基于事件自动触发智能体操作

常见问题

Q:Steering 文件和 Skills 有什么区别?

Steering 是 Kiro 专属机制,用于持久化项目上下文,支持多种加载模式,不包含可执行脚本。Skills 遵循开放的 Agent Skills 标准,按需加载,可包含脚本,适合在工具间共享和复用的工作流。

Q:工作区 steering 和全局 steering 冲突时如何处理?

Kiro 优先使用工作区 steering 的指令。这让你可以在全局定义通用约定,同时针对特定项目进行覆盖,两者独立共存。

Q:fileMatch 模式支持哪些语法?

使用标准 glob 语法,如 *.tsx(当前目录)、**/*.ts(递归匹配)、app/api/**/*(特定路径下所有文件)。可以传入字符串数组来同时匹配多种文件类型。