Skip to Content

Rules 的工作原理

理解项目 Rules 如何影响 AI 的行为

什么是 Rules

Rules 为 AI Agent 提供系统级指令。它们将提示词、脚本等内容打包在一起,便于在团队内管理和共享工作流。

Cursor 支持四种类型的 Rules:

类型存储位置作用范围适用场景
Project Rules.cursor/rules当前代码库项目特定的规范和工作流
User Rules全局配置所有 Cursor 项目个人偏好和通用约定
Team Rules控制台管理团队所有项目企业级规范(Team/Enterprise)
AGENTS.md项目根目录当前代码库轻量级的 Agent 指令

本文实践重点: 我们专注于 Project Rules(.cursor/rules 的最佳实践,因为:

  • 可被 Git 管理 - 可以版本控制、协作共享
  • 团队协作友好 - 新成员克隆代码后即可使用
  • User Rules - 个人 Rules 无法在企业项目中共享,不建议用于团队协作
  • ⚠️ Team Rules - 我们仍在探索中,目前缺乏最佳实践
  • AGENTS.md - 内容较零散,难以维护,不建议使用

更多 Rules 类型的详细说明,请参考 Cursor 官方文档 

Rules 文件夹结构

Project Rules 存放在 .cursor/rules/ 目录下,每个 Rule 对应一个 .mdc 文件:

      • global-rules.mdc
      • routing-rules.mdc
      • api-rules.mdc
      • ui-rules.mdc

Project Rules 位于 .cursor/rules 目录中,受版本控制,作用范围限定在你的代码库内。使用 Project Rules 可以:

  • 沉淀领域知识 - 将与代码库相关的专业知识固化
  • 自动化工作流 - 统一项目特定的模板和流程
  • 统一技术决策 - 确保风格和架构的一致性
  • 团队协作 - 通过 Git 共享,新成员快速上手

Rules 应用方式

通过类型下拉菜单可以控制 Rules 的应用方式:

类型配置何时应用
Always ApplyalwaysApply: true应用于每个聊天会话
Apply IntelligentlyalwaysApply: false + descriptionAgent 根据描述判断相关性后应用
Apply to Specific Filesglobs: ["pattern"]当文件匹配指定模式时应用
Apply Manually无特殊配置在对话中被 @ 提及时应用(如 @my-rule

Rules 的工作机制

大型语言模型在不同补全之间不会保留记忆。Rules 在提示级别提供持久、可重用的上下文。 简单来说就是为了解决每次 Chat 都要重复输入相同的指令。如果你需要更灵活的记忆系统,可以参考 使用 Rules 管理记忆

当 Rules 被应用后,其内容会被加入到模型上下文的开头。这为 AI 在生成代码、理解编辑或协助处理工作流时提供一致的指导。

Rules 应用流程

Rules 文件结构

每个 .mdc 文件包含 frontmatter 元数据和正文内容:

--- description: "This rule provides standards for frontend components" globs: ["src/components/**"] alwaysApply: false --- - 使用 TypeScript 定义所有组件 - 组件必须使用 PascalCase 命名 - 导出的函数必须指定返回类型 @component-template.tsx

Frontmatter 字段说明

字段类型说明
descriptionstringRule 描述,供 AI 判断是否应用此 Rule
globsstring[]文件匹配模式,限定 Rule 作用范围
alwaysApplyboolean是否始终应用于每个聊天会话

如果 alwaysApplytrue,则该 Rule 会应用于每个聊天会话。否则,将把该 Rule 的描述提供给 Cursor Agent,由其决定是否需要应用该 Rule。

示例:全局 Rules(始终生效)

--- alwaysApply: true --- # Global Project Rules ## Tech Stack - React 18 with TypeScript - Vite as build tool - TanStack Router for routing ## Directory Structure - `src/pages/` - Page components - `src/components/` - Reusable components - `src/clients/` - API clients

示例:文件匹配 Rules(特定文件生效)

--- description: "API client development standards" globs: ["src/clients/**"] alwaysApply: false --- # API Rules - Use axios for HTTP requests - All API functions must have error handling - Use SWR for data fetching in components

示例:手动触发 Rules

--- description: "Template for creating new feature modules" alwaysApply: false --- # Feature Template Use this structure when creating a new feature...

在聊天中使用 @feature-template 即可触发此 Rule。

创建 Rules

有两种方式创建 Rules:

  1. 使用命令 - 运行 New Cursor Rule 命令
  2. 使用设置 - 在 Cursor Settings > Rules, Commands 中创建

这会在 .cursor/rules 中创建一个新的 .mdc 文件。你可以在设置中查看所有 Rules 及其状态。

在文章 Rules 迭代与沉淀 中会介绍最佳的 Rules 数量和结构。

下一步

现在你已经理解了 Rules 的工作原理,接下来学习如何编写高质量的 Rules

如果你的项目需要管理大量领域知识,可以了解 使用 Rules 管理记忆

最后更新于: