相信你在使用 Cursor 写一些 demo 程序的时候,经常会遇到重复发送给大模型一些提示词。
实际上,这些重复的提示词写成 rule 再合适不过了。
本篇文章介绍 Cursor Rule。相信读完这篇文章,再也不用发愁怎么写 Cursor Rule 了。
1. 什么是 Cursor Rule?
Cursor Rule 用来控制 Agent 模型需要重复使用的提示词。
在开发一个项目时,有些约定是需要从头到尾遵守的,比如编码规范。这个时候,使用 Rule 就特别合适。
Cursor 支持三种类型的 Rule:
- Project 级别:存储在
.cursor/rules
,范围是代码库 - User 级别:Cursor 的全局规则。在编辑器的设置中定义并始终使用。例如,让 Agent 始终以简体中文回复。
- Memories:根据我们在 Chat 中的对话自动生成规则。
2. Cursor Rule 是怎么工作的?
Rule 通过在提示词级别提供持久的、可重用的上下文来解决这个问题。
简单来说,我们发给模型的提示词=基础提示词 + Rule + 上下文信息。
当存在不同类型的 Rule 时,Cursor 处理 Rule 的优先级如下:
- 文件特定规则:针对某个文件的直接规则
- 项目级别规则:项目配置文件的规则。
- 用户级别规则:也就是全局规则。
3. 怎么使用 Project Rule?
项目规则位于 .cursor/rules
中。每个规则都存储为文件并受版本控制。
使用项目规则可以用来:
- 对代码库的知识进行编码
- 自动执行与项目有关的工作流或模板
- 标准化样式或架构决策
每个规则文件都以 MDC (.mdc) 编写,MDC 是一种轻量级格式,支持在单个文件中存储元数据和内容,可以理解为阉割版的 markdown 格式。规则支持以下类型:
- Always:始终包含在模型上下文中。
- Auto Attached:设置模式匹配,当引用的文件与模式匹配时使用
- Agent Request:AI自动决定何时使用它,但必须提供触发 AI 自动调用的描述。例如,当XXX时候,调用某些规则文件。
- Manual:仅在 Chat 对话框中使用
@ruleName
时包含这个规则文件。
例如,我们在 Cursor 的设置页面创建一个项目规则:
那么,MDC 文件应该写什么呢?
这里,我以 google C++ 编码规范为例写了一个 C++ 编码规范的 rule。由于文本过长,就不全部展示了。实际上,也可以让大模型生成。
然后,让 Agent 检查一个文件是否遵循了 google C++ 编程规范并进行修改:
所以,你可以看到,MDC 文件的语法类似于 markdown,当然并不是完全支持 markdown 的语法。
另外,项目级的 Rule 是可以有嵌套结构的,举个例子:
project/
.cursor/rules/ # Project-wide rules
backend/
server/
.cursor/rules/ # Backend-specific rules
frontend/
.cursor/rules/ # Frontend-specific rules
4. 怎么使用 User Rule?
User rule 是一个全局设置,在 Cursor Settings -> Rules
可以设置。比如,我们可以设置回复的语言和风格:
请以简洁的风格回复。必须使用简体中文回复。
5. 怎么使用 Memories Rule?
Memories Rule 一般在我们和大模型对话了几轮之后,让大模型根据历史对话生成 rule,在 chat 对话框中,可以使用 /generate cursor rules
生成 rule:
6. 最佳使用指南
因为 rules 本质上 prompt,所以好的 rules 一定是指令清晰的、可执行的以及有边界的。
总结来说就是,对什么对象何时执行什么操作。
当然,官网还给出了一些建议:
- rule 在 500 行以内
- 将大的 rule 拆解成小的、可组合的 rule
- 提供具体的示例或参考文件
- 避免含糊不清的指导
- 在聊天中重复提示时,重复使用规则
全文完。
我是一梵AI编程,聚焦Python/C++以及AI变现。关注我,让你变强、赚到钱。