Cursor IDE 核心概念解析:Rules、Commands、Skills 与 Subagents
深入理解 Cursor IDE 中四大核心概念的本质、区别与最佳实践
📋 目录
核心概念
1. Rules(规则):AI 的行为指南
定义:Rules 是持久性的指令集,用于指导 AI 代理的行为、风格和决策方式。它们作用于系统提示词层面,为 AI 提供持续的工作原则。
特点:
- ✅ 持久性:一旦设置,会在所有对话中生效
- ✅ 多层次:支持项目级、团队级、用户级规则
- ✅ 灵活应用:支持多种应用模式
存储位置:.cursor/rules/ 目录
文件格式:.mdc 文件(Markdown with frontmatter)
四种应用模式:
Always Apply(总是应用)
- 规则始终生效,适用于所有对话
- 通过
alwaysApply: true在 frontmatter 中设置 - 适合:代码风格、命名规范、安全规则
Auto Attached(自动附加)
- AI 根据上下文判断是否应用
- 通过
description字段帮助 AI 判断相关性 - 适合:特定场景的最佳实践
File-Specific(按文件模式应用)
- 通过
globs模式匹配特定文件 - 当 AI 处理匹配的文件时自动应用
- 适合:针对特定文件类型的规则(如
**/*.test.ts文件的测试规范)
- 通过
Manual(手动应用)
- 通过
@符号手动触发(如@code-style) - 适合:临时性的特殊规则或按需使用的规则
- 通过
示例:
---
description: TypeScript 代码风格和规范
globs: ["**/*.ts", "**/*.tsx"]
alwaysApply: false
---
# TypeScript 代码风格规范
- 始终使用 TypeScript 严格模式
- 函数命名使用驼峰命名法
- 每个函数必须有 JSDoc 注释
- 禁止删除用户添加的调试代码
- 使用接口定义对象类型,避免使用 `any`2. Commands(命令):快速操作工具
定义:Commands 是通过 / 符号在聊天中执行的快捷操作,可以快速完成特定任务。AI 代理也可以自主使用这些命令来执行多步骤工作流。
特点:
- ⚡ 快速执行:通过
/符号快速调用 - 🤖 可自主执行:AI 可以自主使用命令完成复杂任务
- 🔧 工具导向:专注于具体的操作和文件编辑
存储位置:.cursor/commands/ 目录
使用方式:
- 在聊天中输入
/后选择命令 - AI 代理可以自主调用命令执行工作流
示例场景:
/refactor:重构代码/test:生成测试用例/document:生成文档/review:代码审查
示例:
# .cursor/commands/refactor.md
你是一个代码重构专家。当用户调用此命令时:
1. 分析当前代码结构
2. 识别可以改进的地方
3. 提供重构建议
4. 执行重构并保持功能不变3. Skills(技能):可移植的知识包
定义:Skills 是可移植的知识包,为 AI 提供专业领域的能力。它们遵循开放标准(agentskills.io),可以跨平台使用。
特点:
- 🌐 跨平台:遵循开放标准,可在不同 AI 工具间共享
- 🎯 专业能力:封装特定领域的专业知识和工作流
- 🤔 智能触发:AI 可以判断何时需要某个技能
- 📦 可复用:可以被多个项目共享
存储位置:.cursor/skills/<skill-name>/ 目录(以 SKILL.md 文件形式)
注意:Skills 功能目前仅在 nightly 版本中可用
文件结构:
- 必须包含 YAML frontmatter,包含
name和description字段 description帮助 AI 判断何时使用该技能- 文件主体包含专业知识和工作流程说明
示例:
# .cursor/skills/api-testing/SKILL.md
---
name: api-testing-agent
description: API 测试专家,能够生成测试用例和执行 API 测试
---
你是一个 API 测试专家...
## 工作流程
1. 分析 API 端点
2. 生成测试用例
3. 执行测试并验证结果
...4. Subagents(子代理):独立的 AI 助手
定义:Subagents 是独立的 AI 助手,拥有隔离的上下文环境,可以在后台或并行运行,处理复杂的多步骤任务。
特点:
- 🔄 独立上下文:每个子代理拥有独立的对话上下文
- ⚡ 并行执行:可以同时运行多个子代理处理不同任务
- 🎯 专注任务:专注于特定领域的复杂工作流
- 🔌 后台运行:可以在后台执行长时间运行的任务
存储位置:.cursor/agents/ 目录(以 .md 文件形式,包含 YAML frontmatter)
注意:Subagents 功能目前仅在 nightly 版本中可用
使用场景:
- 复杂的多步骤重构任务
- 需要独立上下文的代码审查
- 长时间运行的后台任务(如代码生成、文档编写)
- 需要并行处理的不同任务
示例:
# .cursor/agents/refactoring-agent.md
---
name: refactoring-agent
description: 代码重构专家,专注于大型重构任务
---
你是一个代码重构专家...
## 工作流程
1. 分析代码结构
2. 制定重构计划
3. 逐步执行重构
...四者关系
层次结构
┌─────────────────────────────────────┐
│ Rules(规则层) │
│ 定义 AI 的工作原则和约束 │
└─────────────────────────────────────┘
↓ 指导
┌─────────────────────────────────────┐
│ Skills(能力层) │
│ 提供专业领域的知识和工作流 │
└─────────────────────────────────────┘
↓ 使用
┌─────────────────────────────────────┐
│ Commands(执行层) │
│ 执行具体的操作和任务 │
└─────────────────────────────────────┘
↓ 扩展
┌─────────────────────────────────────┐
│ Subagents(代理层) │
│ 独立的 AI 助手,处理复杂任务 │
└─────────────────────────────────────┘协作模式
Rules 指导所有层
- Rules 定义了 AI 的行为准则
- Skills、Commands 和 Subagents 在执行时都遵循这些规则
Skills 封装复杂工作流
- Skills 可以组合多个 Commands 完成复杂任务
- Skills 内部可以调用 Commands
- Skills 可以指导 Subagents 的工作
Commands 执行具体操作
- Commands 是具体的执行单元
- 可以被 Skills 和 Subagents 调用,也可以独立使用
Subagents 处理复杂任务
- Subagents 拥有独立的上下文,适合处理长时间运行的任务
- 可以并行运行多个 Subagents 处理不同任务
- Subagents 可以使用 Skills 和 Commands
实际工作流程示例
用户请求:"重构这个函数,使其更易读"
1. Rules 生效:
- 保持代码功能不变
- 遵循项目命名规范
- 添加必要的注释
2. AI 判断需要:
- Skill: refactoring-skill(重构技能)
- Command: /read-file(读取文件)
- Command: /write-file(写入文件)
3. 执行流程:
- 读取当前文件(Command)
- 应用重构技能(Skill)
- 遵循项目规则(Rules)
- 写入重构后的代码(Command)使用场景对比
| 特性 | Rules | Commands | Skills | Subagents |
|---|---|---|---|---|
| 主要用途 | 定义行为准则 | 快速执行操作 | 提供专业能力 | 独立处理复杂任务 |
| 应用范围 | 全局/项目级 | 任务级 | 领域级 | 任务级(独立上下文) |
| 触发方式 | 自动/手动/Glob | / 符号 | AI 判断或手动 | 手动或自动触发 |
| 文件格式 | .mdc | .md | SKILL.md | .md |
| 可移植性 | 项目特定 | 项目特定 | 跨平台标准 | 项目特定 |
| 复杂度 | 简单规则 | 单一操作 | 复杂工作流 | 复杂多步骤任务 |
| 上下文 | 共享上下文 | 共享上下文 | 共享上下文 | 独立上下文 |
| 版本要求 | 稳定版 | 稳定版 | Nightly 版 | Nightly 版 |
何时使用 Rules?
✅ 适合使用 Rules 的场景:
- 代码风格和规范(命名、格式、注释)
- 安全约束(禁止删除、禁止硬编码密钥)
- 项目特定的约定(测试覆盖率要求、文档要求)
- 团队协作规范
❌ 不适合使用 Rules 的场景:
- 一次性操作(应该用 Commands)
- 需要复杂逻辑的任务(应该用 Skills)
- 需要用户交互的流程
何时使用 Commands?
✅ 适合使用 Commands 的场景:
- 快速执行单一操作(生成测试、格式化代码)
- 需要用户明确触发的任务
- 简单的自动化脚本
❌ 不适合使用 Commands 的场景:
- 需要复杂决策的工作流(应该用 Skills)
- 需要跨多个文件的协调操作(应该用 Skills)
- 需要专业领域知识的任务(应该用 Skills)
何时使用 Skills?
✅ 适合使用 Skills 的场景:
- 需要专业领域知识(API 测试、数据库设计)
- 复杂多步骤工作流(重构、迁移、优化)
- 需要跨项目复用的能力
- 需要 AI 智能判断何时使用的场景
❌ 不适合使用 Skills 的场景:
- 简单的代码编辑(应该用 Commands)
- 项目特定的规则(应该用 Rules)
- 一次性任务(应该用 Commands)
何时使用 Subagents?
✅ 适合使用 Subagents 的场景:
- 需要独立上下文的复杂任务(避免干扰主对话)
- 长时间运行的后台任务(代码生成、文档编写)
- 需要并行处理多个不同任务
- 需要隔离执行环境的敏感操作
❌ 不适合使用 Subagents 的场景:
- 简单的快速操作(应该用 Commands)
- 需要与主对话上下文交互的任务
- 一次性简单任务(应该用 Commands)
最佳实践
1. Rules 最佳实践
原则:简洁、明确、可执行
✅ 好的 Rules:
- 使用 TypeScript 严格模式
- 函数命名使用动词开头(如 getData、setValue)
- 每个公共 API 必须有 JSDoc 注释
- 禁止删除用户添加的调试代码
❌ 不好的 Rules:
- 写好的代码(太模糊)
- 尽量使用最佳实践(不够具体)
- 代码要优雅(主观性强)组织建议:
- 按主题分类(代码风格、安全、测试等)
- 使用清晰的文件名(
code-style.mdc、security.mdc) - 使用 kebab-case 命名(如
testing-standards.mdc) - 每个文件专注于单一主题,避免规则冲突和重复
- 使用 YAML frontmatter 配置应用模式
2. Commands 最佳实践
原则:单一职责、可组合
✅ 好的 Commands:
- /test:生成单元测试
- /doc:生成 API 文档
- /lint:运行代码检查
❌ 不好的 Commands:
- /everything:做所有事情(职责不清)
- /magic:自动修复所有问题(不可控)设计建议:
- 每个 Command 专注于一个任务
- 提供清晰的输入输出说明
- 支持 AI 自主调用
3. Skills 最佳实践
原则:专业、完整、可复用
✅ 好的 Skills:
- api-testing-skill:完整的 API 测试工作流
- database-design-skill:数据库设计专业知识
- refactoring-skill:代码重构最佳实践
❌ 不好的 Skills:
- simple-edit:简单编辑(应该用 Command)
- project-specific:项目特定规则(应该用 Rules)设计建议:
- 遵循 agentskills.io 标准格式
- 提供清晰的工作流程说明
- 包含示例和使用场景
- 确保跨项目可复用性
4. Subagents 最佳实践
原则:独立、专注、可复用
✅ 好的 Subagents:
- refactoring-agent:专注于大型重构任务
- code-review-agent:独立的代码审查助手
- documentation-agent:后台生成文档
❌ 不好的 Subagents:
- simple-edit:简单编辑(应该用 Command)
- everything-agent:职责不清设计建议:
- 每个 Subagent 专注于特定领域
- 提供清晰的工作流程说明
- 确保可以独立运行,不依赖主对话上下文
- 合理使用,避免创建过多子代理
5. 协调工作最佳实践
分层设计:
项目根目录
├── .cursor/
│ ├── rules/ # 项目规则(最底层)
│ │ ├── code-style.mdc
│ │ └── security.mdc
│ ├── commands/ # 项目命令(中间层)
│ │ ├── test.md
│ │ └── deploy.md
│ ├── skills/ # 专业技能(能力层)
│ │ ├── api-testing/
│ │ │ └── SKILL.md
│ │ └── refactoring/
│ │ └── SKILL.md
│ └── agents/ # 子代理(扩展层,Nightly)
│ ├── refactoring-agent.md
│ └── review-agent.md优先级原则:
- Rules 优先:所有操作都遵循 Rules
- Skills 封装:复杂任务使用 Skills
- Commands 执行:具体操作使用 Commands
- Subagents 扩展:需要独立上下文时使用 Subagents
避免冲突:
- Rules 之间不要冲突(统一管理)
- Skills 和 Commands 不要重复(明确职责)
- Subagents 与主对话保持独立(避免上下文污染)
- 保持层次清晰(Rules → Skills → Commands → Subagents)
总结
核心要点
Rules 是 AI 的"宪法",定义了基本行为准则
- 使用
.mdc文件格式,包含 YAML frontmatter - 支持 Always Apply、Auto Attached、File-Specific、Manual 四种应用模式
- 使用
Commands 是 AI 的"工具",执行具体操作
- 通过
/符号快速调用 - AI 可以自主使用命令完成工作流
- 通过
Skills 是 AI 的"专业知识",提供领域能力
- 遵循 agentskills.io 开放标准
- 跨平台可复用,仅在 Nightly 版本可用
Subagents 是 AI 的"独立助手",处理复杂任务
- 拥有独立的上下文环境
- 可以并行运行,适合长时间任务
- 仅在 Nightly 版本可用
选择指南
| 需求类型 | 推荐方案 |
|---|---|
| 代码风格规范 | Rules |
| 快速执行操作 | Commands |
| 专业领域任务 | Skills |
| 项目特定约束 | Rules |
| 跨项目复用 | Skills |
| 简单自动化 | Commands |
| 独立上下文任务 | Subagents |
| 长时间后台任务 | Subagents |
| 并行处理任务 | Subagents |
实践建议
从 Rules 开始:先定义项目的基本规则
- 使用
.mdc格式,包含 YAML frontmatter - 合理配置
alwaysApply、globs、description字段
- 使用
按需添加 Commands:为常用操作创建快捷命令
- 保持单一职责,每个命令专注一个任务
逐步引入 Skills:为复杂领域任务创建专业技能
- 遵循 agentskills.io 标准格式
- 确保跨项目可复用性
谨慎使用 Subagents:仅在需要独立上下文时使用
- 避免创建过多子代理
- 确保子代理职责清晰
定期审查:保持 Rules、Commands、Skills、Subagents 的清晰和一致性
未来展望
随着 Cursor IDE 的发展,这四个概念将继续演进:
- Rules 将更加智能和上下文感知,支持更精细的控制
- Commands 将支持更复杂的自动化和工作流编排
- Skills 将形成更丰富的生态系统,实现更好的跨平台复用
- Subagents 将支持更强大的并行处理和协作能力
📚 参考资源
- Cursor Rules 官方文档
- Cursor Commands 官方文档
- Cursor Skills 官方文档
- Cursor Subagents 官方文档
- Agent Skills 标准
- Cursor 最佳实践
最后更新:2026-01-16
