跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

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 IntelligentlyAgent 根据描述判断相关时应用
Apply to Specific Files文件匹配指定模式时应用
Apply Manually在聊天里被 @ 提及时应用(如 @my-rule)

三个 frontmatter 字段如何相互作用,决定规则何时被包含:

alwaysApplydescriptionglobs行为
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 that

Glob 模式示例:用 globs 把规则限定到特定文件或目录,多个模式用逗号分隔:

模式匹配
*任何单个文件名片段
**任意数量的目录(递归)
*.ts根目录里所有 .ts 文件
**/*.ts任何目录里所有 .ts 文件
src/**src/ 下任何位置的所有文件
src/**/*.tsxsrc/ 下任何位置的所有 .tsx 文件
docs/**/*.md, docs/**/*.mdxdocs/ 下的 .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 等常见工具)。