返回文章列表


【干货】Cursor实用技巧

Commit Message

点这里可以快速帮你生成git提交信息。但如果你用过就会发现这里生成的是英文,且无法指定格式。

可以通过添加新rule来实现定制。

image
---
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。

image

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不自己做呢?

  1. 简单任务外包给便宜模型做,省钱。

  2. 给subagent任务会开启全新上下文,省钱的同时减少干扰

用户可以通过/subagent_name方式来主动要求调用subagent。示例:

image

use multiple models/ max mode / auto 三种模式

模型名字右边的脑子图标代表该模型计算量较大,需要更多时间思考推理。

max mode本质是允许你通过消耗更多token的方式全力使用最顶尖的模型。适合老项目重构,或者不差钱的用户。

image

auto 模式理论上会自动根据任务特征动态选择模型,但实际使用体验上是高频率使用cursor自家的composer2。或者说微调过的Kimi K2.5

use multiple models 是人为挑几个大模型一起跑任务,然后人工挑哪个模型跑的好。类似于赛马。适合做技术选型或者核心算法。

image

cursor的小抄

ai编程助手本质是提示词工程,或者说是上下文工程。上下文越丰富代码就越准确。

如果发现模型总在某个 API 上胡说或提及的内容和你项目用的技术栈不一致时,可以通过@技术栈名字/网址,快捷地给大模型提供参考文档。cursor自己内置了大量主流技术栈的官方文档,可以有效减少切出屏幕,避免打断编程。

image