Rules 规则 ¶
什么是 Cursor Rules? ¶
Cursor Rules 是一种系统级的指导工具,用于给 Agent 和 Cmd-K AI 提供持久的上下文、偏好或工作流程。简单来说,它就像一个“备忘录”,让 AI 每次工作时都能记住你希望它遵循的一些规则或指导方针。因为大型语言模型(LLM)在每次完成任务后不会保留记忆,Rules 就通过在每次提示开始时加入这些规则内容,确保 AI 始终有一致的指导。
Rules 的类型和工作原理 ¶
Cursor 支持三种类型的规则:项目规则(Project Rules)、用户规则(User Rules)和团队规则(Team Rules)。每种规则有不同的应用场景和设置方式。规则的工作原理是:当规则被应用时,它的内容会作为模型上下文的开头部分,这样 AI 无论是生成代码、解释编辑还是帮助工作流程,都能遵循这些指导。
下面我来逐一解释这三种规则:
1. 项目规则(Project Rules) ¶
- 位置:存储在项目的
.cursor/rules文件夹中,每个规则是一个单独的文件,并且可以进行版本控制。 - 用途:
- 记录关于代码库的特定领域知识。
- 自动化项目特定的工作流程或模板。
- 标准化代码风格或架构决策。
- 规则结构:规则文件使用一种叫 MDC(
.mdc)的轻量级格式编写,包含元数据和内容。规则类型有以下几种:Always:总是包含在模型上下文中。Auto Attached:当引用匹配特定模式的文件时自动包含。Agent Requested:AI 可以访问并决定是否包含,需要提供描述。Manual:只有在明确使用@ruleName提及时才包含。
- 嵌套规则:可以在项目结构中的不同目录下放置规则文件夹,这样当引用该目录中的文件时,规则会自动附加。非常适合在大型项目或多组件项目中为特定代码提供专门指导。
- 创建规则:可以通过
New Cursor Rule命令或在Cursor Settings > Rules中创建规则文件。 - 生成规则:在对话中使用
/Generate Cursor Rules命令,可以将对话中的决策直接生成规则,方便未来复用。
2. 用户规则(User Rules) ¶
- 位置:在
Cursor Settings > Rules中定义。 - 特点:适用于所有项目,总是包含在模型上下文中,不支持 MDC 格式,仅为纯文本。
- 用途:
- 设置回复语言或语气。
- 添加个人风格偏好。
- 例子:比如你可以设置规则让 AI 总是用简体中文回复,或者总是用幽默的语气。
3. 团队规则(Team Rules) ¶
- 现状:目前没有内置的跨项目共享规则功能。
- 解决方法:可以把共享规则存储在一个专门的仓库中,然后复制或链接到每个项目的
.cursor/rules目录。 - 未来计划:官方计划支持跨团队项目引用的共享 MDC 格式规则。
最佳实践 ¶
为了让规则更有效,建议遵循以下原则:
- 保持规则简洁,控制在 500 行以内。
- 将大概念拆分成多个可组合的小规则。
- 在有帮助时提供具体示例或引用文件。
- 避免模糊的指导,像写清晰的内部文档一样写规则。
- 当你发现自己在聊天中重复某些提示时,考虑将其转化为规则复用。
一些例子 ¶
Cursor 内部使用的规则包括了很多实际案例,比如来自 Next.js、Cloudflare 等提供商的规则。社区也有很多共享的规则集合和在线仓库,可以参考学习。
遗留格式 .cursorrules ¶
项目根目录下的 .cursorrules 文件仍然被支持,但将被弃用。建议迁移到新的项目规则格式,以便获得更多的控制、灵活性和可见性。
常见问题解答(FAQ) ¶
- 为什么我的规则没有被应用? 检查规则类型。对于
Agent Requested,确保定义了描述;对于Auto Attached,确保文件模式匹配引用的文件。 - 规则可以引用其他规则或文件吗? 可以,使用
@filename.ts可以在规则上下文中包含文件。 - 可以从聊天中创建规则吗? 可以,请求 AI “将此变成规则”或“从此提示创建可复用规则”。
- 规则会影响 Cursor Tab 或其他 AI 功能吗? 不会,规则仅用于 Agent 和 Cmd-K AI 模型。
总结 ¶
Cursor Rules 是一个非常强大的工具,可以帮助你为 AI 提供持久的指导,让它更符合你的需求和工作流程。无论是项目特定的知识、个人偏好,还是团队共享的规则,都可以通过这种方式让 AI 更高效地工作。希望这个解释能帮助你更好地理解和使用 Cursor Rules!