规则(Rules)

通过可复用、可作用域的指令,控制 Agent 模型的行为。

规则允许你为 Agent 和 Cmd-K AI 提供系统级的指导。你可以把它们看作是为项目或个人持久化编码上下文、偏好或工作流的一种方式。

我们支持三种类型的规则:

项目规则(Project Rules)
存储在 .cursor/rules 中,受版本控制,并作用于你的代码库。
用户规则(User Rules)
全局作用于你的 Cursor 环境。在设置中定义,始终生效。
.cursorrules(旧版)
仍然支持,但已弃用。建议使用项目规则。

规则的工作原理

大语言模型在每次补全之间不会保留记忆。规则通过在提示级别提供持久、可复用的上下文来解决这个问题。

当应用规则时,其内容会被包含在模型上下文的开头。无论是生成代码、解释编辑,还是协助工作流,AI 都能获得一致的指导。

规则在上下文中的应用

规则可同时应用于 ChatCmd K

项目规则

项目规则存放在 .cursor/rules 目录下。每条规则作为单独文件存储并受版本控制。你可以通过路径模式限定作用范围,手动调用,或根据相关性自动包含。

项目规则适用于:

  • 编码与你代码库相关的领域知识
  • 自动化项目特定的工作流或模板
  • 规范化风格或架构决策

规则结构

每个规则文件采用 MDC(.mdc)格式,支持在单一文件中包含元数据和内容。支持以下类型:

规则类型描述
Always总是包含在模型上下文中
Auto Attached当引用匹配 glob 模式的文件时自动包含
Agent RequestedAI 可用,AI 决定是否包含,需提供描述
Manual仅在通过 @ruleName 明确提及时包含
规则在上下文中的应用

示例 MDC 规则:

---
description: RPC 服务样板
globs: 
alwaysApply: false
---

- 定义服务时使用内部 RPC 模式
- 服务名称始终使用 snake_case

@service-template.ts

当规则被触发时,像 @service-template.ts 这样的引用文件会作为额外上下文包含。

你可以通过 Cmd + Shift + P > “New Cursor Rule” 快速创建规则。

嵌套规则

你可以在项目结构中各处的 .cursor/rules 目录下组织规则,例如:

project/
  .cursor/rules/        # Project-wide rules
  backend/
    server/
      .cursor/rules/    # Backend-specific rules
  frontend/
    .cursor/rules/      # Frontend-specific rules

嵌套规则会:

  • 当引用其目录下的文件时自动附加
  • 仍可在上下文选择器和 agent 可访问规则列表中使用
  • 适合将领域特定规则靠近相关代码进行组织

这在 monorepo 或有多个独立组件的项目中特别有用。

创建规则

你可以通过 New Cursor Rule 命令或在 Cursor Settings > Rules 中创建规则。这会在 .cursor/rules 目录下生成新规则文件。在设置中还可以查看所有规则及其状态。

创建规则

生成规则

你可以在对话中直接使用 /Generate Cursor Rules 命令生成规则。

当你在对话中做了许多关于 agent 行为的决策时,这非常有用。只需生成规则,未来即可复用。

最佳实践

  • 保持规则简明,建议不超过 500 行
  • 将大型概念拆分为多个可组合的规则
  • 提供具体示例或引用文件
  • 避免模糊指导,像写清晰的内部文档一样写规则
  • 当你在聊天中频繁重复某些提示时,考虑将其写成规则复用

举例

来自 Cursor 代码库

这些是我们在 Cursor 内部使用的规则。

Next.jsCloudflareBrowserbase 等提供商都提供了许多示例。社区贡献的规则也可以在多个众包集合和在线仓库中找到。

用户规则

用户规则在 Cursor Settings > Rules. 中定义。

它们适用于所有项目,并始终包含在你的模型上下文中。

你可以用用户规则来:

  • 设置回复的语言或语气
  • 添加个人风格偏好

示例:

Please reply in a concise style. Avoid unnecessary repetition or filler language.

用户规则不支持 MDC 格式,只能为纯文本。

团队规则

目前没有内置方式在多个项目间共享规则。

我们计划支持可在团队项目间引用的共享 MDC 格式规则。在此之前,你可以:

  • 将共享规则存储在专用仓库中
  • 将它们复制或通过符号链接放入每个项目的 .cursor/rules 目录

.cursorrules(旧版)

项目根目录下的 .cursorrules 文件仍然受支持,但即将弃用。我们建议迁移到 Project Rules 格式,以获得更好的控制、灵活性和可见性。

常见问题(FAQ)

为什么我的规则没有生效?

请检查规则类型。对于 Agent Requested 类型,确保已定义 description。对于 Auto Attached 类型,确保文件模式能匹配到引用的文件。

规则可以引用其他规则或文件吗?

可以。你可以用 @filename.ts 在规则上下文中包含文件。

可以从聊天中创建规则吗?

可以。你可以让 AI “turn this into a rule” 或 “make a reusable rule from this prompt”。

规则会影响 Cursor Tab 或其他 AI 功能吗?

不会。规则只会提供给 Agent 和 Cmd-K AI 模型。