在 Cursor 里想让 AI 按项目规范写代码、不用每次重复讲项目背景,需要先搞清三种「规则/记忆」机制的区别。本文对比 User RulesProject Rules(.cursor/rules/*.mdcAGENTS.md,并给出选型与组合建议。


一、为什么需要「持久规则」?

本人在做机器学习项目时遇到了上下文过长、需要agent去事先理解的文档内容过多,若重开一个对话则需要重新读取一遍大量文档的问题,而cursor对话的长度又有限,因此针对这个问题搜索了在cursor中预设项目规则的方法

大模型不会记住上一次对话的内容。每次新开 Chat,如果不额外提供上下文,AI 就不知道你的技术栈、编码约定和业务背景。

Cursor 提供了多层级的规则机制,把「项目背景」「编码规范」「个人偏好」持久化,在 Agent 对话时自动注入上下文,避免反复说明。


二、三种机制一句话区分

类型 存在位置 作用范围 主要用途
User Rules Cursor 设置(本机/账号) 所有项目 个人习惯、沟通风格
Project Rules 项目 .cursor/rules/*.mdc 当前仓库 项目规范、架构约定
AGENTS.md 项目根目录或子目录 当前仓库(及子目录) 简单、可跨工具的项目说明

三、User Rules:个人全局规则

3.1 是什么

Cursor Settings → Rules → User Rules 中配置,保存在你的 Cursor 环境,不会进入 Git 仓库

3.2 典型内容

  • 回复使用中文
  • 不要未经要求就执行 git commit
  • 回答简洁,避免废话
  • 个人编码偏好(仅适用于自己的习惯)

3.3 特点

  • 全局生效:打开任何项目,Agent 对话都会带上
  • 个人私有:同事 clone 同一份代码也看不到
  • 写法简单:纯文本,无 YAML、无 globs
  • 能力有限:不能按文件类型、不能按目录拆分
  • 仅影响 Agent 聊天:不影响 Tab 补全,也不影响 Cmd/Ctrl+K 行内编辑

3.4 适合放什么

适合:语言风格、沟通方式、个人工作流偏好
不适合:项目技术栈、团队编码规范、业务背景(这些应写在项目里)


四、Project Rules:.cursor/rules/*.mdc

4.1 是什么

Cursor 官方主推的结构化项目规则,存放在项目 .cursor/rules/ 目录下,使用 .mdc 扩展名(Markdown + YAML frontmatter),可提交到 Git,团队共享。

4.2 目录结构示例

你的项目/
├── .cursor/
│   └── rules/
│       ├── project-overview.mdc    # 项目背景(始终生效)
│       ├── vue-patterns.mdc        # Vue 专用规范
│       └── api-conventions.mdc     # 后端 API 规范
├── src/
└── ...

4.3 文件格式

---
description: Vue 组件编写规范
globs: **/*.vue
alwaysApply: false
---

# Vue 规范

- 使用 `<script setup lang="ts">`
- Props 必须定义类型
- 样式使用 scoped

4.4 Frontmatter 字段说明

字段 类型 说明
description string 规则描述,用于「智能应用」时让 Agent 判断是否相关
globs string 文件匹配模式,如 **/*.ts**/*.vue
alwaysApply boolean true 时每次对话都加载

4.5 四种生效模式

模式 配置方式 说明
Always Apply alwaysApply: true 每次对话都加载
Apply Intelligently description,无 globs Agent 根据描述判断是否相关
Apply to Specific Files 配置 globs 编辑或引用匹配文件时加载
Apply Manually 无 description、无 globs 在聊天中 @规则名 手动引用

4.6 特点

  • 精细控制:可按文件类型、按需加载、可手动引用
  • 可版本管理:提交 Git,团队统一规范
  • Cursor 专用:主要面向 Cursor Agent,跨工具能力弱于 AGENTS.md
  • 建议单条规则控制在 50 行以内,一个主题一个文件

4.7 适合放什么

  • 项目背景与技术栈(alwaysApply: true
  • 前端 / 后端 / 测试分文件规范(配合 globs
  • 需要「只在改某类文件时生效」的约定

五、AGENTS.md:通用 Markdown 说明

5.1 是什么

项目根目录(或子目录)下的纯 Markdown 文件,无 YAML frontmatter。Cursor 官方将其描述为 .cursor/rules简单替代方案,同时也是较通用的 Agent 说明格式,可被多种 AI 编程工具读取。

5.2 文件示例

# 项目说明

## 技术栈

- 前端:Vue 3 + TypeScript + Element Plus
- 后端:Spring Boot + MyBatis

## 编码约定

- 组件使用 Composition API + `<script setup>`
- API 请求统一走 `src/utils/request.ts`
- 命名:组件 PascalCase,工具函数 camelCase

5.3 嵌套目录支持

project/
├── AGENTS.md              # 全项目生效
├── frontend/
│   └── AGENTS.md          # 只在 frontend/ 下工作时生效
└── backend/
    └── AGENTS.md          # 只在 backend/ 下工作时生效
  • 根目录 AGENTS.md → 整个工作区
  • 子目录 AGENTS.md → 在该目录及其子目录内工作时生效
  • 更具体的目录规则优先于上层

AGENTS.md 会被 Cursor 自动注入上下文,不是 Agent 每次用 Read 工具去读
和「你在对话里 @ 某个文件让 AI 读一遍」不一样。Cursor 会在 Agent 聊天开始时,按规则把匹配的 AGENTS.md 内容放进模型上下文里,Agent 一般不需要、也通常不会主动去 Read 这个文件。

5.4 特点

  • 写法最简单:纯 Markdown,无元数据
  • 作用范围靠目录位置推断:不支持 globs、不支持 alwaysApply
  • 跨工具通用:适合团队里同时使用多种 AI 编程工具
  • 不适合复杂拆分:规则很多时不如 .mdc 好管理

5.5 适合放什么

  • 项目是什么、怎么跑、架构概览
  • Monorepo 里按子项目分说明
  • 需要给 Cursor 以外的 AI 工具共用的文档

六、三者全面对比

6.1 作用范围

User Rules           →  所有项目、所有 Agent 对话
AGENTS.md(根目录)   →  整个当前项目
AGENTS.md(子目录)   →  该目录及子目录
.cursor/rules/*.mdc  →  当前项目,可按条件加载

6.2 是否可共享、可版本管理

User Rules .mdc AGENTS.md
提交到 Git
团队共享
换电脑 跟 Cursor 账号/设置 跟仓库走 跟仓库走

6.3 控制能力

能力 User Rules .mdc AGENTS.md
始终加载 ✅ 默认全局 alwaysApply: true ✅ 根目录 ≈ 全项目
按文件类型 globs
按需智能加载 description
手动 @ 引用
跨 AI 工具

6.4 .mdcAGENTS.md 的额外对比

维度 .cursor/rules/*.mdc AGENTS.md
定位 Cursor 原生结构化规则 通用 Agent 说明
格式 Markdown + YAML frontmatter 纯 Markdown
生效控制 四种模式 + globs 靠文件所在目录
管理界面 Cursor Settings 可视化管理 直接编辑 Markdown
选型建议 只用 Cursor、规则会变多 追求简单或需跨工具

6.5 冲突时的优先级

Cursor 官方顺序(前者优先):

Team Rules  →  Project Rules / AGENTS.md  →  User Rules

若 User Rules 与项目规则矛盾,以项目规则为准


七、还有第四种:Cursor Memories

除上述三种外,Cursor 还支持 Memories(对话记忆):在聊天中说「记住:本项目用 Vue 3」,AI 会保存为记忆,跨对话可用。

项目规则 / AGENTS.md Memories
存储 项目文件(可 Git) Cursor 自动提取
可控性 高,直接编辑 由 AI 管理
适合 结构化规范 零散偏好

建议:项目背景、编码规范优先写进 .mdcAGENTS.md,比 Memory 更稳定、可版本管理。


八、怎么选?实战建议

8.1 按需求选型

你的需求 推荐方案
一份项目背景,始终生效 根目录 AGENTS.md,或 .mdcalwaysApply: true
Vue / 后端规则分开 .mdc + globs
还要给 Claude Code、Copilot 等用 优先 AGENTS.md
规则会越来越多 .mdc 拆成多个文件
只对你个人有用的偏好 User Rules
不想每次重复讲项目背景 别放 User Rules;放项目里

8.2 经验法则

  • 只对你自己有用 → User Rules
  • 对整个项目 / 团队有用.mdcAGENTS.md
  • 项目背景放 User Rules →换项目会污染上下文,且无法共享

8.3 推荐组合(多数团队)

project/
├── AGENTS.md                    # 通用:项目背景、架构、跨工具约定
└── .cursor/rules/
    ├── vue-patterns.mdc         # Cursor 专用:Vue 文件规范
    └── api-conventions.mdc      # Cursor 专用:后端 API 规范

同时在 Cursor Settings 的 User Rules 里写个人偏好。


九、配置示例

9.1 User Rules(全局,Cursor 设置里写)

- 用中文回复
- 不要未经要求就 git commit
- 改动尽量小,不要过度设计

9.2 Project Rule(.cursor/rules/project-overview.mdc

---
description: 实训项目背景与规范
alwaysApply: true
---

# 学生管理系统

## 技术栈

- 前端:Vue 3 + Element Plus + TypeScript
- 后端:Spring Boot + MyBatis

## 编码约定

- 组件用 Composition API + `<script setup>`
- API 前缀 `/api`,统一封装在 `src/utils/request.ts`
- 组件 PascalCase,工具函数 camelCase

9.3 AGENTS.md(根目录,纯 Markdown 替代方案)

内容与上面类似,去掉 YAML frontmatter 即可。


十、快速上手步骤

方式 A:创建 Project Rules

  1. 在项目根目录创建 .cursor/rules/ 文件夹
  2. 新建 project-overview.mdc,设置 alwaysApply: true
  3. 写入项目背景与编码规范
  4. 提交到 Git,团队共享

方式 B:创建 AGENTS.md

  1. 在项目根目录新建 AGENTS.md
  2. 用 Markdown 写项目说明与规范
  3. 提交到 Git

方式 C:配置 User Rules

  1. 打开 Cursor Settings → Rules → User Rules
  2. 写入个人全局偏好
  3. 无需提交 Git

方式 D:让 AI 帮你生成

在 Cursor Agent 里说:

帮我在这个项目创建规则文件,技术栈是 xxx,编码规范是 xxx

或使用 /create-rule 命令,Agent 会自动生成带 frontmatter 的 .mdc 文件。


十一、总结

你想解决什么问题 用什么
个人沟通风格、全局偏好 User Rules
项目背景 + 精细按文件类型控制 .cursor/rules/*.mdc
简单项目说明 + 跨工具共享 AGENTS.md
两者都要 AGENTS.md + .mdc + User Rules 组合

核心原则:项目相关的写进仓库,个人相关的写在 User Rules。 这样 AI 每次对话都能自动带上项目上下文,你也不用反复解释「这个项目是什么、该怎么写代码」了。


Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐