跳到主要内容

自定义规则

自定义规则提供了一种强大的方式来定义项目特定的行为和约束,以确保 Kilo Code AI 代理的一致性。通过自定义规则,你可以确保格式一致、限制对敏感文件的访问、强制执行编码标准,并根据你的项目需求自定义 AI 的行为。

概述

自定义规则允许你创建基于文本的指令,所有 AI 模型在与你的项目交互时都会遵循这些规则。这些规则充当护栏和约定,确保与代码库的所有交互都保持一致。

自定义规则与指令的区别

自定义规则是项目特定的,允许你设置基于工作区的规则集。对于 IDE 范围的配置,自定义指令 将是更好的选择,因为它们会保持你的偏好,无论你正在处理哪个项目。

规则格式

自定义规则可以用纯文本编写,但建议使用 Markdown 格式,以便更好地组织和让 AI 模型理解。Markdown 的结构化特性有助于模型更有效地解析和理解你的规则。

  • 使用 Markdown 标题(#, ## 等)定义规则类别
  • 使用列表(-, *)枚举特定项目或约束
  • 使用代码块( )在需要时包含代码示例

规则位置

自定义规则主要从 .kilocode/rules/ 目录 加载。这是组织项目特定规则的推荐方法。每个规则通常放置在具有描述性名称的 Markdown 文件中:

project/
├── .kilocode/
│ ├── rules/
│ │ ├── formatting.md
│ │ ├── restricted_files.md
│ │ └── naming_conventions.md
├── src/
└── ...

规则加载顺序

通用规则(所有模式)

为了向后兼容,如果没有找到规则文件夹,代理将检查其他位置。

加载顺序如下:

  1. 首先尝试从 .kilocode/rules/ 目录加载
  2. 如果该目录不存在或为空,则回退检查以下文件:
    • .roorules
    • .clinerules
    • .kilocoderules(已弃用)

代理使用找到的第一个包含内容的来源。例如,如果找到了包含内容的 .roorules,则不会读取 .clinerules

备注

我们强烈建议将规则保留在 .kilocode/rules/ 文件夹中,因为它提供了更好的组织,并且是未来版本的首选方法。基于文件夹的结构允许更细粒度的规则组织和更清晰的关注点分离。基于文件的旧方法为了向后兼容而保留,但可能会在未来的版本中发生变化。

模式特定规则

此外,系统支持模式特定的规则,这些规则会单独加载,并有自己的优先级顺序:

  1. 首先检查 .kilocode/rules-${mode}/ 目录
  2. 如果该目录不存在或为空,则回退到 .kilocoderules-${mode} 文件(已弃用)

当通用规则和模式特定规则同时存在时,模式特定规则在最终输出中具有优先权。

创建自定义规则

要创建自定义规则:

  1. 如果不存在,请创建 .kilocode/rules/ 目录
  2. 在此目录中创建一个具有描述性名称的新 Markdown 文件
  3. 使用 Markdown 格式编写你的规则
  4. 保存文件

该规则将自动应用于你项目中所有未来的 Kilo Code 交互。任何新更改都会立即生效。

规则示例

示例 1:表格格式化

# 表格
打印表格时,始终在每列标题中添加感叹号

这个简单的规则指示 AI 在生成表格时在所有列标题中添加感叹号。

示例 2:限制文件访问

# 受限文件
列表中包含敏感数据的文件,禁止读取
- supersecrets.txt
- credentials.json
- .env

此规则防止 AI 读取或访问敏感文件,即使明确要求这样做。

Kilo Code 忽略读取敏感文件的请求

使用场景

自定义规则可以应用于各种场景:

  • 代码风格:强制执行一致的格式、命名约定和文档风格
  • 安全控制:防止访问敏感文件或目录
  • 项目结构:定义不同类型文件的创建位置
  • 文档要求:指定文档格式和要求
  • 测试模式:定义测试的结构方式
  • API 使用:指定 API 的使用和文档方式
  • 错误处理:定义错误处理约定

自定义规则示例

  • "严格遵守代码风格指南 [你的项目特定代码风格指南]"
  • "始终使用空格缩进,宽度为 4 个空格"
  • "使用 camelCase 命名变量"
  • "为所有新函数编写单元测试"
  • "在提供代码之前解释你的推理"
  • "专注于代码的可读性和可维护性"
  • "优先使用社区中最常见的库"
  • "当为网站添加新功能时,确保它们是响应式且可访问的"

最佳实践

  • 具体明确:明确定义每个规则的范围和意图
  • 使用类别:将相关规则组织在共同的标题下
  • 分离关注点:为不同类型的规则使用不同的文件
  • 使用示例:包含示例以说明预期行为
  • 保持简单:规则应简洁易懂
  • 定期更新:随着项目需求的变化,定期审查和更新规则
专业提示:基于文件的团队标准

在团队环境中工作时,将 .kilocode/rules/codestyle.md 文件置于版本控制之下,可以让你在整个开发团队中标准化 Kilo 的行为。这确保了项目中的每个人都有一致的代码风格、文档实践和开发工作流程。

限制

  • 规则由 AI 模型尽力而为地应用
  • 复杂规则可能需要多个示例才能清晰理解
  • 规则仅适用于定义它们的项目

故障排除

如果你的自定义规则未被正确遵循:

  1. 检查你的规则是否使用清晰的 Markdown 结构正确格式化
  2. 确保你的规则位于以下支持的位置之一:
    • 推荐的 .kilocode/rules/ 目录
    • 根级规则文件(.kilocoderules, .roorules, 或 .clinerules
  3. 验证规则是否具体且明确
  4. 重启 VS Code 以确保规则正确加载

相关功能