Skip to content

Cursor IDE 核心概念解析:Rules、Commands、Skills 与 Subagents

深入理解 Cursor IDE 中四大核心概念的本质、区别与最佳实践

📋 目录


核心概念

1. Rules(规则):AI 的行为指南

定义:Rules 是持久性的指令集,用于指导 AI 代理的行为、风格和决策方式。它们作用于系统提示词层面,为 AI 提供持续的工作原则。

特点

  • 持久性:一旦设置,会在所有对话中生效
  • 多层次:支持项目级、团队级、用户级规则
  • 灵活应用:支持多种应用模式

存储位置.cursor/rules/ 目录

文件格式.mdc 文件(Markdown with frontmatter)

四种应用模式

  1. Always Apply(总是应用)

    • 规则始终生效,适用于所有对话
    • 通过 alwaysApply: true 在 frontmatter 中设置
    • 适合:代码风格、命名规范、安全规则
  2. Auto Attached(自动附加)

    • AI 根据上下文判断是否应用
    • 通过 description 字段帮助 AI 判断相关性
    • 适合:特定场景的最佳实践
  3. File-Specific(按文件模式应用)

    • 通过 globs 模式匹配特定文件
    • 当 AI 处理匹配的文件时自动应用
    • 适合:针对特定文件类型的规则(如 **/*.test.ts 文件的测试规范)
  4. Manual(手动应用)

    • 通过 @ 符号手动触发(如 @code-style
    • 适合:临时性的特殊规则或按需使用的规则

示例

yaml
---
description: TypeScript 代码风格和规范
globs: ["**/*.ts", "**/*.tsx"]
alwaysApply: false
---
# TypeScript 代码风格规范

- 始终使用 TypeScript 严格模式
- 函数命名使用驼峰命名法
- 每个函数必须有 JSDoc 注释
- 禁止删除用户添加的调试代码
- 使用接口定义对象类型,避免使用 `any`

2. Commands(命令):快速操作工具

定义:Commands 是通过 / 符号在聊天中执行的快捷操作,可以快速完成特定任务。AI 代理也可以自主使用这些命令来执行多步骤工作流。

特点

  • 快速执行:通过 / 符号快速调用
  • 🤖 可自主执行:AI 可以自主使用命令完成复杂任务
  • 🔧 工具导向:专注于具体的操作和文件编辑

存储位置.cursor/commands/ 目录

使用方式

  • 在聊天中输入 / 后选择命令
  • AI 代理可以自主调用命令执行工作流

示例场景

  • /refactor:重构代码
  • /test:生成测试用例
  • /document:生成文档
  • /review:代码审查

示例

markdown
# .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,包含 namedescription 字段
  • description 帮助 AI 判断何时使用该技能
  • 文件主体包含专业知识和工作流程说明

示例

markdown
# .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 版本中可用

使用场景

  • 复杂的多步骤重构任务
  • 需要独立上下文的代码审查
  • 长时间运行的后台任务(如代码生成、文档编写)
  • 需要并行处理的不同任务

示例

markdown
# .cursor/agents/refactoring-agent.md
---
name: refactoring-agent
description: 代码重构专家,专注于大型重构任务
---

你是一个代码重构专家...

## 工作流程
1. 分析代码结构
2. 制定重构计划
3. 逐步执行重构
...

四者关系

层次结构

┌─────────────────────────────────────┐
│         Rules(规则层)              │
│   定义 AI 的工作原则和约束          │
└─────────────────────────────────────┘
              ↓ 指导
┌─────────────────────────────────────┐
│        Skills(能力层)              │
│   提供专业领域的知识和工作流         │
└─────────────────────────────────────┘
              ↓ 使用
┌─────────────────────────────────────┐
│       Commands(执行层)             │
│   执行具体的操作和任务               │
└─────────────────────────────────────┘
              ↓ 扩展
┌─────────────────────────────────────┐
│      Subagents(代理层)             │
│   独立的 AI 助手,处理复杂任务       │
└─────────────────────────────────────┘

协作模式

  1. Rules 指导所有层

    • Rules 定义了 AI 的行为准则
    • Skills、Commands 和 Subagents 在执行时都遵循这些规则
  2. Skills 封装复杂工作流

    • Skills 可以组合多个 Commands 完成复杂任务
    • Skills 内部可以调用 Commands
    • Skills 可以指导 Subagents 的工作
  3. Commands 执行具体操作

    • Commands 是具体的执行单元
    • 可以被 Skills 和 Subagents 调用,也可以独立使用
  4. Subagents 处理复杂任务

    • Subagents 拥有独立的上下文,适合处理长时间运行的任务
    • 可以并行运行多个 Subagents 处理不同任务
    • Subagents 可以使用 Skills 和 Commands

实际工作流程示例

用户请求:"重构这个函数,使其更易读"

1. Rules 生效:
   - 保持代码功能不变
   - 遵循项目命名规范
   - 添加必要的注释

2. AI 判断需要:
   - Skill: refactoring-skill(重构技能)
   - Command: /read-file(读取文件)
   - Command: /write-file(写入文件)

3. 执行流程:
   - 读取当前文件(Command)
   - 应用重构技能(Skill)
   - 遵循项目规则(Rules)
   - 写入重构后的代码(Command)

使用场景对比

特性RulesCommandsSkillsSubagents
主要用途定义行为准则快速执行操作提供专业能力独立处理复杂任务
应用范围全局/项目级任务级领域级任务级(独立上下文)
触发方式自动/手动/Glob/ 符号AI 判断或手动手动或自动触发
文件格式.mdc.mdSKILL.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 最佳实践

原则:简洁、明确、可执行

markdown
✅ 好的 Rules:
- 使用 TypeScript 严格模式
- 函数命名使用动词开头(如 getData、setValue)
- 每个公共 API 必须有 JSDoc 注释
- 禁止删除用户添加的调试代码

❌ 不好的 Rules:
- 写好的代码(太模糊)
- 尽量使用最佳实践(不够具体)
- 代码要优雅(主观性强)

组织建议

  • 按主题分类(代码风格、安全、测试等)
  • 使用清晰的文件名(code-style.mdcsecurity.mdc
  • 使用 kebab-case 命名(如 testing-standards.mdc
  • 每个文件专注于单一主题,避免规则冲突和重复
  • 使用 YAML frontmatter 配置应用模式

2. Commands 最佳实践

原则:单一职责、可组合

markdown
✅ 好的 Commands:
- /test:生成单元测试
- /doc:生成 API 文档
- /lint:运行代码检查

❌ 不好的 Commands:
- /everything:做所有事情(职责不清)
- /magic:自动修复所有问题(不可控)

设计建议

  • 每个 Command 专注于一个任务
  • 提供清晰的输入输出说明
  • 支持 AI 自主调用

3. Skills 最佳实践

原则:专业、完整、可复用

markdown
✅ 好的 Skills:
- api-testing-skill:完整的 API 测试工作流
- database-design-skill:数据库设计专业知识
- refactoring-skill:代码重构最佳实践

❌ 不好的 Skills:
- simple-edit:简单编辑(应该用 Command)
- project-specific:项目特定规则(应该用 Rules)

设计建议

  • 遵循 agentskills.io 标准格式
  • 提供清晰的工作流程说明
  • 包含示例和使用场景
  • 确保跨项目可复用性

4. Subagents 最佳实践

原则:独立、专注、可复用

markdown
✅ 好的 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

优先级原则

  1. Rules 优先:所有操作都遵循 Rules
  2. Skills 封装:复杂任务使用 Skills
  3. Commands 执行:具体操作使用 Commands
  4. Subagents 扩展:需要独立上下文时使用 Subagents

避免冲突

  • Rules 之间不要冲突(统一管理)
  • Skills 和 Commands 不要重复(明确职责)
  • Subagents 与主对话保持独立(避免上下文污染)
  • 保持层次清晰(Rules → Skills → Commands → Subagents)

总结

核心要点

  1. Rules 是 AI 的"宪法",定义了基本行为准则

    • 使用 .mdc 文件格式,包含 YAML frontmatter
    • 支持 Always Apply、Auto Attached、File-Specific、Manual 四种应用模式
  2. Commands 是 AI 的"工具",执行具体操作

    • 通过 / 符号快速调用
    • AI 可以自主使用命令完成工作流
  3. Skills 是 AI 的"专业知识",提供领域能力

    • 遵循 agentskills.io 开放标准
    • 跨平台可复用,仅在 Nightly 版本可用
  4. Subagents 是 AI 的"独立助手",处理复杂任务

    • 拥有独立的上下文环境
    • 可以并行运行,适合长时间任务
    • 仅在 Nightly 版本可用

选择指南

需求类型推荐方案
代码风格规范Rules
快速执行操作Commands
专业领域任务Skills
项目特定约束Rules
跨项目复用Skills
简单自动化Commands
独立上下文任务Subagents
长时间后台任务Subagents
并行处理任务Subagents

实践建议

  1. 从 Rules 开始:先定义项目的基本规则

    • 使用 .mdc 格式,包含 YAML frontmatter
    • 合理配置 alwaysApplyglobsdescription 字段
  2. 按需添加 Commands:为常用操作创建快捷命令

    • 保持单一职责,每个命令专注一个任务
  3. 逐步引入 Skills:为复杂领域任务创建专业技能

    • 遵循 agentskills.io 标准格式
    • 确保跨项目可复用性
  4. 谨慎使用 Subagents:仅在需要独立上下文时使用

    • 避免创建过多子代理
    • 确保子代理职责清晰
  5. 定期审查:保持 Rules、Commands、Skills、Subagents 的清晰和一致性

未来展望

随着 Cursor IDE 的发展,这四个概念将继续演进:

  • Rules 将更加智能和上下文感知,支持更精细的控制
  • Commands 将支持更复杂的自动化和工作流编排
  • Skills 将形成更丰富的生态系统,实现更好的跨平台复用
  • Subagents 将支持更强大的并行处理和协作能力

📚 参考资源


最后更新:2026-01-16