Agents(角色制衡)
一. 什么是 Agents(角色制衡)
Rules 约束行为,Skills 标准化操作,但是单一的 Agent 同时写需求、写代码、又测试自己的代码,天然倾向于确认而非质疑。角色制衡通过将研发阶段拆分为多个独立角色来解决这个问题----写代码的人不审核代码,审核代码的人不做测试,测试的人不写用例···
1. 角色契约结构
二. 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 Frontmatterdescription:设计规范alwaysApply:trueupdatedAt: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/目录下生成对应的 RuleAgent 生成 Rule 示例
---description:alwaysApply:trueenabled:trueupdatedAt:2026-06-11T09:20:20.348Zprovider:---# 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 是否生效
- 结果满足预期
