Rules:给 Agent 持久指令
项目规则(.cursor/rules 的 .mdc 文件)、用户规则、团队规则和 AGENTS.md:规则类型与 frontmatter、glob 模式、创建方式与最佳实践。
规则给 Agent 提供系统级指令,把提示、脚本等打包在一起,让你在团队里更容易管理和共享工作流。Cursor 支持四种规则:
- 项目规则(Project Rules):存储在
.cursor/rules,纳入版本控制,范围限于你的代码库 - 用户规则(User Rules):对你的 Cursor 环境全局生效,由 Agent(Chat)使用
- 团队规则(Team Rules):从控制台管理的全团队规则,适用于 Team 和 Enterprise 套餐
- AGENTS.md:markdown 格式的智能体指令,是
.cursor/rules的简单替代
规则如何工作
大语言模型在两次补全之间不保留记忆,规则在提示层面提供持久的、可复用的上下文。规则被应用时,其内容包含在模型上下文的开头,为生成代码、解释编辑或协助工作流提供一致的指引。
项目规则
项目规则以 .mdc 文件的形式放在 .cursor/rules 里,纳入版本控制。它们可以用路径模式限定范围、手动调用或按相关性包含。用项目规则可以:编码你代码库的领域知识;自动化项目特定的工作流或模板;标准化风格或架构决策。
规则文件结构:每个规则是一个你可以随意命名的 .mdc 文件,项目规则必须使用 .mdc 扩展名。.cursor/rules 里的纯 .md 文件会被规则系统忽略,因为它没有指定 description、globs 和 alwaysApply 的 frontmatter;偏好纯 markdown 时用 AGENTS.md。可以用文件夹组织规则:
.cursor/rules/
react-patterns.mdc # 被识别为项目规则
api-guidelines.md # 被忽略(扩展名不对)
frontend/ # 用文件夹组织规则
components.mdc规则解剖:每个规则是带 frontmatter 元数据和内容的 markdown 文件,用类型下拉框控制规则如何应用,它改变 description、globs、alwaysApply 属性:
| 规则类型 | 说明 |
|---|---|
Always Apply | 应用于每个聊天会话 |
Apply Intelligently | Agent 根据描述判断相关时应用 |
Apply to Specific Files | 文件匹配指定模式时应用 |
Apply Manually | 在聊天里被 @ 提及时应用(如 @my-rule) |
三个 frontmatter 字段如何相互作用,决定规则何时被包含:
alwaysApply | description | globs | 行为 |
|---|---|---|---|
true | — | — | 总是包含,忽略 globs 和 description |
false | — | 已提供 | 匹配的文件在上下文里时自动附加 |
false | 已提供 | 省略 | Agent 阅读描述并在相关时拉入规则 |
false | 省略 | 省略 | 只有你在聊天里 @ 提及规则时才包含 |
例如,按文件模式自动附加的规则(frontmatter 写 globs: src/components/**/*.tsx 和 alwaysApply: false),正文写:
- Use named exports, not default exports
- Co-locate styles in a module CSS file next to the component
- Keep components under 200 lines. Extract subcomponents into the same
directory when a file grows beyond thatGlob 模式示例:用 globs 把规则限定到特定文件或目录,多个模式用逗号分隔:
| 模式 | 匹配 |
|---|---|
* | 任何单个文件名片段 |
** | 任意数量的目录(递归) |
*.ts | 根目录里所有 .ts 文件 |
**/*.ts | 任何目录里所有 .ts 文件 |
src/** | src/ 下任何位置的所有文件 |
src/**/*.tsx | src/ 下任何位置的所有 .tsx 文件 |
docs/**/*.md, docs/**/*.mdx | docs/ 下的 .md 和 .mdx 文件(逗号分隔) |
tailwind.config.* | 任意扩展名的 tailwind.config |
创建规则有两种方式:在聊天里用 /create-rule(在 Agent 里输入并描述你想要什么,Agent 生成带正确 frontmatter 的规则文件并保存到 .cursor/rules);或从 Customize:在侧边栏打开 Customize,进入 Rules,点 Add Rule,在 .cursor/rules 里创建新规则文件,在 Customize 里可以看到所有规则及其状态。
最佳实践
好的规则聚焦、可操作、范围明确:
- 规则保持在 500 行以内
- 把大规则拆成多个可组合的规则
- 提供具体的示例或引用的文件
- 避免含糊的指导,像写清晰的内部文档那样写规则
- 在聊天里重复提示时复用规则
- 引用文件而不是复制其内容:这让规则保持简短,并防止它们随代码变化而过时
规则里应避免:复制整个风格指南(用 linter,Agent 已经知道常见的风格约定);记录每个可能的命令(Agent 知道 npm、git、pytest 等常见工具)。