【干货】Cursor实用技巧
Commit Message
点这里可以快速帮你生成git提交信息。但如果你用过就会发现这里生成的是英文,且无法指定格式。
可以通过添加新rule来实现定制。

---
alwaysApply: true
---
所有 Git commit message 必须用中文书写。
格式遵循 Conventional Commits:type: description
type 取值:feat / fix / refactor / chore / docs / style / test / perf
description 用中文,不超过 72 字
示例:
feat: 添加用户登录接口
fix: 修复 token 过期未刷新问题
MCP
MCP(Model Context Protocol,模型上下文协议)简单说就是给 AI 装上一个通用的 USB 接口。第三方服务可以通过实现MCP为agent提供第三方能力。
比如GitHub MCP可以让agnet直接操作仓库。Notion MCP可以让agent读取你的知识库并续写内容。
在Cursor里可以通过打开Marketplace挑选MCP。

hook
Agent 生命周期的钩子 —— 用户可以在 Agent 干活的各个阶段插入自定义脚本,可以观察、拦截、修改它的行为。
cursor提供丰富的生命周期,比如使用工具的前后/修改文件的前后/Agent启动的前后等等。
用户可以在这些事件节点注入脚本,比较常见的使用场景是,在修改文件前跑脚本检查是否改了敏感目录里的文件。
{
"preToolUse": [{
"command": "./hooks/guard-sensitive-files.sh",
"matcher": "Write|StrReplace|Delete",
"failClosed": true
}]
}或者编辑后自动跑测试:
{
"afterFileEdit": [{
"command": "sh -c 'git diff --name-only | grep _test. && npm test -- --changedSince=HEAD --no-coverage || true'"
}]
}我的脚本怎么在修改前知道agent要更改哪些目录文件?hook调用时会往stdin塞入一段json。
所以脚本内容也很简单,就是读 stdin → 解析 JSON → 检查 file_path/command → 决定放行还是拦截。
各个事件节点stdin输入哪些数据,需要脚本返回什么表示放行/中断,可以看官方文档。
https://cursor.com/cn/docs/hooks#pretooluse
subagent
我的理解,subagent = skill + 全新上下文
定义一份文档,定义一些场景,主agent在遇到这些场景的时候自动任务外包subagent来做。
为什么主agent不自己做呢?
简单任务外包给便宜模型做,省钱。
给subagent任务会开启全新上下文,省钱的同时减少干扰
用户可以通过/subagent_name方式来主动要求调用subagent。示例:

use multiple models/ max mode / auto 三种模式
模型名字右边的脑子图标代表该模型计算量较大,需要更多时间思考推理。
max mode本质是允许你通过消耗更多token的方式全力使用最顶尖的模型。适合老项目重构,或者不差钱的用户。

auto 模式理论上会自动根据任务特征动态选择模型,但实际使用体验上是高频率使用cursor自家的composer2。或者说微调过的Kimi K2.5。
use multiple models 是人为挑几个大模型一起跑任务,然后人工挑哪个模型跑的好。类似于赛马。适合做技术选型或者核心算法。

cursor的小抄
ai编程助手本质是提示词工程,或者说是上下文工程。上下文越丰富代码就越准确。
如果发现模型总在某个 API 上胡说或提及的内容和你项目用的技术栈不一致时,可以通过@技术栈名字/网址,快捷地给大模型提供参考文档。cursor自己内置了大量主流技术栈的官方文档,可以有效减少切出屏幕,避免打断编程。
