规则
规则工作原理
大型语言模型在每次生成之间不会保留记忆。规则通过在提示层面提供持 久化、可复用的上下文来解决这一问题。
当规则生效时,其内容会被包含在模型上下文起始位置。这为AI提供持续指导,无论其正在生成代码、解析编辑内容还是协助工作流程。
项目规则
项目规则存储于.cursor/rules
目录。每个规则以文件形式保存并进行版本控制。可通过路径模式限定作用范围、手动触发或基于相关性自动包含。
项目规则用于:
- 编码特定领域的代码库知识
- 自动化项目专属工作流或模板
- 标准化代码风格或架构决策
规则结构
每个规则文件采用MDC格式(.mdc
),这种轻量级格式支持在单个文件中存储元数据和内容。规则支持以下类型:
规则类型 | 描述说明 |
---|---|
Always | 始终包含在模型上下文中 |
Auto Attached | 当引用匹配glob模式的文件时自动包含 |
Agent Requested | AI可主动调用的规则(需提供描述) |
Manual | 仅当显式调用@ruleName 时生效 |
MDC规则示例
---
description: RPC服务模板
globs:
alwaysApply: false
---
- 定义服务时使用内部RPC模式
- 服务名称始终采用snake_case格式
@service-template.ts
当规则触发时,@service-template.ts
这类引用文件将作为附加上下文包含。
嵌套规则
可在项目结构中通过.cursor/rules
目录组织嵌套规则,例如:
project/
.cursor/rules/ # 全局规则
backend/
server/
.cursor/rules/ # 后端专属规则
frontend/
.cursor/rules/ # 前端专属规则
嵌套 规则特性:
- 当引用其目录内文件时自动生效
- 仍可在上下文选择器和AI规则列表中访问
- 便于将领域规则就近关联相关代码
这在单体仓库(monorepos)或需要独立指导的多组件项目中尤其有用。
创建规则
通过新建Cursor规则
命令或前往Cursor设置 > 规则
创建规则。新规则将保存在.cursor/rules
目录。设置界面可查看所有规则及其状态。
生成规则
可通过/生成Cursor规则
命令在对话中直接创建规则。
当对话中已确定Agent行为规范时,此功能可快速生成可复用的规则。
最佳实践
优质规则应聚焦、可操作且作用域明确:
- 保持规则简洁(建议500行以内)
- 将复杂概念拆分为多个组合规则
- 必要时提供具体示例或引用文件
- 避免模糊指导(按编写内部文档的标准撰写)
- 当聊天中重复使用相同提示时转为规则复用
示例
Cursor代码库实例
以下为Cursor内部使用的规则:
Next.js、Cloudflare、Browserbase等供应商提供大量范例。社区贡献的规则可在多个众包资源库中获取。
用户规则
用户规则在Cursor设置 > 规则中定义。
这些规则适用于所有项目,始终包含在模型上下文中。可用于:
- 设定回复语言风格
- 添加个人编码偏好
示例:
请以简洁风格回复,避免不必要的重复或填充词
用户规则不支持MDC格式,仅限纯文本。
团队规则
当前暂不支持跨项目共享规则。
我们计划未来支持可跨团队项目引用的共享MDC规则。目前可通过以下方式实现:
- 将共享规则存储在专属仓库中
- 复制或符号链接至各项目的
.cursor/rules
目录
.cursorrules
(旧版)
项目根目录的.cursorrules
文件仍受支持,但将被弃用。建议迁移至项目规则格式以获得更精细的控制、灵活性和可见性。
常见问题
规则未生效怎么办?
检查规则类型:Agent Requested
类型需定义描述;Auto Attached
类型需确保文件模式匹配引用文件。
规则能否引用其他规则或文件?
支持。使用@filename.ts
语法可在规则上下文中包含文件。
能否通过聊天创建规则?
支持。可要求AI"将此转换为规则"或"基于此提示创建可复用规则"。
规则是否影响Cursor标签页或其他AI功能?
否。规则仅作用于Agent和Cmd-K AI模型。