Rules(行为约束)

一. 简介

Rules(行为约束) 是指开发者或用户通过自然语言或结构化指令,强制规定模型在生成内容时必须遵守的边界、风格、逻辑和禁忌。

Rules 的出现是为了解决 Agent 最常犯的低级错误,比如修改后不编译、不测试、擅自修改上游制品、使用错误的模型语法等。但因 Rules 是自然语言指令,而非程序化约束,故存在 AI 的遵守度会随着上下文的逐步复杂而下降的问题,这也是为什么需要后续的 Skills、Agents 和 Scripts 模块来逐步加固。


二. Rules 注入 Agent 的方式

Rules.mdc 文件形式存在于 ./cursor/rules/ 目录中,通过 YAML frontmatter 注册,由 cursor IDE激活模式 决定何时注入 Agent 上下文。

1. Cursor IDE(AI 辅助编程工具(AI Coding Assistants))

  • 什么是 Cursor IDE Cursor 是一款基于 VS Code 深度定制的 AI 原生代码编辑器,也就是我们经常听到的 Agent 助手 。它可以读取整个项目作为全局上下文,可以更精准定位问题并给出不会破坏现有架构的修改方案。

    在使用Cursor IDE的过程中,不需要安装任何额外的插件,也不需要手动在代码中引入(import),只需要按照它约定的目录结构和文件格式去创建文件,Cursor 就会自动识别并生效。

2. 激活模式

因为大语言模型(LLM)的上下文窗口是有限的,如果每次对话都把项目中所有的规则文件全部塞给 AI,会导致"信息过载"甚至影响 AI 的判断。因此,Cursor 设计了不同的"激活模式",让系统像智能路由一样,根据当前场景按需加载规则


三. 创建第一个 Rule

1. .mdc 文件结构

每个 Rule 文件由 YAML frontmatter + Markdown 正文组成 。frontmatter 是 cursor IDE 识别和注入 Rule的注册接口,不是装饰。

  • YAML frontmatter

    YAML Frontmatter (通常简称为 Frontmatter)是一种在纯文本文件(如 Markdown、HTML)的最顶部 嵌入结构化元数据(Metadata)的约定格式。

    一句话理解:如果把 AI 当作一个员工,.mdc 文件就是写给他的"员工手册"或"操作规范"。而 YAML frontmatter 就是这本手册的"封面"或"标签"。

    YAML Frontmatter编写格式:frontmatter 必须放在文件的第一行 ,并且用三根短横线 --- 包裹起来。里面通常使用 YAML 语法(键值对)来编写。

    • 一个典型的 .mdc 规则文件结构如下:

      yaml 复制代码
      ---
      # 这部分就是 YAML Frontmatter
      description: 设计规范
      alwaysApply: true
      updatedAt: 2026-05-18T01:19:41.034Z
      ---
      	
      # 这部分是正文内容(Markdown)
      # TATF 手机端测试完整规范
      > **📌 每次写新用例前,必须按顺序执行:【速查表逐项打勾】→【五步检查法】→ 写业务逻辑(每调API必查证)→【自验证流程】**
      > **⚠️ 历史教训:logcat start/stop、if __name__ 入口、__init__ 是最高频遗漏项,速查表中已用 ⚠️ 标记!**
      > **🚨 致命教训:API 方法名禁止凭记忆/猜测编写,必须在 tatf_aw 实际库或 Skill API 参考中验证存在后再使用!(曾因 `get_bluetooth_state_adb` 等不存在的方法导致运行报错)**

2. 创建 Rule 约束

  • 创建第一个约束,也可以直接拿别人的 Rule 文件放到自己项目的./cursor/rules/ 目录下,Agent 助手会自己扫描并注入
    • 我这里直接和 Agent 对话,让它给我的项目中添加一个代码规范的约束规则

    • Agent 在./cursor/rules/ 目录下生成对应的 Rule

    • Agent 生成 Rule 示例

      yaml 复制代码
      ---
      description: 
      alwaysApply: true
      enabled: true
      updatedAt: 2026-06-11T09:20:20.348Z
      provider: 
      ---
      
      # Python 项目编码规范
      
      ## 项目概述
      
      这是一个 **Python + pytest** 测试项目,包含:
      - `src/` --- 被测试的业务代码
      - `tests/` --- pytest 测试用例
      - `utils/` --- 工具脚本(API 调用、设备重启等)
      - `ai/` --- AI 相关模块(LangChain + 通义千问)
      - `data/` --- YAML 测试数据
      - `conftest.py` --- 全局 fixture 配置
      - `pytest.ini` --- pytest 配置
      
      ## 一、命名规范(核心约束)
      
      ### 1.1 驼峰命名强制要求
      
      **新增代码必须使用驼峰命名(camelCase)**,禁止使用下划线命名(snake_case)。
      
      | 类型 | 规范 | 示例 |
      |------|------|------|
      | 变量名 | lowerCamelCase | `deviceSn`, `userName`, `resultList` |
      | 函数名 | lowerCamelCase | `getUserInfo()`, `connectDb()`, `loadMapping()` |
      | 方法名 | lowerCamelCase | `sendMail()`, `getTopActivity()` |
      | 类名 | UpperCamelCase (PascalCase) | `SimpleTongyiQA`, `TestWithYaml` |
      | 模块常量 | UPPER_CASE(允许全大写+下划线) | `MAP_FILE`, `DEFAULT_TIMEOUT` |
      | 私有方法/变量 | `_` 前缀 + lowerCamelCase | `_provideDebugSuggestions` |
      
      ### 1.2 文件名命名
      
      - Python 文件:使用 **lowerCamelCase**,如 `replaceProjectName.py`
      - 测试文件:`test` 前缀 + camelCase,如 `testUserLogin.py`
      - 禁止:中文文件名、纯数字编号、无意义短名(如 `aaa.py`)
      
      ### 1.3 pytest 相关命名
      
      - 测试文件:`test` + CamelCase 描述
      - 测试类:`Test` 前缀 + PascalCase,如 `TestUserLogin`
      - 测试方法:`test` 前缀 + CamelCase 描述
      - fixture 函数:lowerCamelCase
      - 自定义标记:lowerCamelCase
    • 校验 Rule 是否生效

      • 结果满足预期

相关推荐
搬石头的马农1 小时前
御三家旗舰模型混战下的企业选型策略:GPT-5.6、Fable 5、Gemini 3.5 Pro 怎么选? - 微元算力(weytoken)
java·人工智能·python·gpt·ai编程
Artech1 小时前
[MAF预定义ChatClient中间件-08]OpenTelemetryChatClient-实现链路跟踪和性能监控
ai·agent·open telemetry·maf
DS随心转插件1 小时前
实测 AI 导出鸭!Markdown 转 Word 工具效果实测与质量解析
人工智能·ai·word·deepseek·ai导出鸭
happyness441 小时前
AI生成如何解决库版本冲突
人工智能·ai编程
没有腰的嘟嘟嘟1 小时前
Easy-agent介绍
ai·llm·agent·rag·skill·spring ai·mcp
xingyuzhisuan1 小时前
Redis 多级缓存落地聚合 API:重复请求降本 70% 实战数据
数据库·redis·缓存·ai
一锅炖出任易仙1 小时前
创梦汤锅学习日记day31
学习·ai
赛博三把手1 小时前
Codex + CC switch + GPT-5.5 国内免魔法使用教程:从注册 API 到接入Windown/macOS 桌面版,实操踩坑全记录
人工智能·ai编程